@charset "utf-8";

/* CSS Document */
* { box-sizing: border-box;}
html {
	font-size: 62.5%;
	overflow: auto;
	scroll-behavior: smooth;
}
body {
	color: #000;
	font-family: "Noto Sans JP", serif;
	font-feature-settings: "palt" 1;
	font-size: 1.6em;
	letter-spacing: 2px;
	line-height: 2em;
	margin: 0;
	padding: 0;
	overflow-wrap: break-word;
	word-wrap: break-word;
}
ul,ol,li {
	list-style: none;
	margin: 0;
	padding: 0;
}
a {
	color: #000;
	text-decoration: none;
}

.justify{text-align: justify;
}

.ceo_name{
	font-size:2.6rem;
	font-weight:bold;
	padding-left:20px;
}

@media screen and (max-width: 767px) {
.ceo_name{
	font-size:1.6rem;
	font-weight:bold;
	padding-left:20px;
}
}

a:hover { opacity: 0.8;}
img { max-width: 100%;
	height:auto;
		display:block;}
.bg {
    background: #27B200;
	padding: 100px 0;
}
@media screen and (max-width: 1240px) {
html, body { font-size: calc(100vw / 80);}
}
@media screen and (max-width: 767px) {
.bg { padding: 50px 0;}
}
@media screen and (max-width: 480px) {
html { font-size: 100%;}
body { font-size: 0.95em;}
}

/* 切り替え
---------------------------------------------------- */
.sp { display: none !important;}
@media screen and (max-width: 767px) {
.pc { display: none !important;}
.sp { display: block !important;}
}

/* header
---------------------------------------------------- */
header {
	background: #FFF;
	padding: 25px 45px 0 80px;
	display: flex;
    position: fixed;
	top: 0;
    width: 100%;
    z-index: 99999;
}
#header_logo { z-index: 99999;}
#header_logo h1 {
	margin: 0 0 25px 0; /* 修正前 margin: 0; */
	width: 120px;
}
#header_logo h1 a {
	background: url(../img/common/logo.png) no-repeat center top;
	background-size: cover;
    display: block;
    height: 0;
	overflow: hidden;
	padding-top: 110%;
	text-indent: 100%;
	white-space: nowrap;
	width: 100%;
}
#header_wrapper {
	background: #FFF;
    display: flex;
    justify-content: space-between;
	width: 100%;
}
.menu {
	align-items: center;
	display: flex;
	justify-content: center;
}
.menu li {
	margin: 20px 20px 12px;
	display: block;
	line-height: normal;
}
.menu > li > a {
	cursor: pointer;
	display: block;
	text-align: center;
	transition : all 0.5s ease 0s;
}
.menu a {
	display: block;
	position: relative;
	padding-bottom: 10px;
}
.menu li a:hover::after, .current::after {
	background: #000;
	bottom: 0;
	content: '';
	height: 2px;
	left: 50%;
	margin: auto;
	position: absolute;
	transform: translateX(-50%);
	width: 30px;
}
.menu_second-level.show a:hover::after, .menu_second-level.show .current::after { background: #FFF !important;}
.contact_button { margin: 15px 20px 25px 20px !important;}
.contact_button a {
    background: #27B200;
    border-radius: 100px;
    color: #FFF;
    padding: 15px 35px !important;
}
.contact_button a::after { display: none;}
.menu_second-level {
	display: table-column;
	opacity: 0;
	transition: opacity 1s ease;
}
.menu_second-level a {
	color: #FFF;
	display: inline-block;
}
.menu_second-level.show {
	align-items: center;
	background: #27B200;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	left: 0;
	margin: calc(50% - 50vw);
	top: 135px;
	opacity: 1;
	position: absolute;
	transition: opacity 1s ease;
	width: 100vw;
}
.menu_second-level_inner {
	align-items: center;
	color: #FFF;
	display: flex;
	justify-content: center;
	text-align: center;
}
.menu_second-level li { padding: 0px 0;}
.menu_second-level li::before {
    content: '・';
	display: inline-block;
    font-size: 200%;
	padding: 0 5px 4px 0;
    text-align: center;
	vertical-align: middle;
	line-height: 0;
}
.sphome, .nav-menu { display: none !important;}
@media screen and (max-width: 1240px) {
header { padding: 25px 0 0 20px;}
}
@media screen and (max-width: 1100px) {
.menu li { margin: 15px;}
.contact_button { margin: 15px 15px 25px 15px !important;}
.contact_button a { padding: 15px 25px !important;}

}
@media screen and (max-width: 767px) {
header {
	background: none;
	height: auto;
	padding: 0;
}
#header_logo h1 {
	margin: 10px 10px;
	width: 50px;
}
.menu {
	animation: slidein 1s forwards;
	background: #27B200;
	display: none;
	margin: 0;
    position: fixed;
}
.menu li {
	border: none;
	border-bottom: 1px solid #FFF;
	border-radius: 0;
	border-top: none;
	color: #FFF;
	float: none;
	margin: 0;
	text-align: center;
	width: 100%;
}
.menu a {
	color: #FFF;
	padding: 15px;
}
.menu li:first-child a { padding: 15px 15px 5px 15px;}
}
@media screen and (max-width: 767px) { /* 修正前 @media screen and (max-width:480px) */
.menu {
    background: #FFF;
	display: block;
	overflow-y: scroll;
	padding: 70px 50px;
    transform: translate(-1000px);
    transition: all 0.2s;
	width: 100%;
    z-index: 99999;
}
.menu_second-level_inner {
    width: 100%;
    display: block;
    justify-content: start;
    align-items: center;
}
.menu li { text-align: left;}
.menu > li {
    align-items: center;
    height: initial;
}
.menu > li > a {
	border-bottom: 1px solid #000;
	display: block;
	color: #000;
	height: 100%;
	padding: 20px 0;
	text-align: left;
	transition : all 0.5s ease 0s;
	width: 100%;
}
.menu > li > a:before {
	content:"＋";
	font-weight: bold;
	padding-right: 10px;
}
.menu > li > a.rollover:before  {
	content:"－";
	font-weight: bold;
	padding-right: 10px;
    transition: all 0.5s ease 0s;
}
.menu li a:hover::after, .current::after { display: none !important;}
.menu_second-level {
	display: table-column;
	margin: 0;
	opacity: 0;
	transition: opacity 1s ease;
    z-index: 99999;
}
.menu_second-level li {	padding: 0;}
.menu_second-level li a {
    display: inline-block;
    margin: 0;
}
.menu_second-level li::before { padding-left: 25px;}
.menu li a, .menu li:first-child a { padding: 20px 0px;}
.menu_second-level.show {
	background: none;
    display: block;
    flex-wrap: wrap;
    justify-content: space-between;
    left: 0;
    margin: 0;
	opacity: 1;
    position: relative;
	top: auto;
    transition: opacity 1s ease;
	width: 100%;
}
.menu_second-level_inner {
	background: #27B200;
    display: block;
    justify-content: start;
    width: 100%;
}
.current::after { display: none;}
.contact_button { margin: 20px 0 !important;}
.contact_button a {
	color: #FFF !important;
	border-bottom: none !important;
	text-align: center !important;
}
.contact_button a::before { display: none;}
.open { transform: translate(0) !important;}
.open2 { transform: translate(0) !important;}
.sphome {
    display: block !important;
    border: 1px solid #000;
    padding: 20px;
    color: #000 !important;
    text-align: center;
}
#top-head {
    z-index: 99999;
    position: fixed;
	right: 0;
    top: 0;
}
#nav-toggle {
    background: #000;
    cursor: pointer;
	display: block;
    height: 60px;
    padding: 10px 5px;
    position: absolute;
    right: 0;
    text-align: center;
    top: 0;
    width: 60px;
}
#nav-toggle span {
    background: #000;
    display: block;
    height: 2px;
    left: 50%;
    position: absolute;
	top: 50%;
    transform: translate(-50%, -50%);
    transition: .2s ease-in-out;
    width: 50%;
}
#nav-toggle span:nth-child(1) {
    background :#FFF;
    top: 5px;
}
#nav-toggle span:nth-child(2) {
    background: #FFF;
    top: 15px;
}
.change #nav-toggle span:nth-child(1) {
	background: #FFF;
	left: 0;
	margin: auto;
	right: 0;
	top: 10px;
    transform: rotate(225deg);
}
.change #nav-toggle span:nth-child(2) {
	background: #FFF;
	left: 0;
	margin: auto;
	right: 0;
    top: 10px;
    transform: rotate(-225deg);
}
.hamburger {
    position: relative;
	top: 5px;
}
.nav-menu {
    bottom: 0;
    color: #FFF;
	display: block !important;
	font-size: 10px;
	left: 0;
	margin: auto;
    position: absolute;
	right: 0;
}
#sp_gnavi {
    background: #FFF;
	display: block;
	height: 100%;
    position: fixed;
    transform: translate(-1000px);
    transition: all 0.2s;
	padding: 40px 20px;
	width: 100%;
    z-index: 99999;
}}

