@charset "utf-8";
/*
	Last Update: 2026/03/24
	Auther: yt
*/
/*===================================================================
	base layout
===================================================================*/
:root {
	--c-green:#28A6A4;
	--c-orange:#FF7F50;
	--c-yellow:#FFE89A;
	--c-brown:#78452E;
	--c-gray:#595959;
	--c-black:#33383B;
	--c-blue-o:#E3F8FF;
	--c-yellow-o:#FDF9ED;
	--head-height:85px;
	--fixed-banner-height:0px;
}
@media (max-width: 767px){
	:root {
		--head-height:60px;
	}
	:root:has(#fixed_banner) {
		--fixed-banner-height:60px;
	}
}

.wrapper2, .wrapper2-t { padding-top:40px; }
.wrapper2, .wrapper2-b { padding-bottom:40px; }
@media (max-width: 767px){
	.wrapper, .wrapper-t { padding-top:60px; }
	.wrapper, .wrapper-b { padding-bottom:60px; }
}
@media (min-width: 768px){
	.wrapper, .wrapper-t { padding-top:80px; }
	.wrapper, .wrapper-b { padding-bottom:80px; }
}

.center, .center2, .center3 { padding-left:20px; padding-right:20px; }
.center { max-width:1240px; }
.center2 { max-width:1040px; }
.center3 { max-width:860px; }

/*===================================================================
	color / font
===================================================================*/
.c_green { color:var(--c-green); }
.c_orange { color:var(--c-orange); }

.bg_green { background:var(--c-green); }
.bg_orange { background:var(--c-orange); }
.bg_gray { background:var(--c-gray); }
.bg_blue-o { background:var(--c-blue-o); }
.bg_yellow-o { background:var(--c-yellow-o); }

.marugo { font-family:"Zen Maru Gothic", sans-serif; font-weight:700; font-style:normal; }