/* wrapper
---------------------------------------------------- */
.wrapper {
	height: 100%;
    position: relative;
    top: 199px;
}
@media screen and (max-width: 767px) { /* 修正前 @media screen and (max-width: 1240px) */
.wrapper {
	top: 100px;
	width: 100%;
}}

/* slider
---------------------------------------------------- */
.slick-dotted.slick-slider { margin-bottom: 0 !important;}
.slick-dots { bottom: 40px !important;}
.slick-dots li {
    height: 25px !important;
    margin: 0 10px !important;
    width: 25px !important;
}
.slick-dots li button:before {
    color: #FFF !important;
    font-size: 25px !important;
    height: 25px !important;
    width: 25px !important;
}
.slick-dots li.slick-active button:before { color: #FFF !important;}
@media screen and (max-width: 767px) {
.slick-dots { bottom: 10px !important;}
.slick-dots li {
    height: 15px !important;
    width: 15px !important;
}
.slick-dots li button:before {
    font-size: 15px !important;
    height: 15px !important;
    width: 15px !important;
}}

/* separate 
---------------------------------------------------- */
.separate { text-align: center;}
.separate_logo {
	background: #27B200;
	padding: 180px 50px;
	display: inline-block;
	vertical-align: bottom;
}
.separate img { width: 60px;}
@media screen and (max-width: 767px) {
.separate_logo { padding: 30px 20px;}
}
.separate img { width: 30px;}

/* width
---------------------------------------------------- */
.width1240 {
	margin: 0 auto;
	width: 1240px;
}
@media screen and (max-width: 1240px) {
.width1240 {
	margin: 0;
	width: 100%;
}}

/* height
---------------------------------------------------- */
.vh800 {
    min-height: 800px; /* 修正前 max-height: 800px; */
    margin: 0 calc(50% - 50vw);
    width: 100vw;
}
@media screen and (max-width: 767px) {
.vh800 {
	min-height: auto; /* 修正前 max-height: none; */
	margin: 0;
	width: 100%;
}}

/* padding
---------------------------------------------------- */
.padding_y70 { padding: 70px 0;}
.margin_y275 { margin-top: 275px;}
@media screen and (max-width: 767px) {
.padding_y70 { padding: 30px 0;}
.margin_y275 { margin-top: 150px;}
}

.padding_y50 { padding: 50px 0;}
@media screen and (max-width: 767px) {
.padding_y50 { padding: 20px 0;}
}

.padding_y150 { padding: 150px 0;}
@media screen and (max-width: 767px) {
.padding_y200 { padding: 50px 0;}
}

/* position
---------------------------------------------------- */
.relative { position: relative;}
.absolute_lt {
    color: #FFF;
    left: 50%;
    max-width: 1230px;
    padding: 0 30px;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    z-index: 10;
}
.absolute_rt {
    color: #FFF;
    right: -170px;
    max-width: 1500px;
    padding: 0 20px;
    position: absolute;
    top: 50%;
    transform: translate(50%, -50%);
    width: 100%;
    z-index: 10;
}
.flex {
    display: flex;
    flex-wrap: wrap;
}
.zoom { overflow: hidden;}
.zoom img {
	height: auto;
	transition: transform 0.6s ease;
}
.zoom:hover img {
	transform: scale(1.1);
	filter: brightness(0.5); 
}
@media screen and (max-width: 1500px) {
.absolute_rt {
	max-width: none;
	width: 100%;
}}
@media screen and (max-width: 1240px) {
.absolute_lt {
	max-width: none;
	width: 100%;
}}
@media screen and (max-width: 767px) {
.absolute_lt, .absolute_rt {
	max-width: none;
    padding: 0 30px;
    position: static;
	top: auto;
	width: 100%;
}
.absolute_lt, .absolute_rt {
	left: 0;
	transform: none;
}
.flex {
    display: block;
    flex-wrap: wrap;
}}

/* title
---------------------------------------------------- */
.title_area { padding: 70px 20px;}
.title_box {
    align-items: flex-end;
	display: flex;
	justify-content: space-between;
	padding-bottom: 70px;
}
.title { font-weight: bold;}
.title_main { padding-bottom: 25px;}	
.title_sub { font-size: 400%;}
.title_button a {
	background: #27B200;
    border-radius: 100px;
    color: #FFF;
	display: inline-block;
	flex-wrap: wrap;
	font-size: 105%;
	justify-content: start;
	padding: 15px 35px 15px 70px;
    position: relative;
    text-align: center;
    transition: 0.4s;
}
.title_button a::before {
	content: '\f0a9';
    font-family: fontAwesome;
    position: absolute;
    left: 15%;
    transition: 0.4s;
}
.title_button a:hover::before {	left: 20%;}

@media screen and (max-width: 767px) {
.title_area { padding: 20px 20px;}
.title_box {
	display: block;
	padding-bottom: 50px;
}
.title_main { padding-bottom: 10px;}	
.title_sub {
        font-size: 270%;
        line-height: 1.4em;
}
.title_button { margin-top: 40px;
	text-align:center;}
}




/* copy
---------------------------------------------------- */
.copy_inner {
    position: relative;
    width: calc(100% / 3);
}
.copy_main {
	font-size: 180%;
	line-height: 1.5em;
	margin-bottom: 20px;
}
@media screen and (max-width: 767px) {
.copy_area .main_bk { /* 追加 */
	height: auto;
    position: static;
	top: auto;
	width: 100%;
}
.copy_inner {
	color: #000;
	width: 100%;
}
.copy_main {
	font-size: 160%;
	margin: 40px 0 20px 0;
}}

/* index
---------------------------------------------------- */
/* logo */
.logo_copy {
	margin: 0 auto;
	padding: 35px 20px 65px 20px;
	width: 870px;
}
.logo_copy div {
	background: url(../img/index/next_marutoku.png) no-repeat center top;
	background-size: cover;
    display: block;
    height: 0;
	overflow: hidden;
	padding-top: 18.62068965%;
	text-indent: 100%;
	white-space: nowrap;
	width: 100%;
}
@media screen and (max-width: 870px) {
.logo_copy {
	padding: 35px 30px 30px 30px;
	width: 100%;
}}

/* calendar */
.calendar_area { margin-top: 100px;}
.calendar_title {
	font-size: 180%;
	font-weight: bold;
	padding: 0 20px 60px 20px;
}
.calendar_box {
    display: flex;
    align-items: center;
}
.calendar_inner {
	padding: 10px 20px;
	position: relative;
    width: calc(100% / 3);
}
.calendar_time {
    display: flex;
    align-items: center;
	padding: 0 20px;
}
.calendar_time::before {
	background: #F8D9D9;
	border: 1px solid #707070;
	content: "";
	display: inline-block;
	height: 20px;
	margin-right: 10px;
	width: 20px;
}
@media screen and (max-width: 767px) {
.calendar_area { margin-top: 0px;}
.calendar_title {
	font-size: 160%;
	padding: 0 30px 30px 30px;
}
.calendar_box { display: block;}
.calendar_inner {
	padding: 10px 30px;
	width: 100%;
}
.calendar_time { padding: 0 30px;}
}

/* contents */
.contents_area {
	position: relative;
    z-index: 0;
}
.contents_area::after {
    background: #27B200;
    content: "";
    height: 20%;
    position: absolute;
    right: 0;
    top: 20%;
    width: 100%;
    z-index: -1;
}
.contents_box {
	align-items: stretch;
    display: flex;
}
.contents_box_s {
	margin-top: -1px;
	border-bottom: 1px solid #747474;
	border-top: 1px solid #747474;
    width: calc(100% / 2);
}
.contents_inner_lt {
	border-right: 1px solid #747474;
	float: right;
	margin: auto;
	margin-left: -1px;
	padding: 50px 15% 120px 20px;
	width: 620px;
}
.contents_inner_rt {
	border-left: 1px solid #747474;
	float: left;
	margin: auto;
	margin-left: -1px;
	padding: 50px 20px 120px 15%;
	width: 620px;
}
.contents_image { position: relative;}
.contents_box a:hover { opacity: 1;}
.contents_text {
    bottom: 4%;
    color: #27B200;
	font-family: "Oswald", serif;
	font-size: 400%;
    font-weight: 500;
	position: absolute;
    right: -8%;
}
.contents_text span { font-size: 180%;}
.contents_title {
	font-size: 120%;
	font-weight: bold;
	padding: 20px 0 10px 0;
}
@media screen and (max-width: 1240px) {
.contents_inner_lt, .contents_inner_rt {
	float: none;
	width: 100%;
}}
@media screen and (max-width: 767px) {
.contents_box {
	display: block;
	align-items: inherit;
}
.contents_box_s {
    width: 100%;
}
.contents_inner_lt, .contents_inner_rt {
	float: none;
	padding: 50px 30px 60px 30px;
    width: 100%;
}
.contents_inner_lt {
	border-right: none;
	margin-left: 0;
}
.contents_area::after { display: none;}
.contents_inner_lt::after, .contents_inner_rt::after {
    background: #27B200;
    content: "";
    height: 20%;
    position: absolute;
    right: 0;
    top: 20%;
    width: 100%;
    z-index: -1;
}
.contents_image img { width: 85%;}
.contents_text {
    bottom: 6%;
    right: 0;
}}

/* news */
.news_area {
	display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.news_title {
	color: #FFF;
	width: 30%;
}
.news_button { margin-top: 60px;}
.news_button a {
	background: #FFF !important;
	color: #27B200 !important;
	display: inline-block !important;
}
.news_list {
    width: 70%;
    height: 100%;
}
.news_box:first-child { border-top: solid 1px #FFF;}
.news_box a {
	color: #FFF;
    border-bottom: solid 1px #FFF;
    width: 100%;
    display: flex;
    align-items: start;
    padding: 40px 20px;
}
.news_cat {
    background: #FFF;
    color: #27B200;
	line-height: 1.5em;
    margin: 0 20px;
    padding: 5px;
    text-align: center;
    width: 10em;
	font-size:80%;
}
.news_text { width: 59%;}
.news_box a::before {
	content: '\f0a9';
    font-family: fontAwesome;
	font-size: 180%;
    position: absolute;
    right: 2%;
    transition: 0.4s;
}
.news_box a:hover::before {	right: 0;}
@media screen and (max-width: 767px) {
.news_title, .news_list { width: 100%;}
.news_button { margin: 40px 0;}
.news_box a {
	display: block;
    padding: 30px 0;
}
.news_date { display: inline-block;}
.news_cat {
	display: inline-block;
	margin: 0 0 10px 20px;
}
.news_text {
	display: block;
	width: 100%;
}}

/* recruit
---------------------------------------------------- */
.recruit_box {
	background: rgba(255,255,255,0.8);
	border-radius: 5px;
	color: #000;
	padding: 60px;
}
.recruit_box .title_box { padding-bottom: 50px;}
.recruit_box .title_button {
	margin-top: 40px;
	text-align: right;
}
@media screen and (max-width: 767px) {
.recruit_box {
	border-radius: 0;
	padding: 50px 0;
	background: none;
}}

/* footer
---------------------------------------------------- */
footer {
	background: #27B200;
	color: #FFF;
	margin-top: 275px;
}
.footer_area {
	display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
	padding: 100px 20px;
}
.footer_box {
	position: relative;
	text-align: center;
	width: 30%;
}
.footer_copy {
	display: inline-block;
	font-size: 200%;
	font-weight: bold;
	line-height: 1.4em;
	margin-bottom: 50px;
	text-align: left;
	writing-mode: vertical-rl;
}
.footer_logo img { width: 150px;
margin:0 auto;}
.footer_info {
	display: inline-block;
	margin-top: 70px;
	line-height: 1.6em;
	text-align: left;
}
.footer_info span { font-size: 85%;}
.footer_menu { width: 68%;}
.footer_menu a {
	color: #FFF;
	display:inline-block;
	padding-bottom: 5px;
	position: relative;
}
.footer_menu a::after {
	background: #FFF;
	bottom: 0;
	content: '';
	height: 1px;
	left: 0;
	position: absolute;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform 0.3s;
	width: 100%;
}
.footer_menu a:hover::after { transform: scale(1, 1);}
.footer_menu dl, .footer_menu ul {
	border-bottom: 1px solid #FFF;
	display: flex;
	margin: 0;
	padding: 30px 0;
	width: 100%;
}
.footer_menu dl:first-child { border-top: 1px solid #FFF;}
.footer_menu dt {
	white-space: nowrap;
	width: 12%;
}
.footer_menu dt::before, .footer_menu li::before {
    content: '●';
	display: inline-block;
    font-size: 50%;
	line-height: normal;
	padding: 0 5px 4px 0;
    text-align: center;
	vertical-align: middle;
}
.footer_menu dd {
	margin: 0;
	width: 88%;
}
.footer_menu dd a, .footer_menu li { margin-left: 30px;}
.footer_menu li:first-child { margin: 0;}
.footer_menu strong {
	display: block;
	margin-top: 20px;
}
.footer_menu strong:first-child { margin-top: 0;}
@media screen and (max-width: 767px) {
footer { margin-top: 100px;}
.footer_area { padding: 70px 30px;}
.footer_box, .footer_menu, .footer_menu dt, .footer_menu dd { width: 100%;}
.footer_copy {
	font-size: 180%;
	line-height: 1.6em;
	writing-mode: horizontal-tb;
}
.footer_logo img { width: 100px;}
.footer_info {
	margin-top: 50px;
	padding-bottom: 30px;
}
.footer_info span { font-size: 100%;}
.footer_menu {
	font-size: 90%;
	line-height: 1.6em;
	width: 100%;
}
.footer_menu dl, .footer_menu ul {
	display: block;
	padding: 30px 10px;
}
.footer_menu dt {
	margin-bottom: 5px;
	width: 100%;
}
.footer_menu dd {
	font-size: 90%;
	width: 100%;
}
.footer_menu dd a { display: block;}
.footer_menu dd a, .footer_menu li { margin-left: 0;}
.footer_menu br { display: none;}
}

/* address
---------------------------------------------------- */
address {
	font-size: 85%;
	font-style: normal;
	padding-top: 30px;
	text-align: right;
}
@media screen and (max-width: 767px) {
address { font-size: 100%;}
}

/* pagetop
---------------------------------------------------- */
#pagetop {
    background: #000;
	color: #FFF;
    display: block;
    height: 40px;
	padding: 0 5px 10px 5px;
	position: fixed;
    right: 0;
    text-align: center;
    bottom: 0;
    width: 40px;
}
#pagetop a {
	color: #FFF;
	font-size: 200%;
	line-height: normal;
	position: relative;
}



.main_bk {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%; /* .vh の高さに追従 */
    object-fit: cover;
    z-index: -1;
}

.filter{
	filter: brightness(0.5);
}

.main_jp {
    font-size: 170%;
	letter-spacing:0.3em;
}
.main_eng {
    color: #fff;
    font-family: "Oswald", serif;
    font-size: 600%;
    font-weight: 400;
	line-height: 1.1;
	letter-spacing:0.05em;
}

.vh {
    position: relative; /* これが重要 */
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    min-height: 800px;
    height: auto; /* 必要ならmin-heightで調整 */
    display: flex;
    justify-content: center;
    align-items: center;
}

.vh2{
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    min-height: 500px; /* 最低800px */
    height: auto; /* コンテンツに応じて伸びる */
    display: flex;
}

.absolute {
    position: relative; 
    width: 100%;
    text-align: center;
    padding: 150px 0;
}

.w80{
	width:80%;
}

.w100{
	width:100%;
}

.w{
	color:#fff;
}

.auto{
	margin-right:auto;
	margin-left:auto;
}

.center{
	text-align:center;
}

.main_btn_box{
	padding-top:20px;
	width:70%;
	max-width:800px;
	margin:0 auto;
	
}

a.main_btn{
	color:#fff;
	border:1px solid #fff;
	border-radius:100px;
	padding:10px 30px 10px 30px;
    font-size: 120%;
  display: inline-block;
  position: relative;
	width:48%;
	text-align:center;
	margin:10px 0px;
}

a.main_btn::after {
content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 27px;
  width: 9px;
  height: 9px;
  margin: auto;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
  box-sizing: border-box;
}

.between { justify-content: space-between; }

.custom-slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin: auto;
}

.custom-slider-container {
  width: 100%;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.custom-slides {
  display: flex;
  transition: transform 0.5s ease-in-out;
  will-change: transform;
}

/* メインスライド 50%、左右スライド 25% */
.custom-slide {
  width: 50%;
  flex: 0 0 50%;
  text-align: center;
  padding: 50px;
  font-size: 150%;
  transition: opacity 0.5s ease-in-out;
  opacity: 0.5;
  box-sizing: border-box;
}

/* 左右のスライド */
.custom-slide.prev,
.custom-slide.next {
  width: 25%;
  flex: 0 0 25%;
}

/* メインのスライドだけ 100% 表示 */
.custom-slide.active {
  opacity: 1;
}

/* 矢印の位置をスライドの中央に */
.custom-slider button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: #ffffff00;
    border: 1px #fff solid;
    padding: 10px;
    font-size: 150%;
    cursor: pointer;
    border-radius: 50%;
    z-index: 10;
    color: #fff;
}

.custom-prev {
  left: 24%;
}
.custom-next {
  right:24%;
}

.auto-slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin: auto;
}

.auto-slider-container {
  width: 100%;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.auto-slides {
  display: flex;
  transition: transform 0.5s ease-in-out;
  will-change: transform;
}

/* メインスライド 50%、左右スライド 25% */
.auto-slide {
  width: 50%;
  flex: 0 0 50%;
  text-align: center;
  padding: 50px;
  font-size: 150%;
  transition: opacity 0.5s ease-in-out;
  opacity: 0.5;
  box-sizing: border-box;
}

/* 左右のスライド */
.auto-slide.prev,
.auto-slide.next {
  width: 25%;
  flex: 0 0 25%;
}

/* メインのスライドだけ 100% 表示 */
.auto-slide.active {
  opacity: 1;
}

/* 🔵 ページネーション */
.auto-pagination {
  display: flex;
  justify-content: center;
  margin-top: 10px;
  position: relative;
  z-index: 10; /* 前面に表示 */
}

.auto-pagination span {
  width: 10px !important;
  height: 10px !important;
  background: #ddd;
  border-radius: 50%;
  margin: 0 5px;
  cursor: pointer;
  transition: background 0.3s;
  opacity: 1; /* 確実に表示 */
}

.auto-pagination span.active {
  background: #333;
}

.auto-slide img {
  width: 100%;
  display: block;
  user-select: none;  /* ✅ 画像の選択を無効化 */
  pointer-events: none; /* ✅ 画像上でのクリックイベントを無効化 */
  -webkit-user-drag: none; /* ✅ Safariでのドラッグ防止 */
}

.basic-slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin: auto;
}