/*===================================================================
	common class
===================================================================*/
.need:not(._no) { border:1px solid #ff3a5f; background:#ff3a5f; color:#fff; }
.need._no { border:1px solid #ff3a5f; background-color:#fff; color:#ff3a5f; }
.error { background:#ffe1df; color:#ff453a; border:1px solid #ff453a; }

.list_pager ul { display:flex; align-items:center; justify-content:center; gap:5px; }
.list_pager ul li { margin:0; }
.list_pager ul li > * { border:1px solid #fff; width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border-radius:40px; position:relative; }
.list_pager ul li > *.back::before,
.list_pager ul li > *.next::before { content:""; display:inline-block; border-width:0 0 4px 4px; border-style:solid; border-color:currentColor; position:absolute; top:50%; left:50%; width:16px; height:16px; }
.list_pager ul li > *.back::before { transform:translate(calc(-50% + 3px), -50%) rotate(45deg); }
.list_pager ul li > *.next::before { transform:translate(calc(-50% - 3px), -50%) rotate(-135deg); }
.list_pager ul li > a { text-decoration:none; background:#fff; color:#707070; }
.list_pager ul li > span { color:#fff; font-weight:bold; background:var(--c-green); border:1px solid var(--c-green); }
body.pc .list_pager ul li > a:hover { background:var(--c-green); color:#fff; }


.tbl_1 { width:100%; }
.tbl_1 tr > * { border-bottom:1px solid #E6E6E6; padding:15px; color:var(--c-gray); }
.tbl_1 tr > * a { color:var(--c-gray); }
body.pc .tbl_1 tr > * a:hover { text-decoration:underline; }
.tbl_1 tr > th { background:#FCFCFC; text-align:center; }
@media (max-width: 575px){
	.tbl_1:not(.tbl_sp) tr > * { padding:10px; }
	.tbl_1.tbl_sp tr > * { padding:10px 5px; }
	.tbl_1 tr > th  { width:75px; }
}

.tbl_form { width:100%; }
.tbl_form tr > * { vertical-align:top; border-bottom:1px solid #E6E6E6; padding:15px; color:var(--c-gray); }
.tbl_form tr > th { background:#FCFCFC; }
.tbl_form tr > th > div { position:relative; padding-right:60px; line-height:100%; }
.tbl_form tr > th .need { position:absolute; right:0; top:50%; transform:translateY(-50%); }
.tbl_form input,
.tbl_form textarea { font-size:1em; }
.tbl_form textarea { min-height:250px; }
@media (min-width: 768px){
	.tbl_form tr > th { padding:30px 15px; width:240px; }
	.tbl_form tr > td { padding:20px 15px; }
}
@media (max-width: 767px){
	.tbl_form,
	.tbl_form tbody,
	.tbl_form tr,
	.tbl_form tr > * { display:block; }
	.tbl_form tr > th { padding:15px 10px; }
	.tbl_form tr > td { padding:10px 0 30px; }
}

.form_privacy { text-align:center; }
.form_privacy label { display:inline-block; padding:5px 20px; background:#FCFCFC; border:1px solid #ccc; border-radius:3px; }
.form_privacy label input[type="checkbox"].required.default { outline:none; }
.form_privacy label:has(input[type="checkbox"].required.default) { outline:2px solid #c40018; background:#fbe2e2; }
.form_privacy .link_wrap { font-size:.9em; padding-top:5px;}

.form_step { margin-bottom:30px; display:flex; justify-content:space-between; height:85px; overflow:hidden; list-style:none; }
.form_step > li { flex:1 0 0; position:relative; background:#f1f1f1; height:85px; display:flex; flex-flow:column; justify-content:center; align-items:center; }
.form_step li > * { display:block; text-align:center; line-height:1.2; }
.form_step .sub { font-size:0.9em; font-weight:500; margin-bottom:5px; }
.form_step .main { font-size:1.15em; font-weight:normal; }
.form_step li:not(:last-child)::before,
.form_step li:not(:last-child)::after { content:""; position: absolute; top:-1px; width:15px; height:calc(100% + 2px); clip-path:polygon(0% 0%, calc(100% - 10px) 0%, 100% 50%, calc(100% - 10px) 100%, 0% 100%); }
.form_step li::before { background:#fff; left:calc(100% - 5px); z-index:2; }
.form_step li::after { left:calc(100% - 10px); z-index:3; }
.form_step li.active > * { color:#fff !important; font-weight:bold !important; }
.form_step li.active,
.form_step li.active::after { background:var(--c-green); }
.form_step li:not(.active),
.form_step li:not(.active)::after { background:#eee; }
.form_step li:not(.active) .sub { color:var(--c-green); }
@media (max-width: 575px){
	.form_step { font-size:0.85em; }
	.form_step li { padding:0 15px 0; }
	.form_step li:first-child .main, .form_step li:last-child .main { height:2.4em; }
}

.tel_box { border:1px solid var(--c-green); padding:20px; border-radius:5px; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; }
.tel_box .num { font-size:2.5em; font-weight:bold; color:var(--c-green); display:inline-block; padding-left:36px; position:relative; }
.tel_box .num::before { content:""; width:30px; aspect-ratio:35/46; background:var(--c-green); --mask:url(../image/icon/tel.svg) no-repeat center center / contain; -webkit-mask:var(--mask); mask:var(--mask); position:absolute; left:0; top:50%; transform:translateY(-50%); }
.tel_box .time { font-size:1.2em; font-weight:500; }

.ul_1 { list-style:none; }
.ul_1 li { text-indent:-1em; padding-left:1em; }
.ul_1 li::before { content:"・"; }

.contact_info { background:#fff; padding:40px 20px; border-radius:20px; box-shadow:0 4px 4px rgba(0,0,0,.1); }
.contact_info .contact_title { text-align:center; margin-bottom:30px; }
.contact_info .contact_title .main { color:var(--c-green);  font-size:2.75em; line-height:1.2; letter-spacing:0.1em; font-weight:900; margin-bottom:10px; }
.contact_info .contact_title .sub { color:var(--c-gray); font-size:1.25em; line-height:1.6; letter-spacing:0.05em; }
.contact_info .button_wrap { display:grid; grid-template-columns:repeat(2, 1fr); gap:20px; max-width:740px; margin:0 auto; }
.contact_info .button_wrap .button { display:block; background:var(--c-green); color:#fff; text-align:center; padding:15px 0; border-radius:60px; }
.contact_info .button_wrap .button._form { background:var(--c-orange); }
.contact_info .button_wrap .button .text { display:inline-flex; flex-direction:column; gap:5px; text-align:center; padding-left:45px; background:no-repeat left center / 36px auto; }
.contact_info .button_wrap .button._tel .text { background-image:url(../image/icon/tel.svg); }
.contact_info .button_wrap .button._form .text { background-image:url(../image/icon/mail.svg); }
.contact_info .button_wrap .button .text .main { display:inline-flex; align-items:center; height:36px; font-size:2em; line-height:1.2; letter-spacing:.05em; }
.contact_info .button_wrap .button._form .text .main { font-size:1.5em; }
.contact_info .button_wrap .button .text .sub { font-weight:600; }
@media (max-width:767px) {
	.contact_info { padding:40px 10px; }
	.contact_info .button_wrap { grid-template-columns:1fr; max-width:360px; }
	.contact_info .button_wrap .button { padding:10px 0; }
	.contact_info .button_wrap .button .text { gap:2px; }
}

.lead { font-size:1.1em; text-align:center; color:var(--c-gray); line-height:1.6; letter-spacing:0.05em; margin-bottom:40px; }
@media (max-width:767px) {
	.lead { font-size:1em; }
}

.news_list { margin-bottom:40px; }
.news_list li { border-bottom:1px dotted #ccc; }
.news_list a { display:flex; align-items:center; padding:15px; }
.news_list .date { font-size:.9em; letter-spacing:1px; font-weight:500; width:100px; }
.news_list .tag { background:var(--c-green); color:#fff; font-size:.8em; letter-spacing:2px; font-weight:500; width:110px; padding:10px 5px; border-radius:5px; }
.news_list .title { padding:0 0 0 20px; line-height:1.3; flex:1; }
body.pc .news_list a:hover .title { text-decoration:underline; color:var(--wc-color1); }
@media (max-width: 767px){
	.news_list .date { width:85px; }
	.news_list a { flex-wrap:wrap; }
	.news_list a .title { width:100%; flex:none; padding-left:0; padding-top:10px; }
}

.news_detail { background:#fff; padding:60px; border-radius:20px; box-shadow:0 2px 6px rgba(0,0,0,.2); margin-bottom:40px; }
.news_detail .news_head { margin-bottom:40px; }
.news_detail .news_head .title { font-size:1.75em; line-height:1.6; letter-spacing:.05em; font-weight:bold; margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid #ddd; }
.news_detail .news_head .meta { display:flex; align-items:center; gap:2px 10px; }
.news_detail .news_head .meta .date { letter-spacing:1px; font-weight:500; }
.news_detail .news_head .meta .tag { background:var(--c-green); color:#fff; font-size:.9em; letter-spacing:2px; font-weight:500; min-width:110px; padding:8px 5px; border-radius:5px; }
.news_detail .news_image_wrap { display:grid; grid-template-columns:repeat(2, 1fr); gap:30px 15px; margin-bottom:40px; }
.news_detail .news_image_unit { flex:1; }
.news_detail .news_image_unit:nth-child(1) { grid-column:span 2; }
.news_detail .news_image_unit figure { margin:0; }
@media (max-width: 767px) {
	.news_detail { padding:40px 20px; }
	.news_detail .news_head { margin-bottom:30px; }
	.news_detail .news_head .meta { flex-wrap:wrap; }
	.news_detail .news_head .title { font-size:1.5em; }
}

/*===================================================================
	button
===================================================================*/
.button._type1 { border-radius:60px; width:250px; max-width:100%; font-weight:bold; padding:15px 0; border:none; font-size:1em; background:var(--c-green); color:#fff; }

.button._check,
.button._send,
.button._back { border-radius:60px; width:250px; max-width:100%; font-weight:bold; padding:15px 0; border:none; font-size:1em; }
@media (max-width: 575px){
	.button._contact { padding:15px; font-size:1.2em; }
}
@media (min-width: 576px){
	.button._contact { padding:20px; font-size:1.25em; }
}

.varidate_btn { background:#B11820!important; padding:10px 20px; border:none; border-radius:5px; }
.varidate_btn > * { color:#fff; display:block; text-align:center; }
.varidate_btn .main { font-size:1.2em; font-weight:bold; }
.varidate_btn .sub { padding-top:5px; }

/*===================================================================
	hl
===================================================================*/
.hl_1 { text-align:center; margin-bottom:30px; }
.hl_1 .sub { color:var(--c-green); font-size:1.75em; line-height:1.6; letter-spacing:0.05em; margin-bottom:10px; }
.hl_1 .main { font-size:2.5em; line-height:1.6; letter-spacing:.05em; }
@media (max-width:767px) {
	.hl_1 .sub { font-size:1.5em; }
	.hl_1 .main { font-size:1.75em; }
}

.hl_2 { padding-bottom:5px; border-bottom:1px solid #DBDBDB; margin-bottom:3px; color:var(--c-green); font-size:1.5em; line-height:1.6; letter-spacing:.05em; font-weight:bold; }
@media (max-width:767px) {
	.hl_2 { font-size:1.2em; letter-spacing:0; }
}

/*===================================================================
	layout
===================================================================*/
#base { padding-top:var(--head-height); padding-bottom:var(--fixed-banner-height); overflow-x:hidden; }

#head { position:fixed; top:0; left:0; width:100%; z-index:2000; background:#fff; height:var(--head-height); }
#head.fixed { box-shadow:0 3px 5px rgba(0,0,0,0.2); }
#head .head_wrap { width:100%; height:100%; position:relative; display:flex; align-items:center; justify-content:space-between; }
#head .head_wrap > * { display:inline-block; }
#head .head_logo_wrap { flex:1; display:flex; align-items:center; gap:10px; }
#head .site_logo { padding-left:15px; }
#head .site_logo a { display:inline-block; }
#head .site_logo img { width:280px; }
#head .head_logo_text { flex:1; font-weight:bold; color:#595959; line-height:1.2; }
#menu_cover { position:fixed; top:0; left:0; width:100%; height:100vh; background:rgba(0,0,0,0.5); z-index:1999; }
@media (max-width: 767px) {
	#head .head_logo_wrap { gap:5px; }
	#head .site_logo { padding-left:10px; }
	#head .site_logo img { width:150px; }
	#head .head_logo_text { font-size:.9em; }
}

#head_navi ul { list-style:none; }
#head_navi ul li { border-bottom:1px solid #ccc; }
#head_navi a { padding:15px 20px; display:block; }
.head_navi_wrap{ position:fixed; top:var(--head-height); right:0; z-index:3000; width:100%; max-width:400px; background:#fff; height:calc(100vh - var(--head-height) - var(--fixed-banner-height)); overflow-y:auto; overscroll-behavior:none; border-top:1px solid #ccc; }
#base:not(.open) .head_navi_wrap { display:none!important; }
@media (min-width: 768px) {
	:root:has(#fixed_banner) .head_navi_wrap { padding-right:50px; }
}

#btn_open { width:var(--head-height); height:var(--head-height); margin-left:auto; line-height:1px; }
#btn_open a { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; width:100%; height:100%; }
#btn_open a .line_wrap { --icon-width:36px; --icon-height:calc(var(--icon-width) * 20 / 28); width:var(--icon-width); height:var(--icon-height); display:block; position:relative; }
#btn_open a .line_wrap > span { position:absolute; right:0; height:3px; background:#110F0D; transition:all .3s; transform-origin:right center; }
#btn_open a .line_wrap > span.l1 { top:0; width:100%; }
#btn_open a .line_wrap > span.l2 { top:50%; width:100%; transform:translateY(-50%); }
#btn_open a .line_wrap > span.l3 { top:100%; width:50%; right:50%; transform:translateY(-100%); }
#base.open #btn_open a .line_wrap > span.l1 { top:50%; transform:translateY(-50%) rotate(-45deg) translateY(calc(var(--icon-height) / -1.414)); right:calc(50% - var(--icon-width) / 1.414); }
#base.open #btn_open a .line_wrap > span.l2 { width:0; }
#base.open #btn_open a .line_wrap > span.l3 { top:50%; transform:translateY(-50%) rotate(45deg) translateY(calc(var(--icon-height) / 1.414)); right:calc(50% - var(--icon-width) / 1.414); width:100%; }
#base #btn_open a .text { position:relative; display:block; line-height:1.2; font-size:.8em; letter-spacing:.05em; color:#2B2B2B; font-weight:bold; }
@media (max-width: 767px) {
	#btn_open a { gap:8px; }
	#btn_open a .line_wrap { --icon-width:28px; }
	#btn_open a .line_wrap > span { height:2px; }
}

#fixed_banner { position:fixed; top:calc(var(--head-height) + 50px); right:0; z-index:3000; }
#fixed_banner ul { display:flex; flex-direction:column; gap:20px; }
#fixed_banner ul li .unit { border-radius:8px 0 0 8px; padding:15px 10px; display:flex; align-items:center; justify-content:center; color:#fff; background:var(--c-green); font-size:1.25em; }
#fixed_banner ul li .unit._form { background:var(--c-orange); }
#fixed_banner ul li .unit .main { display:inline-block; width:1.2em; text-align:center; line-height:1.2; background:no-repeat center top; padding-left:.1em; padding-right:.1em; }
#fixed_banner ul li .unit .main .rotate { display:inline-block; transform-origin:center center; transform:rotate(90deg); }
#fixed_banner ul li .unit._tel .main { background-image:url(../image/icon/tel.svg); background-size:auto 27px; padding-top:32px; }
#fixed_banner ul li .unit._form .main { background-image:url(../image/icon/mail.svg); background-size:auto 16px; padding-top:25px; }
@media (max-width:767px) {
	#fixed_banner { top:auto; bottom:0; width:100%; height:var(--fixed-banner-height); }
	#fixed_banner ul { flex-direction:row; gap:0; height:100%; }
	#fixed_banner ul li { flex:1; }
	#fixed_banner ul li .unit { border-radius:0; padding:0; height:100%; }
	#fixed_banner ul li .unit .main { padding-right:0; width:auto; background-position:left center; height:100%; display:inline-flex; align-items:center; }
	#fixed_banner ul li .unit .main .rotate { transform:none; }
	#fixed_banner ul li .unit._tel .main,
	#fixed_banner ul li .unit._form .main { padding-top:0; padding-left:25px; background-size:20px auto; }
}

#foot { background:var(--c-black); color:#fff; }
#foot a { color:#fff; }
#foot .foot_wrap { text-align:center; }
#foot .foot_logo { margin-bottom:40px; }
#foot .foot_tel { display:flex; align-items:center; justify-content:center; gap:5px 10px; flex-wrap:wrap; margin-bottom:40px; }
#foot .foot_tel .num { display:inline-flex; align-items:center; min-height:30px; font-size:2.25em; line-height:1; padding-left:30px; background:url(../image/icon/tel.svg) no-repeat left center / 23px auto; }
#foot .foot_tel .time { font-weight:bold; font-size:.9em; }
#foot .foot_links { margin-bottom:30px; }
#foot .foot_links ul { display:flex; align-items:center; justify-content:center; gap:10px 20px; flex-wrap:wrap; }
#foot .foot_navi { margin-bottom:20px; }
#foot .foot_navi ul { display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap; }

#copyright { font-weight:500; }