/* 高さを変更できるクラス */
.height-100 .basic-slide img {
  height: 800px;
}

@media screen and (max-width: 767px) {
.height-100 .basic-slide img {
  height: 300px;
}
}

.height-500px .basic-slide img {
  height: 500px;
}

/* スライドモード */
.slide-mode .basic-slides {
  display: flex;
  transition: transform 0.5s ease-in-out;
  will-change: transform;
}

/* フェードモード */
.fade-mode .basic-slides {
  position: relative;
}

.fade-mode .basic-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0; /* 最初は非表示 */
  transition: opacity 0.5s ease-in-out;
}

/* フェード時の表示 */
.fade-mode .basic-slide.active {
  opacity: 1;
  z-index: 1;
}
/* 共通スタイル */
.basic-slider-container {
  width: 100%;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.basic-slides {
  display: flex;
  transition: transform 0.5s ease-in-out;
  will-change: transform;
}

.basic-slide {
  width: 100%;
  flex: 0 0 100%;
  text-align: center;
  position: relative;
}

.basic-slide img {
  width: 100%;
  object-fit: cover;
  display: block;
  user-select: none;
  pointer-events: none;
  -webkit-user-drag: none;
}

/* 🔵 ページネーション */
.basic-pagination {
  display: flex;
  justify-content: center;
  margin-top: 10px;
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}

.basic-pagination span {
  width: 10px;
  height: 10px;
  background: #ddd;
  border-radius: 50%;
  margin: 0 5px;
  cursor: pointer;
  transition: background 0.3s;
}

.basic-pagination span.active {
  background: #333;
}

.shop_list{
	display:flex;
	flex-wrap: wrap;
	justify-content: center;
	font-size:120%;
	margin-top:10px;
	margin-bottom:40px;
}

.shop_list div{
		padding:5px 10px;
		margin:5px;
}

.shop_list_on{
	background-color:#27B200;
	border-radius:100px;
    color: #fff;
}

.shop_list_off{
	background-color:#27B200;
	border-radius:100px;
	opacity: 0.5;
    color: #fff;
}

.off{
	opacity: 0.3;
}

.custom-slides_title{
	font-size:120%;
	padding:30px 0px 20px ;
	text-align:left;
	font-weight:bold;
}

.custom-slides_txt{
	font-size:70%;
	text-align:left;
}

.b{
	font-weight:bold;
}

.subtitle1{
	font-size:120%;
	padding-bottom:20px;
}
.title1{
	font-size:250%;
	padding-bottom:30px;
}

.title2 {
	font-size: 200%;
	padding-bottom:50px;
}

.title3 {
	font-size: 140%;
	padding-bottom:20px;
}

.coat_box{
	padding-bottom:40px;
}
.coat_number{
	color:#27B200;
	font-size:450%;
	font-family: "Oswald", serif;
	text-align:center;
	padding-right:20px;
}
.coat_txt{
	color:#27B200;
	font-size:120%;
	padding-right:100px;
	background: url(../img/arrow1.png) no-repeat right 30px center;
	background-size: auto 50% ;
}

.coat_answer{
	color:#fff;
	font-size:140%;
	width:50%;
	background-color:#27B200;
	border-radius:100px;
	text-align:center;
	padding:16px; }

.coat_inner{
	display:flex;
	align-items: center;
	margin-bottom:20px;
}
.coat_left{
	display:flex;
	width:50%;
	align-items: center
}

a.btn {
	background: #27B200;
    border-radius: 100px;
    color: #FFF;
	display: inline-block;
	flex-wrap: wrap;
	font-size: 105%;
	justify-content: start;
	padding: 15px 35px 15px 70px;
    text-align: center;
    transition: 0.4s;
    position: relative;
	font-size:140%;
}
a.btn::before {
	content: '\f0a9';
    font-family: fontAwesome;
    position: absolute;
    left: 30px;
    transition: 0.4s;
}
a.btn2:hover::before {	left: 40px;}

a.btn2 {
	background: #27B200;
    border-radius: 100px;
    color: #FFF;
	display: inline-block;
	flex-wrap: wrap;
	justify-content: start;
	padding: 15px 35px 15px 70px;
    text-align: center;
    transition: 0.4s;
    position: relative;
	font-size:110%;
}
a.btn2::before {
	content: '\f0a9';
    font-family: fontAwesome;
    position: absolute;
    left: 30px;
    transition: 0.4s;
}
a.btn2:hover::before {	left: 40px;}


.padding_bottom70{
	padding-bottom:70px;
}

.gray{
	background-color:#F0F0F0;
}

.contents { padding: 70px 20px;}
@media screen and (max-width: 767px) {
.contents { padding: 30px 20px;}
}

.inspection{
	padding:70px 0;
}

.inspection_img{
	width:35%;
	padding-right:20px;
}

.inspection_txt{
	color:#27B200;
	font-size:180%;
	font-weight:bold;
}

.inspection_txt div{
	padding:24px 0px 24px 100px;
}

.inspection1{
	background: url(../img/inspection1.png) no-repeat left 30px center;
	background-size: auto 70% ;
}

.inspection2{
	background: url(../img/inspection2.png) no-repeat left 30px center;
	background-size: auto 70% ;
}

.inspection3{
	background: url(../img/inspection3.png) no-repeat left 30px center;
	background-size: auto 70% ;
}

.inspection4{
	background: url(../img/inspection4.png) no-repeat left 30px center;
	background-size: auto 70% ;
}

.inspection5{
	background: url(../img/inspection5.png) no-repeat left 30px center;
	background-size: auto 70% ;
}

.caption{
	font-size:80%;
	padding:10px 0;
}

.underline{
	border-bottom:1px solid #000;
	margin:10px 0;
	padding:10px 0 20px;
}

.inspection_table div:first-child  {
	width:10em;
}

.inspection_table div:nth-child(2)  {
	width:calc(100% - 10em);
	white-space: nowrap;
}


@media screen and (max-width: 767px) {
.inspection_table div:nth-child(2)  {
	width:100%;
	white-space: initial;
}
}

.column4 > div{
	width:24%;
}

.column2 > div{
	width:48%;
}

.repair_caption{
	text-align:right;
	font-size:90%;
}

.font30{
	font-size:30%;
}


.font90{
	font-size:90%;
}

.font120{
	font-size:120%;
}

.font150{
	font-size:150%;
}

.font200{
	font-size:200%;
}

.font300{
	font-size:300%;
}

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

.vehicle_box > div:first-child {
	width:70%;
}
.vehicle_box > div:nth-child(2)  {
	width:28%;
}

.vehicle_txt{
	padding-bottom:50px;
}

.activities_txt{
	padding-bottom:30px;
}

.p{
	text-indent: -1em;
	padding-left:1em;
}

.p2{
	text-indent: -1.5em;
	padding-left:1.5em;
}

.border_sandbox{
	border-top:1px solid;
	border-bottom:1px solid;
	padding:20px 0px;
	margin-bottom:40px;
}

.border_sandbox > div{
	font-size:140%;
	line-height:2em;
}

.over_width{ width: 100vw;
   margin: 0 calc(50% - 50vw);
}

.over_width2 {
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    position: relative;
    overflow: hidden; /* はみ出た部分を隠す */
    height: 600px; /* iframe の高さに合わせる */
}

.over_width2 iframe {
    position: absolute;
    top: -200px; /* 口コミ部分を隠すために調整 */
    left: 0;
    width: 100%;
    height: 1000px; /* 少し高さを増やして口コミを完全に隠す */
}

.between{
	justify-content: space-between;
}

.r-gray{
	background-color:#707070;
	color:#fff;
	border-radius:100px;
	text-align:center;
	padding:0.5em;
	font-size:120%;
	margin:0.3em 0;
}

.r-green{
	background-color:#27B200;
	color:#fff;
	border-radius:100px;
	text-align:center;
	padding:0.5em;
	font-size:120%;
	margin:0.3em 0;
}


.r-gray2{
	padding:0.5em;
	margin:0.5em 0;
}

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

.welfare_box > div:first-child {
	width:60%;
}
.welfare_box > div:nth-child(2)  {
	width:38%;
}

.voice_box {
	display:flex;
	justify-content: space-between;
	padding:60px 0 60px;
	border-top:1px solid #000;
}

.voice_box > div:first-child {
	width:60%;
	position:relative;
}

.voice_number{
	position:absolute;
	right:-20px;
	bottom:0;
	font-size:800%;
	line-height: 1;
	color: #27B200;
    font-family: "Oswald", serif;
}

.sharp{
	font-size:50%;
}

.voice_box > div:nth-child(2)  {
	width:38%;
}

.right{
	text-align:right;
}

.indent_em1{
	padding-left:1em;
}

.margin30{
	margin:30px 0;
}

.margin_top70{
	margin-top:70px;
}


.lease-table {
  width: 100%;
  border-collapse: collapse;
  font-family: Arial, sans-serif;
	table-layout: fixed;
}

.lease-table th {
  background-color:#27B200;
  color: white;
  padding: 10px;
  text-align: center;
  border: 1px solid #ddd;
}

.lease-table td {
  padding: 10px;
  text-align: center;
  border: 1px solid #ddd;
  background-color: white;

}

.youtube{
	background: url(../img/youtube.jpg) no-repeat right bottom 20px;
	background-size: auto 30% ;
	margin-bottom:30px;
}

.youtube_box div{
	padding-bottom:30px;
}

.oswald{
	font-family: "Oswald", serif;
}

/* テーブルの基本スタイル */
.com_table {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid black; /* 上のボーダーを太く */
  border-bottom: 2px solid black; /* 下のボーダーを太く */
}

/* 通常の横罫線 */
.com_table th, .com_table td,
.com_innertable th, .com_innertable td {
  border-bottom: 1px solid #ddd;
  padding: 20px 5px;
}

/* 縦のボーダーをなくす */
.com_table th, .com_table td {
  border-left: none;
  border-right: none;
}

/* 会社名セルの両端揃え */
.com_table th[scope="row"] {
   width: 20%;
}

/* 会社名セルの両端揃え */
.com_table th[scope="row"] {
   width: 14em;
   white-space: nowrap;
   text-align-last: justify;
	padding:0 40px;
}



/* 内部テーブルの調整 */
.com_innertable {
  width: 100%;
  border:none;
  padding: 0;
}

/* 内部テーブルの横罫線 */
.com_innertable th, .com_innertable td {
  border:none;
}

/* 内部テーブルのヘッダー（施設名）のスタイル */
.com_innertable th {
  text-align: left; /* 左寄せ */
  white-space: nowrap;
    text-align-last: auto !important;  
    text-align: left !important;
	padding:0 20px 0 0 !important;

}

/* 内部テーブルの住所は左寄せ */
.com_innertable td {
  text-align: left;
  padding: 0;
}

th{
	font-weight:normal;
}

.ceo{
	justify-content: flex-end; 
	align-items: center; 
}

.ceo_img{
	padding-left:20px;
	width:400px;
}

.anchor {
    display: block;
    padding-top: 155px;
    margin-top: -155px;
    position: relative;
    z-index: -1;
}

.green{
	color:#27B200;
}

.orange{
	color:#FF6200;
}

.red{
	color:#FF0000;
}

.history_list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid #ddd;
}

.history_list li {
  display: flex;
  padding: 20px 10px;
  border-bottom: 1px solid #ddd;
}

.history_list .date {
  min-width: 10em;
  white-space: nowrap;
  font-weight: bold;
}

.history_list .description {
  text-align: left;
  flex-grow: 1;
}

.social_list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid #ddd;
}

.social_list li {
  display: flex;
  justify-content: space-between;
  padding: 20px 10px;
  border-bottom: 1px solid #ddd;
}

.socialtxt {
  flex-grow: 1;
}

.sociallink {
  white-space: nowrap;
  min-width: 10em;
  text-align:right;
}

.float_right{
	float:right;
	padding-left:20px;
	padding-bottom:20px;
}

.float_left {
	float:left;
	padding-right:20px;
	padding-bottom:20px;
}


.float_width30{
	width:30%;
}

.float_width15{
	width:15%;
}

.float_width50{
	width:50%;
}

.clearfix::after {
content: "";
display: block;
clear: both;
}

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

.float_right{
	float:none;
	padding-left:0px;
	padding-bottom:20px;
}

.float_left {
	float:left;
	padding-right:0px;
	padding-bottom:20px;
}

.float_width30{
	width:100%;
}

.float_width50{
	width:100%;
}

.float_width15{
	width:60%;
	margin:0 auto;
}
}

.sdgs_box_inner{
	align-items: center; 
	margin-bottom:50px;
}

.sdgs_box_inner > div:first-child{
	width:25%;
}

.sdgs_box_inner > div:nth-child(2){
	width:75%;
	padding:20px;
}


.voice_box{

}

.com_box {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 20px;
}

.com_box .box {
    display: flex;
    flex-direction: column;
    width: calc(33.333% - 20px); /* 3列レイアウト */
	min-width: 280px; /* 画面幅が狭いときは2列→1列 */
    border: 1px solid #ddd;
    padding: 15px;
    box-sizing: border-box;
    background: #fff;
}

.com_box .box img {
    width: 100%;
    height: auto;
}

.com_box .box h3 {
    margin: 10px 0;
}

.com_box .box p {
    flex-grow: 1; /* 文章の高さを揃える */
    color: #333;
	margin-top:0;
}

.com_box .box .button {
    margin-top: auto; /* ボタンを一番下に配置 */
	background: #27B200;
    border-radius: 100px;
    color: #FFF;
    display: block;
    flex-wrap: wrap;
    font-size: 100%;
    justify-content: start;
    padding: 10px 10px 10px 30px;
    text-align: center;
    transition: 0.4s;
    position: relative;
    font-size: 120%;
	width:80%;
	margin-left:auto;
	margin-right:auto;
}

.com_box .box .button::before {
    content: '\f0a9';
    font-family: fontAwesome;
    position: absolute;
    left: 10%;
    transition: 0.4s;
}

.padding_top70{
	padding-top:70px;
}
.padding_top50{
	padding-top:50px;
}
.padding_top30{
	padding-top:30px;
}
.padding_top20{
	padding-top:20px;
}

.padding_top10{
	padding-top:10px;
}

.padding_y10{
	padding:10px 0;
}

.padding_y30{
	padding:30px 0;
}

.cate{
	background-color:#707070;
	color:#fff;
	padding:3px 5px;
	margin-left:5px;
	font-size:90%;
}	

@charset "UTF-8";

@charset "UTF-8";

.xo-event-calendar {
	font-family: "Helvetica Neue", Helvetica, "Hiragino Kaku Gothic ProN", Meiryo, "MS PGothic", sans-serif;
	position: relative;
	overflow: auto;

	// for the Asrkhe theme.
	th, td {
		padding: 0 !important;
	}

	.calendar:nth-child(n + 2) {
		.month-prev,
		.month-next {
			visibility: hidden;
		}
	}

	table {
		table-layout: fixed;
		border-collapse: separate;
		border-spacing: 0;
		margin: 0;
		padding: 0;
		width: 100%;
		background-color: transparent;
		color: #333;

		caption, tbody, tfoot, thead, tr, th, td {
			margin: 0;
			padding: 0;
			border: 0;
			outline: 0;
			vertical-align: baseline;
			background: transparent;
			opacity: 1;
		}

		table tr {
			display: table-row;
		}

		table td,
		table th {
			display: table-cell;
			padding: 0;
		}
	}

	table.xo-month {
		margin: 0 0 8px 0;
		padding: 0;
		border: 1px solid #ccc;
		border-width: 1px 0 1px 1px;

		th,
		td {
			padding: 0;
			border: 1px solid #ccc;
			background-color: #fff;
		}

		caption {
			caption-side: top;
		}

		.month-header {
			display: flex;
			flex-flow: wrap;
			justify-content: center;
			margin: 4px 0;
		}

		.month-header>span {
			flex-grow: 1;
			text-align: center;
		}

		button {
			margin: 0;
			padding: 0;
			color: #333;
			background-color: transparent;
			border: 0;
			box-shadow: none;
			text-shadow: none;
			cursor: pointer;
			overflow: hidden;
			width: 38px;
		}

		button[disabled] {
			opacity: 0.3;
			cursor: default;
		}

		button>span {
			text-align: center;
			vertical-align: middle;
		}

		button span.nav-prev {
			display: inline-block;
			font-size: 0;
			border-left: 2px solid #333;
			border-bottom: 2px solid #333;
			transform: rotate(45deg);
			width: 13px;
			height: 13px;
		}

		button span.nav-next {
			display: inline-block;
			font-size: 0;
			border-top: 2px solid #333;
			border-right: 2px solid #333;
			transform: rotate(45deg);
			width: 13px;
			height: 13px;
		}

		button:hover span.nav-prev,
		button:hover span.nav-next {
			border-width: 3px;
		}

		>thead th {
			border-width: 0 1px 0 0;
			padding: 1px 0;
			text-align: center;
			font-size: .9em;
			font-weight: bold;
		}

		>thead th {
			color: #ffffff;
			background-color: #000;
		}

		>thead th.sunday {
			color: #ffffff;
			background-color: #ff0000;
		}

		>thead th.saturday {
			color: #ffffff;
			background-color: #0201dd;
		}

		.month-week {
			position: relative;
			padding: 0;
			border: 0;
			width: 100%;
			overflow: hidden;
		}

		.month-week table {
			border: 0;
			margin: 0;
			padding: 0;
		}

		.month-dayname {
			position: absolute;
			top: 0;
			left: 0;
			bottom: 0;
			right: 0;
			border-width: 1px 0 0 1px;
		}

		.month-dayname td {
			border-width: 1px 1px 0 0;
			padding: 0;
		}

		.month-dayname td div {
			height: 1000px;
			padding: 4px;
			border-width: 1px 1px 0 0;
			text-align: right;
			font-size: 100%;
			line-height: 1.2em;
		}

		.month-dayname td div.other-month {
			opacity: 0.6;
		}

		.month-dayname td div.today {
			color: #00d;
			font-weight: bold;
		}

		.month-dayname-space {
			position: relative;
			top: 0;
			height: 1.5em;
		}

		.month-event {
			position: relative;
			top: 0;
			background-color: transparent;
		}

		.month-event td {
			padding: 0 1px 2px 1px;
			border-width: 0 1px 0 0;
			background-color: transparent;
		}

		.month-event-space {
			height: 1.5em;
			background-color: transparent;
		}

		.month-event-space td {
			border-width: 0 1px 0 0;
		}

		.month-event tr,
		.month-event-space tr {
			background-color: transparent;
		}

		.month-event-title {
			margin: 1px;
			padding: 0 4px;
			display: block;
			color: #666;
			text-align: left;
			font-size: 0.8em;
			background-color: #ccc;
			border-radius: 3px;
			white-space: nowrap;
			overflow: hidden;
		}
	}

	p.holiday-title {
		margin: 0;
		padding: 2px 0;
		font-size: 90%;
		vertical-align: middle;
	}

	p.holiday-title span {
		margin: 0 6px 0 0;
		padding: 0 0 0 18px;
		border: 1px solid #ccc;
	}

	.loading-animation {
		position: absolute;
		top: 50%;
		left: 50%;
		margin: -20px 0 0 -20px;
	}

	@media (min-width:600px) {
		.calendars {
			&.columns-2 {
				display: grid;
				grid-template-columns: repeat(2, 1fr);
				column-gap: 15px;
				row-gap: 5px;

				.month-prev,
				.month-next {
					visibility: hidden;
				}

				.calendar:first-child {
					.month-prev {
						visibility: visible;
					}
				}

				.calendar:nth-child(2) {
					.month-next {
						visibility: visible;
					}
				}
			}

			&.columns-3 {
				display: grid;
				grid-template-columns: repeat(3, 1fr);
				column-gap: 15px;
				row-gap: 5px;

				.month-prev,
				.month-next {
					visibility: hidden;
				}

				.calendar:first-child {
					.month-prev {
						visibility: visible;
					}
				}

				.calendar:nth-child(3) {
					.month-next {
						visibility: visible;
					}
				}
			}

			&.columns-4 {
				display: grid;
				grid-template-columns: repeat(4, 1fr);
				column-gap: 15px;
				row-gap: 5px;

				.month-prev,
				.month-next {
					visibility: hidden;
				}

				.calendar:first-child {
					.month-prev {
						visibility: visible;
					}
				}

				.calendar:nth-child(4) {
					.month-next {
						visibility: visible;
					}
				}
			}
		}
	}

	&.xo-calendar-loading {
		.xo-months {
			opacity: 0.5;
		}

		.loading-animation {
			width: 40px;
			height: 40px;
			border: 5px rgba(0, 0, 0, 0.2) solid;
			border-top: 5px #4285f4 solid;
			border-radius: 50%;
			-webkit-animation: loadingCircRot .8s infinite linear;
			animation: loadingCircRot .8s infinite linear;
		}
	}

	@-webkit-keyframes loadingCircRot {
		from {
			-webkit-transform: rotate(0deg);
		}

		to {
			-webkit-transform: rotate(359deg);
		}
	}

	@keyframes loadingCircRot {
		from {
			transform: rotate(0deg);
		}

		to {
			transform: rotate(359deg);
		}
	}
}

.xo-event-calendar {
	&.is-style-legacy {
		table.xo-month {
			.month-header>span {
				font-size: 120%;
				line-height: 28px;
			}
		}
	}

	&.is-style-regular {
		table.xo-month {
			button:not(:hover):not(:active):not(.has-background) {
				color: #333;
				background-color: transparent;
			}

			button>span {
				text-align: center;
				vertical-align: middle;
			}

			button>span:not(.dashicons) {
				font-size: 2em;
				text-indent: 100%;
				white-space: nowrap;
				overflow: hidden;
			}

			.month-prev,
			.month-next {
				width: 2em;
				height: 2em;
			}

			.month-header {
				padding: .2em 0;
				display: flex;
				justify-content: center;
				align-items: center;

				.calendar-caption {
					flex-grow: 1;
				}
			}

			.month-header>span {
				font-size: 1.1em;
			}

			>thead th {
				font-size: .8em;
				background: #fafafa;
			}

			.month-dayname td div {
				padding: 0.2em;
				font-size: 1em;
			}
			.month-dayname td div.today {
				color: #339;
				font-weight: bold;
			}
		}

		.holiday-titles {
			display: inline-flex;
			flex-wrap: wrap;
			gap: .25em 1em;
		}

		p.holiday-title {
			margin: 0 0 .5em 0;
			font-size: 0.875em;
		}

		p.holiday-title span {
			margin: 0 .25em 0 0;
			padding: 0 0 0 1.25em;
		}
	}
}

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

.calendar{
	width:30%;
}

.calendar button{
	display:none;
}

@media screen and (max-width: 767px) {
.calendar {
    width: 100%;
}

.calendars > div:not(:first-child) {
    display: none;
}

.main_jp {
    font-size: 120%;
    letter-spacing: 0.1em;
}

.main_eng {
    font-size: 350%;
    letter-spacing: 0.05em;
}

.main_btn_box {
    width: 100%;
}
a.main_btn {
    width: 100%;
}
.absolute {
    padding: 50px 0;

}
}

.glass{
	padding-right:20px;
	padding-left:20px;
}

.spbr {
    display:none;
}

.sp_left{
	text-align:initial;
}

.alignleft {
	float:left;
	padding-right:20px;
	padding-bottom:20px;
}
.alignright {
	float:left;
	padding-left:20px;
	padding-bottom:20px;
}

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

.alignleft {
	float:none;
	padding-right:0px;
	padding-bottom:20px;
	margin:0 auto;
}
.alignright {
	float:none;
	padding-left:0px;
	padding-bottom:20px;
	margin:0 auto;
}
.spbr {
    display:block;
}

.title1 {
    font-size: 180%;
    padding-bottom: 20px;
}

.subtitle1 {
    font-size: 110%;
    padding-bottom: 10px;
}

.shop_list {
    font-size: 90%;
    margin-top: 10px;
    margin-bottom: 10px;
}

.custom-slider button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: #ffffff00;
    border: 1px #fff solid;
    padding: 10px;
    font-size: 100%;
    cursor: pointer;
    border-radius: 50%;
    z-index: 10;
    color: #fff;
}

.custom-prev {
    left: 2%;
}

.custom-next {
    right: 2%;
}

.custom-slide {
font-size: 110%;
line-height:1.4em;
padding:20px 50px;
}

.custom-slides_txt {
    font-size: 70%;
    text-align: left;
    width: 95%;
    padding-left: 20px;
}

.custom-slides_title {
    position: relative;
    left: 20px;
    padding: 20px 0px 10px;
}

.sp_left{
	text-align:left;
	width:100%;
}

.title2 {
    font-size: 150%;
    padding-bottom: 20px;
}

.coat_left {
    display: flex;
    width: 100%;
    align-items: center;
}

.coat_inner {
    display: block;
    align-items: center;
    margin-bottom: 20px;
}

.coat_number {
    font-size: 200%;
    padding-right: 10px;
}

.coat_txt {
    font-size: 120%;
    padding-right: 0px;
    background: none;
}

.coat_answer {
    color: #fff;
    font-size: 110%;
    width: 100%;
    background-color: #27B200;
    border-radius: 100px;
    text-align: center;
    padding: 5px 30px;
    margin-top: 10px;
}


.padding_top70 {
    padding-top: 30px;
}

a.btn {
    background: #27B200;
    border-radius: 100px;
    color: #FFF;
    display: inline-block;
    flex-wrap: wrap;
    font-size: 105%;
    justify-content: start;
    padding: 15px 35px 15px 70px;
    text-align: center;
    transition: 0.4s;
    position: relative;
    font-size: 120%;
    width: 100%;
}

.inspection {
    padding: 30px 0;
}

.inspection_img {
    width: 100%;
    padding-right: 0px;
}

.inspection_img img {
	width:50%;
   margin-right:auto;
   margin-left:auto;
}

.inspection_txt {
    font-size: 120%;
}

.inspection1 {
    background: url(../img/inspection1.png) no-repeat left 0px center;
    background-size: auto 50px;
}
.inspection2 {
    background: url(../img/inspection2.png) no-repeat left 0px center;
    background-size: auto 50px;
}

.inspection3 {
    background: url(../img/inspection3.png) no-repeat left 0px center;
    background-size: auto 50px;
}

.inspection4 {
    background: url(../img/inspection4.png) no-repeat left 0px center;
    background-size: auto 50px;
}

.inspection5 {
    background: url(../img/inspection5.png) no-repeat left 0px center;
    background-size: auto 50px;
}

.inspection_txt div {
    padding: 24px 0px 24px 60px;
}

.column4 > div {
    width: 100%;
	margin-bottom:10px;
}

.anchor {
    display: block;
    padding-top: 100px;
    margin-top: -100px;
    position: relative;
    z-index: -1;
}

.vehicle_box {
    display: block;
}

.vehicle_box > div:first-child {
    width: 100%;
}

.vehicle_box > div:nth-child(2) {
    width: 100%;
	padding:10px 0px; 
}

.border_sandbox > div {
    font-size: 120%;
    line-height: 1.6em;
}

.auto-slide {
  width: 50%;
  flex: 0 0 50%;
  text-align: center;
  padding: 20px;
  font-size: 150%;
  transition: opacity 0.5s ease-in-out;
  opacity: 0.5;
  box-sizing: border-box;
}

.column2 > div {
    width: 100%;
}

.welfare_box {
    display: flex;
}

.welfare_box > div:first-child {
    width: 100%;
	padding-bottom:10px;
}

.welfare_box > div:nth-child(2) {
    width: 100%;
}

.right {
    text-align: left;
}

.welfare_box .indent_em1{
    width: 60%;
}

.welfare_box .right{
    width: 40%;
	text-align:right;
}

.welfare_box  .flex{
    display: flex;
}

.sp100{
	width:100% !important;
}

.youtube {
    background: url(../img/youtube.jpg) no-repeat right top 35px;
    background-size: auto 20%;
    margin-bottom: 10px;
}

.com_table th[scope="row"] {
    width: 100%;
    white-space: initial;
    text-align-last: left;
    padding: 10px 5px;
    display: block;
	font-weight:bold;
}

.com_table th, .com_table td {
    display: block;
}

.com_innertable td {
    padding: 0px 10px 10px;
}

.com_innertable th {
    padding: 10px 10px 0px !important;
	font-weight:bold;
}

.ceo {
    justify-content: flex-end;
    align-items: center;
    display: flex;
}

.ceo_img {
    width: 80%;
}

a.btn2 {
    display: block;
}

.font200{
	font-size:140%;
}

.title3 {
    font-size: 120%;
    padding-bottom: 10px;
}

.history_list li {
    display: block;
    padding: 20px 10px;
    border-bottom: 1px solid #ddd;
}

.history_list .date {
    width: 100%;
    white-space: nowrap;
    font-weight: bold;
}
.history_list .description {
    width: 100%;
}

.social_list li {
    display: block;
}

.socialtxt {
    width: 100%;
}
.sociallink {
    width: 100%;
}

.sdgs_box_inner{
	display:flex;
    margin-bottom: 0px;
}

.vh2 {
    min-height: 200px;
}

.padding_top50 {
    padding-top: 20px;
}

.com_box .box {
    display: flex
;
    flex-direction: column;
    width: 100%;
    min-width: 280px;
    border: 1px solid #ddd;
    padding: 15px;
    box-sizing: border-box;
    background: #fff;
}

.voice_box {
    display:block; 
    justify-content: space-between;
    padding: 30px 0 30px;
    border-top: 1px solid #000;
}

.voice_box > div:first-child {
    width: 100%;
    position: relative;
	margin-bottom:0px;
}

.sharp {
    font-size: 30%;
}

.voice_number {
    position: absolute;
    right: 0px;
    bottom: 0;
    font-size: 500%;
    line-height: 1;
    color: #27B200;
    font-family: "Oswald", serif;
}

.voice_box > div:nth-child(2) {
    width: 100%;
}

.vehicle_txt {
    padding-top: 20px;
    padding-bottom: 20px;
}

.contact_box {
    width: 100% !important;
}

.contact_box_name {
    width: 100% !important;
    padding: 10px 10px 0px 5px !important;
}

.contact_box_input {
    width: 100% !important;
}

}

.car_box{
	width: 100%;
    padding-top: 40px;
}

/* ギャラリー全体のスタイル */
.gallery {
    display: grid;
    gap: 10px; /* 画像間の余白 */
    padding: 10px;
}

/* 各ギャラリーアイテム */
.gallery-item {
    width: 100%;
    list-style: none;
}

/* ギャラリー画像のリンク */
.gallery-icon a {
    display: block;
}

/* ギャラリー内の画像 */
.gallery-item img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 5px;
    cursor: pointer; /* クリック可能に */
}

/* キャプション（画像の説明） */
.gallery-caption {
    font-size: 90%;
	line-height:1.4em;
    color: #666;
    text-align: center;
    margin-top: 5px;
}

/* カラム数を自動適用 */
.gallery.gallery-columns-1 { grid-template-columns: 1fr; }
.gallery.gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.gallery.gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.gallery.gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
.gallery.gallery-columns-5 { grid-template-columns: repeat(5, 1fr); }
.gallery.gallery-columns-6 { grid-template-columns: repeat(6, 1fr); }

/* スマホ対応（タブレット2列、スマホ1列） */
@media (max-width: 768px) {
    .gallery { grid-template-columns: repeat(2, 1fr); }
}
/* スマホ（幅480px以下）では縦一列100%幅 */
@media (max-width: 480px) {
    .gallery {
        display: block; /* グリッドを無効化 */
    }

    .gallery-item {
        width: 100%; /* 画像を100%幅に */
        margin-bottom: 10px; /* 画像間の余白 */
    }

    .gallery-item img {
        width: 100%; /* 画像を親要素いっぱいに */
        height: auto; /* 縦横比を保持 */
    }
}

/* ライトボックスの基本スタイル */
.lightbox {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    justify-content: center;
    align-items: center;
    z-index: 9999;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

/* 表示時のアニメーション */
.lightbox.show {
    display: flex;
    opacity: 1;
}

/* 画像を囲むコンテナ（閉じるボタンのために relative を指定） */
.lightbox-content {
    position: relative; /* ← 画像に対して relative */
    display: flex; /* ← 余白をなくす */
    flex-direction: column; /* ← 中身を縦方向に並べる */
    width: fit-content; /* ← 画像サイズにフィット */
    max-width: 90vw; /* 画面の幅に応じて調整 */
    max-height: 90vh; /* 画面の高さに応じて調整 */
}

/* ライトボックス内の画像 */
.lightbox img {
    max-width: 100%; /* ← 余白をなくす */
    max-height: 90vh;
    border-radius: 0;
    display: block;
}

/* 閉じるボタン（画像の右上にピッタリ配置） */
.lightbox-close {
    position: absolute;
    top: 5px; /* 画像の外側に少しはみ出す */
    right: 5px; /* 画像の外側に少しはみ出す */
    color: #fff;
    font-size: 20px;
    font-weight: bold;
    background: rgba(0, 0, 0, 0.6);
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease-in-out;
    z-index: 10000;
    letter-spacing: 0px;
}

.lightbox-close:hover {
    background: rgba(255, 255, 255, 0.5);
    color: #000;
}

/* スマホ用にボタンを少し大きくする */
@media (max-width: 480px) {
    .lightbox-close {
        width: 35px;
        height: 35px;
        font-size: 25px;
    }
}

figure {
    display: block;
    margin-block-start: 0em;
    margin-block-end: 0em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    unicode-bidi: isolate;
}

.all_news_list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.all_news_item {
    border-bottom: 1px solid #ddd;
}

.all_news_link {
    display: flex;
    align-items: center;
    padding: 15px;
    text-decoration: none;
    color: inherit;
    transition: background-color 0.3s ease;
    flex-wrap: wrap; /* スマホ時にタイトルを折り返せるように */
}

.all_news_link:hover {
    background-color: #f5f5f5;
}

.all_news_date {
    width: 8em;
    text-align: left;
}

.all_news_category {
    width: 10em;
    padding: 3px 10px;
    text-align: center;
    font-size: 90%;
    background-color: #828282;
    color: #fff;
    margin-right: 20px;
}

/* PCでは横並びのまま */
.all_news_title {
    flex: 1;
}

/* スマホ時のデザイン調整 */
@media (max-width: 768px) {
    .all_news_link {
        flex-direction: column; /* 縦並びに */
        align-items: flex-start; /* 左揃え */
    }

    .all_news_date_category {
        display: flex;
        align-items: center; /* 日付とカテゴリを1行に */
        flex-wrap: nowrap;
    }

    .all_news_title {
        width: 100%;
        margin-top: 10px; /* 適度な間隔 */
    }

	iframe{
	width:100%;
}
}

.margin0{
	margin:0 !important;
}

