@charset "utf-8";

/*
 * style.css
 *
 *  version --- 1.0
 *  updated --- 2017/11/30
 */

@font-face {
    font-family: 'Arial Rounded MT';
    src: url('../fonts/ArialRoundedMTBold.eot');
    src: url('../fonts/ArialRoundedMTBold.eot?#iefix') format('embedded-opentype'),
        url('../fonts/ArialRoundedMTBold.woff2') format('woff2'),
        url('../fonts/ArialRoundedMTBold.woff') format('woff'),
        url('../fonts/ArialRoundedMTBold.ttf') format('truetype'),
        url('../fonts/ArialRoundedMTBold.svg#ArialRoundedMTBold') format('svg');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

/* !HTML5 elements
---------------------------------------------------------- */
header, 
footer, 
nav, 
section, 
aside, 
article {
    display: block;
}

/* !Reseting
---------------------------------------------------------- */
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

fieldset {
  border: none;
}

ul,
ol,
li {
	list-style: none;
}

img {
	max-width: 100%;
    height: auto;
	vertical-align: top;
}

table {
	border-collapse: collapse;
}

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
	font-family: "YakuHanJP", "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Kaku Gothic ProN", sans-serif;
}

select::-ms-expand {
	display: none;
}

input[type=radio]::-ms-check,
input[type=checkbox]::-ms-check{
	display: none;
}

select,
input[type=radio],
input[type=checkbox],
input[type=text],
input[type=password],
input[type=email],
input[type=tel],
input[type=number],
input[type=reset],
input[type=button],
input[type=submit],
textarea {
	appearance: none;
	border-radius: 0;
    font-family: "YakuHanJP", "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    color: #333;
}

input[type=text]::-ms-clear,
input[type=tel]::-ms-clear,
input[type=number]::-ms-clear{
	display: none;
}

input[type=reset],
input[type=button],
input[type=submit]  {
    font-family: "YakuHanJP", "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Kaku Gothic ProN", sans-serif;
	cursor: pointer;
}

input::-webkit-input-placeholder, 
textarea::-webkit-input-placeholder { 
	color: #CCCCCC; 
} 
input:-moz-placeholder, 
textarea:-moz-placeholder { 
	color: #CCCCCC; 
} 
input::-moz-placeholder, 
textarea::-moz-placeholder { 
	color: #CCCCCC; 
} 
input:-ms-input-placeholder, 
textarea:-ms-input-placeholder { 
	color: #CCCCCC; 
} 

*,
*:before,
*::after {
	box-sizing: border-box;
}
/* !Clearfix
---------------------------------------------------------- */
.clearfix {
    display: block;
    min-height: 1%;
}

.clearfix:after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
}

* html .clearfix {
    height: 1%;
}

/* !Layout
---------------------------------------------------------- */
html {
    overflow-y: scroll;
    font-size: 62.5%;
}

/*** タブレット 768x ~ 1300px***/
@media screen and (min-width: 768px) and (max-width: 1280px) {
    html {
        font-size: calc(100vw / 128);
    }
}
@media screen and (max-width: 767px) {
    html {
        font-size: 62.5%;
    }
}

/*html:not(.is-loaded),*/
html.no_move {
	overflow: hidden;
	height: 100vh;
}

@media only screen and (max-width : 767px){
	html.no_move_sp {
		overflow: hidden;
	}
}

body {
    font-family: "YakuHanJP", "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 1.6rem;
	font-weight: 500;
    -webkit-text-size-adjust: none;
    line-height: 1.5;
    color: #333;
    -webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.font-inter {
	font-family: "YakuHanJP", "Inter", sans-serif;
}

.font-ibm {
	font-family: "YakuHanJP", "IBM Plex Sans JP", sans-serif;
}

.font-armt {
	font-family: "YakuHanJP", 'Arial Rounded MT';
}

@media screen and (min-width: 768px) {
    .is-sp {
        display: none;
    }
}
@media only screen and (max-width : 767px){
	.is-pc {
		display: none;
	}
}

/* !animation -------------------------------------------------------------- */


@keyframes wavemove {
    0% {
		background-position: 0 100%;
	}
	100% {
		background-position: 100% 100%;
	}
}
@keyframes updownmove {
    0% {
		height: 100%;
	}
	50% {
		height: 110%;
	}
	100% {
		height: 100%;
	}
}

@keyframes rubberBand {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }

  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
            transform: scale3d(1.25, 0.75, 1);
  }

  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
            transform: scale3d(0.75, 1.25, 1);
  }

  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
            transform: scale3d(1.15, 0.85, 1);
  }

  65% {
    -webkit-transform: scale3d(.95, 1.05, 1);
            transform: scale3d(.95, 1.05, 1);
  }

  75% {
    -webkit-transform: scale3d(1.05, .95, 1);
            transform: scale3d(1.05, .95, 1);
  }

  100% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}

.rubberBand {
  	-webkit-animation-name: rubberBand;
          animation-name: rubberBand;
}

.rubberBand.animated,
.animated .rubberBand {
	-webkit-animation-duration: 2s;
          animation-duration: 2s;
  	-webkit-animation-fill-mode: both;
          animation-fill-mode: both;
}

.fadeInScaleDown {
	opacity: 0;
	transform: scale(1.05);
	transition: opacity .5s ease, transform 1.5s ease;
}

.fadeInScaleUp {
	opacity: 0;
	transform: scale(.95);
	transition: opacity .5s ease, transform 1.5s ease;
}

.fadeInScaleUp.animated,
.animated .fadeInScaleUp,
.fadeInScaleDown.animated,
.animated .fadeInScaleDown {
	opacity: 1;
	transform: scale(1);
}

.fadeIn {
	opacity: 0;
	transition: opacity 1s ease;
}

.fadeInUp {
	opacity: 0;
	transform: translateY(4rem);
	transition: opacity .1s ease, transform 1s ease;
}

.fadeInDown {
	opacity: 0;
	transform: translateY(-4rem);
	transition: opacity .1s ease, transform 1s ease;
}

.fadeInLeft{
	opacity: 0;
	transform: translateX(-4rem);
	transition: opacity .1s ease, transform 1s ease;
}

.fadeInRight{
	opacity: 0;
	transform: translateX(4rem);
	transition: opacity .1s ease, transform 1s ease;
}

.fadeIn.animated,
.animated .fadeIn,
.fadeInUp.animated,
.animated .fadeInUp,
.fadeInDown.animated,
.animated .fadeInDown,
.fadeInLeft.animated,
.animated .fadeInLeft,
.fadeInRight.animated,
.animated .fadeInRight {
	opacity: 1;
	transform: translate(0, 0);
}

.delay1 {
	transition-delay: .3s !important;
}

.delay2 {
	transition-delay: .6s !important;
}

.delay3 {
	transition-delay: .9s !important;
}

.delay4 {
	transition-delay: 1.2s !important;
}

.delay5 {
	transition-delay: 1.5s !important;
}

.delay6 {
	transition-delay: 1.8s !important;
}

.delay7 {
	transition-delay: 2.1s !important;
}

.delay8 {
	transition-delay: 2.4s !important;
}

.delay9 {
	transition-delay: 2.7s !important;
}

.delay10 {
	transition-delay: 3s !important;
}

/* 初期表示は待たせすぎず、ページ遷移直後から内容が見えるようにする */
#teaser .delay2 {
	transition-delay: .05s !important;
}

#teaser .delay3 {
	transition-delay: .1s !important;
}

#teaser .delay5 {
	transition-delay: .15s !important;
}

#teaser .delay6 {
	transition-delay: .2s !important;
}

.updown {
  animation: moveUpDownLatch 6s infinite ease-in-out;
}

@keyframes moveUpDownLatch {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1rem); }
}

.updown.slow {
  animation-duration: 8s !important;
}

.updown.fast {
  animation-duration: 5s !important;
}



/* !Base Fonts -------------------------------------------------------------- */
a {
    color: inherit;
    text-decoration: none;
}

/*** hover ***/
@media screen and (min-width: 960px) {
    a {
        transition: all 0.5s;
    }

    a:hover {
        
    }

    .op {
        transition: opacity 0.5s ease-out;
    }

    .op:hover {
        opacity: .7;
    }

    a[href^="tel:"] {
        cursor: default;
        pointer-events:none;
    }
}

.is-hide {
    display: none;
}



/* !wrapper
---------------------------------------------------------- */
#wrapper {
	position: relative;
	z-index: 2;
	background: #E7F0DC;
	overflow: hidden;
}

/* !header
---------------------------------------------------------- */
#header {
	position: relative;
	z-index: 99;
	width: 100%;
}

html.no_move_sp #header {
	z-index: 2;
}

.header-logo {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 2;
	display: flex;
	padding: 4.8rem 4rem;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .35s ease, visibility .35s ease;
}

.home .header-links {
	display: none;
}

.btn-menu {
	cursor: pointer;
	position: fixed;
	right: 4rem;
	top: 3.2rem;
	z-index: 5;
	width: 7.9rem;
	height: 7.9rem;
	background: url(../img/common/icon_menu_pc.svg)no-repeat center #FFA986;
	background-size: 3.7rem;
	border-radius: 50%;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .25s ease, visibility .25s ease;
	transition-delay: .15s;
}
.btn-menu.active {
	background-image: url(../img/common/icon_menu_close.svg);
}
.btn-recruit {
	position: fixed;
	right: 4rem;
	top: 10rem;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .25s ease, visibility .25s ease;
	transition-delay: .2s;
}
.btn-recruit a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 7.9rem;
	height: 7.9rem;
	background: #5A9600;
	border-radius: 50%;
	text-align: center;
	line-height: 1.1667;
	color: #fff;
	font-size: 1.8rem;
	font-weight: 700;
}

.home .btn-menu,
.home .btn-recruit {
	transition-delay: .4s;
}

.is-loaded .header-logo,
.is-loaded .btn-menu,
.is-loaded .btn-recruit  {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
#g-navi {
	opacity: 0;
	visibility: hidden;
	position: fixed;
	right: 0;
	top: 0;
	transition-duration: 0.3s;
	padding: 9.6rem 7.3rem;
	background: rgba(255, 169, 134, 0.95);
	border-bottom-left-radius: 3rem;
	text-align: center;
	color: #fff;
	font-size: 2.6rem;
	font-weight: 700;
}
#g-navi.open {
	opacity: 1;
	visibility: visible;
}
#g-navi .logo {
	margin-bottom: 5rem;
}
#g-navi li {
	margin-bottom: 2rem;
	border-bottom: 1px solid;
}
#g-navi li a {
	display: block;
	padding: 1.2rem 0;
	line-height: 1;
}
#g-navi .btn {
	margin-top: 3.2rem;
	text-align: center;
}
#g-navi .btn a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 7.2rem;
	background: #5A9600;
	border-radius: 8rem;
	color: #fff;
}

#g-navi.open .fadeInUp {
	opacity: 1;
	transform: translateY(0);
}

#g-navi .delay1 {
	transition-delay: .1s !important;
}

#g-navi .delay2 {
	transition-delay: .2s !important;
}

#g-navi .delay3 {
	transition-delay: .3s !important;
}

#g-navi .delay4 {
	transition-delay: .4s !important;
}

#g-navi .delay5 {
	transition-delay: .5s !important;
}
 

/*** hover ***/
@media screen and (min-width: 960px) {}
/*** sp ***/
@media screen and (max-width: 767px) {
	
	.header-logo {
	    padding: 1.8rem;
	}
	.header-logo img {
		width: 13.8rem;
	}
	.btn-menu {
		right: 0;
		top: 0;
		background-image: url(../img/common/icon_menu_sp.svg);
		border-radius: 0 0 0 50%;
	}
	#g-navi {
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 10rem 2rem;
		width: 100%;
		height: 100vh;
		border-bottom-left-radius: 0;
		font-size: 2.2rem;
	}
	#g-navi .logo {
	    margin-bottom: 2.6rem;
	}
	#g-navi li {
	    margin-bottom: 0;
	}
	#g-navi li a {
	    padding: 2rem 0;
	}
	
}


/* !footer
---------------------------------------------------------- */
#footer {
	position: relative;
	z-index: 90;
	margin-top: 17rem;
	padding: 0 0 10.7rem;
	background: #fff;
}
#footer .bg-wave {
	overflow: hidden;
	pointer-events: none;
	position: absolute;
	bottom: 100%;
	left: 0;
	width: 100%;
	height: 17rem;
}
#footer .bg-wave:before {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: url(../img/common/bg_footer.png) center top no-repeat;
	background-size: 100% 100%;
}
.footer-inner {
	display: flex;
	justify-content: space-between;
}
.footer-links ul {
	display: flex;
	gap: 0 6rem;
}
.footer-links li {
	min-width: 20rem;
}

.footer-links .footer-links__item + .footer-links__item {
	margin-top: 3.2rem;
}

.footer-links .title {
	margin-bottom: 2.4rem;
	font-size: 1.4rem;
	line-height: 1.5;
	font-weight: 700;
}
.footer-links .submenu {
	padding-left: 0.8rem;
}
.footer-links .submenu a {
	display: block;
	margin-bottom: 0.8rem;
	font-size: 1.2rem;
	line-height: 1.5;
}

.tel-contact {
	margin-bottom: 8.2rem;
	font-size: 1.4rem;
}
.tel-contact .tit {
	margin-bottom: 0.8rem;
	font-weight: 700;
}
.tel-contact .tel {
	color: #4D9762;
}
.tel-contact .tel a {
	display: block;
	line-height: 1.2;
	font-weight: 700;
	font-size: 2.9rem;
}
.tel-contact .tel a:before {
	content: "TEL";
	display: block;
	font-size: 1.2rem;
}
.tel-contact .time {
	margin-top: 0.2rem;
}
.tel-contact .time .pre {
	margin-right: 1.4rem;
}

.footer-logo {
	font-size: 1.2rem;
}
.footer-logo .logo {
	margin-bottom: 0.2rem;
	letter-spacing: 0.4em;
}
.footer-logo .name {
	display: block;
	letter-spacing: 0.5em;
	font-size: 2.6rem;
}
#copyright {
	margin: 2.7rem 0 0 -1.2rem;
	color: #777777;
	font-size: 1rem;
}

/*** hover ***/
@media screen and (min-width: 960px) {
	.footer-links a:hover,
	.footer-links a:focus-visible {
		text-decoration: underline;
	}
}
/*** sp ***/
@media screen and (max-width: 767px) {
	#footer {
		margin-top: 6.2rem;
		padding-bottom: 3.5rem;
	}
	#footer .bg-wave {
		height: 6.2rem;
	}

	.footer-inner {
		justify-content: center;
	}
	.footer-links {
	    display: none;
	}
	.tel-contact {
		padding-bottom: 1.4rem;
	    margin-bottom: 2.6rem;
		border-bottom: 1px solid #DDDDDD;
	    font-size: 1.4rem;
	}

}


/* !heading
---------------------------------------------------------- */
.heading-large {
	margin-bottom: 5rem;
	text-align: center;
	line-height: 1;
	font-size: 4.6rem;
	font-weight: 700;
}
.heading-large:after {
	content: "";
	display: block;
	margin: 2rem auto 0;
	height: 0.6rem;
	width: 7.6rem;
	background: #5A9600;
	border-radius: 1rem;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .35s ease .5s;
}

.heading-large.animated:after {
	clip-path: inset(0 0 0 0);
}

.heading-medium {
	margin-bottom: 4rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 3.2rem;
	color: #5A9600;
	line-height: 1;
	letter-spacing: 3%;
	word-break: break-all;
	white-space: nowrap;
}

.heading-medium .heading-medium__en {
	font-size: 4.5rem;
	line-height: 1;
}

.heading-medium .heading-medium__jp {
	flex: 1;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 3.2rem;
	font-size: 2.8rem;
	font-weight: bold;
}

.heading-medium .heading-medium__jp:before {
	width: 100%;
	height: .2rem;
	background: #5A9600;
	content: '';
	clip-path: inset(0 100% 0 0);
	transition: clip-path .35s ease-out .5s;
}

.heading-medium.animated .heading-medium__jp:before {
	clip-path: inset(0 0 0 0);
}

.heading-medium .heading-medium__jp .fadeIn {
	transition-delay: 1s !important;
}


/*** sp ***/
@media screen and (max-width: 767px) {
	.heading-large {
		margin-bottom: 3.2rem;
		font-size: 2.4rem;
	}
	.heading-large:after {
		margin-top: 1.6rem;
		height: 0.3rem;
	}

	.heading-medium {
		margin-bottom: 2rem;
		gap: 1.6rem;
	}

	.heading-medium .heading-medium__en {
		font-size: 2.4rem;
	}

	.heading-medium .heading-medium__jp {
		gap: 1.6rem;
		font-size: 1.6rem;
	}

	.heading-medium .heading-medium__jp:before {
		height: .1rem;
	}
}

/* !main Visual
---------------------------------------------------------- */
#main-visual {
	padding-top: 13.38rem;
	width: 100%;
	overflow: hidden;
}

#main-visual .main-inner {
	width: 100%;
	max-width: 128rem;
	margin: 0 auto;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	position: relative;
}

#main-visual .main-menu {
	padding: 4rem 4.4rem;
}

#main-visual .main-menu ul {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 1.6rem;
}

#main-visual .main-menu ul a {
	display: block;
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 1.3125;
	letter-spacing: .2rem;
	padding-bottom: .5rem;
	background: linear-gradient(#333,#333) left bottom no-repeat;
	background-size: 100% .1rem;
}

#main-visual .main-menu .btn {
	margin-top: 2.5rem;
}

#main-visual .main-menu .btn a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 16rem;
	height: 3.7rem;
	border-radius: 99.9rem;
	border: .1rem solid #5A9600;
	background: #5A9600;
	font-size: 1.8rem;
	line-height: 1.16;
	color: #fff;
	font-weight: bold;
	letter-spacing: .2rem;
}

#main-visual .main-image {
	width: 96.3rem;
	position: relative;
	padding-bottom: 8.7rem;
	z-index: 2;
}

#main-visual .swiper {
	width: 100%;
	height: 61.2rem;
	-webkit-mask-image: url(../img/top/kv_mask.svg);
	mask-image: url(../img/top/kv_mask.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
}


#main-visual .swiper-fade .swiper-slide {
    -webkit-transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, transform !important;
    transition-property: opacity, transform, -webkit-transform !important;
    pointer-events: none;
}

#main-visual .swiper-slide img {
    -webkit-transition: 8s 1s ease-out;
    transition: 8s 1s ease-out;
    height: 100%;
	width: 100%;
	object-fit: cover;
}

#main-visual .swiper-slide[class*=-active] img {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
}

#main-visual .main-image .swiper-pagination {
	bottom: 3.6rem;
	top: unset;
	width: auto;
	left: 25.8rem;
	line-height: 1;
	font-size: 1px;
}

#main-visual .main-image .swiper-pagination .swiper-pagination-bullet {
	width: 1rem;
	height: 1rem;
	margin: 0 1.2rem;
	background: #C1C1C1;
	opacity: 1;
}

#main-visual .main-image .swiper-pagination .swiper-pagination-bullet-active {
	background: #4D9762;
}

#main-visual .main-illust,
#main-visual .main-deco {
	pointer-events: none;
}

#main-visual .main-illust img,
#main-visual .main-deco img {
	width: 100%;
}

#main-visual .main-illust.illust01 {
	width: 16.146rem;
	position: absolute;
	right: 8.335rem;
	top: -6.38rem;
	z-index: 4;
}

#main-visual .main-illust.illust02 {
	width: 31.125rem;
	position: absolute;
	left: -3.2rem;
	top: 7.02rem;
	z-index: 3;
}

#main-visual .main-illust.illust03 {
	width: 25.156rem;
	position: absolute;
	left: 22.2rem;
	bottom: 5.65rem;
	z-index: 3;
}

#main-visual .main-deco.deco01 {
	width: 37.023rem;
	position: absolute;
	right: 4rem;
	bottom: 2.772rem;
	z-index: 3;
}

#main-visual .main-deco.deco02 {
	width: 41.094rem;
	position: absolute;
	right: -18.535rem;
	top: -16.408rem;
	z-index: 3;
}

#main-visual .main-deco.deco03 {
	width: 26.615rem;
	position: absolute;
	left: 29rem;
	top: -3.524rem;
	z-index: 1;
}

#main-visual .main-catch {
	position: absolute;
	right: 11rem;
	bottom: 0;
	z-index: 4;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-size: 3.6rem;
	font-weight: bold;
	line-height: 1;
	letter-spacing: 20%;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 1.1rem;
}

#main-visual .main-catch p {
	padding: .658rem 1.2rem;
	position: relative;
	z-index: 2;
}

#main-visual .main-catch p:before {
	background: #fff;
	position: absolute;
	left: 0;
	top: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	border-radius: .585rem;
	content: '';
}


/*** sp ***/
@media screen and (max-width: 767px) {
	#main-visual {
		padding-top: 13.445rem;
	}

	#main-visual .main-inner {
		position: relative;
	}

	#main-visual .main-menu {
		display: none;
	}

	#main-visual .main-image {
		width: 100%;
		padding-bottom: 14.693rem;
	}

	#main-visual .swiper {
		width: 48rem;
		left: 50%;
		transform: translateX(-50%);
		height: 30.455rem;
		-webkit-mask-image: url(../img/top/kv_mask.svg);
		mask-image: url(../img/top/kv_mask.svg);
		-webkit-mask-size: cover;
		mask-size: cover;
	}


	#main-visual .main-image .swiper-pagination {
		bottom: unset;
		top: 36.455rem;
		left: 1.4rem;
	}

	#main-visual .main-image .swiper-pagination .swiper-pagination-bullet {
		margin: 0 .7rem;
	}

	#main-visual .main-illust.illust01 {
		width: 7.364rem;
		right: 5.536rem;
		top: -6.545rem;
	}

	#main-visual .main-illust.illust02 {
		width: 12.5rem;
		left: 2.1rem;
		top: -3.645rem;
	}

	#main-visual .main-illust.illust03 {
		width: 12.4rem;
		left: 2.1rem;
		top: 27.455rem;
		bottom: unset;
	}

	#main-visual .main-deco.deco01 {
		width: 16.8rem;
		right: 1.9rem;
		top: 18.755rem;
		bottom: unset;
	}

	#main-visual .main-deco.deco02 {
		width: 19.2rem;
		right: -4.1rem;
		top: -14.445rem;
	}

	#main-visual .main-deco.deco03 {
		width: 20rem;
		left: -2.4rem;
		top: -5.545rem;
	}

	#main-visual .main-catch {
		right: 2.762rem;
		bottom: 0;
		font-size: 2.6rem;
		gap: .85rem;
	}

	#main-visual .main-catch p {
		padding: 1rem .85rem .5rem;
	}

	#main-visual .main-catch p:before {
		border-radius: .44rem;
	}
}

/* !teaser
---------------------------------------------------------- */
#teaser {
	position: relative;
	z-index: 2;
	margin-bottom: 8.6rem;
	padding: 14rem 0 10rem 4rem;
	background: #E7F0DC;
	color: #fff;
}

#teaser .bg-wave {
	overflow: hidden;
	pointer-events: none;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: url(../img/common/bg_teaser.png) center center no-repeat;
	background-size: 100% 100%;
}
.teaser-head {
	position: relative;
	z-index: 3;
	line-height: 1;
}
.teaser-head .eng {
	display: block;
	margin-bottom: 2rem;
	text-transform: uppercase;
}
.teaser-head .jap {
	display: block;
	font-size: 5.4rem;
	font-weight: 700;
}
#teaser .teaser-image {
	position: absolute;
	right: -7.423rem;
	top: -7.7rem;
	z-index: 1;
	width: 64.362rem;
	height: 47.581rem;
}

#teaser .teaser-image .image {
	width: 100%;
	height: 100%;
	-webkit-mask-image: url(../img/common/teaser_mask.svg);
	mask-image: url(../img/common/teaser_mask.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

#teaser .teaser-image img {
	width: 100%;
}

#teaser .teaser-image .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#teaser .teaser-image .deco01 {
	position: absolute;
	z-index: 1;
	left: -4.065rem;
	top: 6.107rem;
	width: 29.13rem;
}
#teaser .teaser-image .deco02 {
	position: absolute;
	right: 2.956rem;
	bottom: .272rem;
	z-index: 3;
	width: 20.86rem;
}

#teaser #breadcrumb {
	margin-top: 2.4rem;
	font-size: 1.2rem;
	position: relative;
	z-index: 3;
}
#breadcrumb ul {
	display: flex;
	gap: 0 0.8rem;
} 
#breadcrumb li + li {
	padding-left: 1.8rem;
	background: url(../img/common/icon_arr_right.svg)no-repeat left center;
	background-size: 1rem;
}

/*** sp ***/
@media screen and (max-width: 767px) {
	
	#teaser {
		padding: 8rem 0 4rem 2rem;
		margin-bottom: 4rem;
	}
	#teaser .bg-wave {
		width: 300%;
	}
	#teaser .teaser-image {
		width: 32.181rem;
		height: 23.7905rem;
		right: -3.7115rem;
		top: -3.85rem;
	}
	#teaser .teaser-image .deco01 {
	    left: -2.0325rem;
	    top: 3.05rem;
	    width: 14.565rem;
	}
	#teaser .teaser-image .deco02 {
		bottom: -.136rem;
		right: .15rem;
	    width: 10.43rem;
	}
	.teaser-head .eng {
	    margin-bottom: 1.2rem;
	    font-size: 1.4rem;
	}
	.teaser-head .jap {
	    font-size: 3rem;
	}
	
}


/* !contents
---------------------------------------------------------- */
#contents {
	width: 100%;
	position: relative;
	min-height: 1px;
}

.inner {
	padding: 0 5rem;
	margin: 0 auto;
	max-width: 116.5rem;
}

.content-wrap {
	display: flex;
	justify-content: space-between;
}
.content-wrap .main {
	width: calc(100% - 34rem);
}
.content-wrap .side {
	width: 30rem;
}
.side .title {
	margin-bottom: 1rem;
	font-size: 2.3rem;
	font-weight: 700;
}
.side-links li {
	margin-bottom: 0.5rem;
}
.side-links li a {
	display: block;
	padding: 0.6rem 2rem;
	border-radius: 5rem;
	letter-spacing: -0.05em;
}
.side-links li a.on {
	background: #5A9600;
	color: #fff;
}

.side-select select {
	width: 100%;
	padding: 0 4rem 0 2rem;
	width: 100%;
	height: 5rem;
	background: url(../img/common/icon_select.svg)no-repeat right 1rem center #fff;
	background-size: 2.4rem;
	border: 1px solid #CCCCCC;
	font-size: 1.6rem;
	font-weight: 500;
}

@media screen and (min-width: 960px) {
	.side-links li a:hover,
	.side-links li a:focus-visible {
		background: #5A9600;
		color: #fff;
	}
}

/*** sp ***/
@media screen and (max-width: 767px) {
	.inner {
	    padding: 0 2rem;
	}
	
	.content-wrap {
		flex-direction: column-reverse;
		gap: 4rem;
	}
	.content-wrap .main {
		width: auto;
	}
	.content-wrap .side {
		width: auto;
	}
	
}

.wp-pagenavi {
	display: flex;
	justify-content: center;
	gap: 0 0.4rem;
	margin-top: 4rem;
}
.wp-pagenavi .pages,
.wp-pagenavi .extend {
	display: none;
}
.wp-pagenavi a, 
.wp-pagenavi span {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	width: 3.6rem;
	height: 3.2rem;
	background: #F3F1EF;
	border: 1px solid #fff;
	border-radius: 10rem;
	font-weight: 700;
	font-size: 1rem;
}
.wp-pagenavi .first,
.wp-pagenavi .last,
.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
	width: 3.2rem;
	height: 3.2rem;
	background: no-repeat center #000;
	border-radius: 50%;
	font-size: 0;
}
.wp-pagenavi .first {
	margin-right: 0.6rem;
	background-image: url(../img/common/icon_arrows_left.svg);
}
.wp-pagenavi .last {
	margin-left: 0.6rem;
	background-image: url(../img/common/icon_arrows_right.svg);
}
.wp-pagenavi .previouspostslink {
	margin-right: 0.6rem;
	background-image: url(../img/common/icon_page_left.svg);
}
.wp-pagenavi .nextpostslink {
	margin-left: 0.6rem;
	background-image: url(../img/common/icon_page_right.svg);
}
.scrollbar::-webkit-scrollbar {
	height:5px;
	width:5px; 
}

.wp-pagenavi span.current {
	background-color: #fff;
	border-color: #fff;
}

@media screen and (min-width: 960px) {
	.wp-pagenavi .page:hover,
	.wp-pagenavi .page:focus-visible {
		background-color: #fff;
		border-color: #fff;
	}
}

.recruit-popup-links {
	margin-top: 3rem;
	text-align: center;
}
.recruit-popup-links .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 5.6rem;
	width: 100%;
	max-width: 33.6rem;
	background: #3F874B;
	border-radius: 6rem;
	color: #fff;
	font-weight: 700;
	border: .1rem solid #3F874B;
	cursor: pointer;
	transition: all .35s;
}

@media screen and (min-width: 960px) {
	.recruit-popup-links .btn:hover,
	.recruit-popup-links .btn:focus-visible {
		background: #fff;
		color: #3F874B;
	}
}


/* !links
---------------------------------------------------------- */
.btn-links {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 2.7rem;
	padding: 1.6rem;
	border-radius: 99.9rem;
	border: .1rem solid #242424;
	background: #242424;
	color: #fff;
	font-size: 1.6rem;
	line-height: 1.5;
	font-weight: bold;
	letter-spacing: 3%;
}

.btn-links span {
	display: block;
	flex: 1;
	text-align: center;
}

.btn-links:after {
	width: 2.4rem;
	height: 2.4rem;
	background: url(../img/common/icon_link_left.svg) center center no-repeat #fff;
	background-size: 100% auto;
	content: '';
	border-radius: 100%;
	transition: transform .35s;
}

@media screen and (min-width: 960px) {
	.btn-links:hover,
	.btn-links:focus-visible {
		background: #fff;
		color: #242424;
	}

	.btn-links:hover:after,
	.btn-links:focus-visible:after {
		transform: translateX(.5rem);
	}
}

/* !page
---------------------------------------------------------- */
.news-wrap {
	padding: 0 0 7rem;
}
.news-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 3rem;
}

.news-list li:nth-child(even) {
	transition-delay: .3s;
}

.news-list .news-item {
	display: block;
}
.news-list .news-item .image {
	overflow: hidden;
	margin-bottom: 1.5rem;
	border-radius: 0.8rem;
	font-size: 0;
	width: 100%;
	aspect-ratio: 35 / 22;
	display: block;
}
.news-list .news-item .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition-duration: 0.3s;
}
.news-list .news-item .info {
	margin-bottom: 0.8rem;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	column-gap: .8rem;
	row-gap: .6rem;
}
.news-list .news-item .date {
	margin-right: 0;
	font-size: 1.4rem;
	line-height: 1.5;
	font-weight: 700;
	flex: 0 0 auto;
}
.news-list .news-item .cate {
	padding: .2rem 1.2rem;
	background: #F6F3E7;
	border-radius: 1.25rem;
	font-size: 1.2rem;
	line-height: 1.75;
	font-weight: 500;
	display: inline-block;
	white-space: nowrap;
	flex: 0 0 auto;
}

.news-list .news-item .title {
	font-size: 1.6rem;
	line-height: 1.5;
	font-weight: 500;
	display: block;
}

.news-list.col3 {
	grid-template-columns: repeat(3, 1fr);
	gap: 4.5rem;
}

.news-list.col3 li:nth-child(3) {
	transition-delay: .6s;
}

.detail-style {
	padding: 6rem;
	background: #fff;
	border-radius: 0.8rem;
}
.detail-style .title {
	position: relative;
	margin-bottom: 4rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid #C8C8C8;
}
.detail-style .title:after {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 11.3rem;
	border-top: 1px solid #4D9762;
} 
.detail-style .title .date {
	margin-bottom: 1rem;
	font-size: 1.4rem;
	font-weight: 700;
}
.detail-style .title h2 {
	margin-bottom: 1rem;
	font-size: 3rem;
	font-weight: 700;
}
.detail-style .title .area {
	font-size: 0;
}
.detail-style .title .area span {
	display: inline-block;
	padding: 0.2rem 1.2rem;
	background: #F6F3E7;
	border-radius: 5rem;
	font-size: 1.2rem;
}
.detail-style .detail p {
	margin-bottom: 3.2rem;
	line-height: 2.1;
}
.news-wrap .detail-style .detail table {
	border: 1px solid #888;
	border-collapse: collapse;
}
.news-wrap .detail-style .detail th,
.news-wrap .detail-style .detail td {
	border: 1px solid #888;
	padding: 10px;
}
.detail-style .detail figure {
	margin: 0 auto 3rem;
}
.detail-style .detail a {
	text-decoration: underline;
	color: #4D9762;
}
.detail-style .detail h2 {
	margin-bottom: 2rem;
	padding: 1rem 2rem;
	background: #5A9600;
	border-radius: 1rem;
	color: #fff;
	font-size: 2rem;
	font-weight: 700;
}
.page-btns {
	margin-top: 4rem;
	text-align: center;
}
.page-btns .go-list {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 1rem 1.6rem 1rem 4.8rem;
	height: 6rem;
	width: 100%;
	max-width: 24.4rem;
	background: url(../img/common/icon_link_left.svg) no-repeat left 1.6rem center #242424;
	background-size: 2.4rem;
	border-radius: 5rem;
	border: 0;
	color: #fff;
	font-size: 1.6rem;
	border: .1rem solid #242424;
}

.detail-style + .other-announcements {
	margin-top: 6rem;
}
.other-announcements .title {
	margin-bottom: 3rem;
	font-size: 3rem;
}

.disclosure-wrap {
	padding: 0 0 17.5rem;
}
.disclosure-part {
	padding: 6rem 10rem;
	background: #fff;
	border-radius: 0.8rem;
}
.disclosure-part + .disclosure-part {
	margin-top: 7rem;
}
.disclosure-wrap .repeat-title {
	margin-bottom: 2rem;
	color: #4D9762;
	font-size: 3rem;
	font-weight: 700;
}
.report-list {
	border-top: 1px dashed #D1D1D1;
}
.report-list li {
	border-bottom: 1px dashed #D1D1D1;
}
.report-list li a {
	display: block;
	padding: 3rem 0;
	font-size: 2rem;
}
.report-list li .pre {
	display: inline-block;
	margin-right: 1.8rem;
	padding: 0.2rem 1rem;
	background: #4D9762;
	border-radius: 5rem;
	color: #fff;
	font-size: 1.8rem;
}

/*** hover ***/
@media screen and (min-width: 960px) {
	.news-list .news-item:hover .image img,
	.news-list .news-item:focus-visible .image img {
		transform: scale(1.05);
	}

	.news-list .news-item:hover .title,
	.news-list .news-item:focus-visible .title {
		color: #5A9600;
	}
	
	.detail-style .detail a:hover,
	.detail-style .detail a:focus-visible {
		text-decoration: none;
	}
	
	.page-btns .go-list:hover,
	.page-btns .go-list:focus-visible {
		background-color: #fff;
		background-position: left 2.4rem center;
		color: #333;
	}
	
	.report-list li a:hover,
	.report-list li a:focus-visible {
		text-decoration: underline;
	}
}
/*** sp ***/
@media screen and (max-width: 767px) {
	.news-list,
	.news-list.col3 {
	    grid-template-columns: repeat(1, 1fr);
		gap: 3rem;
	}

	.news-list li:nth-child(even),
	.news-list li:nth-child(3) {
		transition-delay: 0;
	}
	
	.detail-style {
	    padding: 2rem;
	}
	.detail-style .title {
	    margin-bottom: 3rem;
	}
	.detail-style .title h2 {
	    font-size: 1.8rem;
	}
	.detail-style .detail h2 {
	    margin-bottom: 2rem;
	    padding: 0.6rem 1.2rem;
	    font-size: 1.6rem;
	}
	.detail-style .detail p {
		margin-bottom: 2.8rem;
		font-size: 1.4rem;
	}
	
	.page-btns {
	    margin-top: 3rem;
	}
	.page-btns .go-list {
		height: 4.8rem;
		font-size: 1.4rem;
	}
	
	.detail-style + .other-announcements {
	    margin-top: 4rem;
	}
	.other-announcements .title {
	    margin-bottom: 2rem;
		font-size: 2rem;
	}
	
	.disclosure-wrap {
	    padding: 0 0 8rem;
	}
	.disclosure-part {
	    padding: 2rem;
	}
	.disclosure-part + .disclosure-part {
	    margin-top: 3rem;
	}
	.disclosure-wrap .repeat-title {
	    margin-bottom: 1rem;
	    font-size: 2rem;
	}
	.report-list li a {
	    padding: 1.6rem 0;
	    font-size: 1.6rem;
	}
	.report-list li .pre {
	    margin-right: 1rem;
	    padding: 0.2rem 1rem;
	    font-size: 1.4rem;
	}
	
}


/* contact */
.contact-wrap {
	padding: 7.6rem 0 11.5rem;
}
.contact-box {
	padding: 4rem 10rem 18rem;
	background: #fff;
}
.contact-wrap .contact-head {
	margin-bottom: 5.4rem;
	text-align: center;
}
.contact-wrap .contact-heading {
	padding: 2.2rem 0 3rem;
	background: url(../img/common/icon_color_dots.svg)no-repeat center top;
	font-size: 4.8rem;
}
.contact-wrap .contact-text {
	line-height: 2.7;
}

/* お問い合わせ：プライバシーポリシーPDFラベル */
.contact-wrap .contact-text .privacy-pdf-link::after {
	display: inline-block;
	margin-left: .8rem;
	padding: .1rem .8rem;
	background: #4D9762;
	border-radius: 5rem;
	color: #fff;
	font-size: 1.4rem;
	line-height: 1.6;
	content: 'PDF';
	vertical-align: middle;
}
.contact-wrap table {
	width: 100%;
}
.contact-wrap th {
	vertical-align: top;
	padding: 4rem 0;
	width: 24rem;
	border-top: 1px solid #4D9762;
	border-bottom: 1px solid #4D9762;
	text-align: left;
	font-size: 1.8rem;
}
.contact-wrap td {
	vertical-align: top;
	padding: 3rem 0;
	border-top: 1px solid #C8C8C8;
	border-bottom: 1px solid #C8C8C8;
	font-family: "YakuHanJP", "IBM Plex Sans JP", sans-serif;
	font-size: 1.8rem;
}
.contact-wrap .must {
	display: inline-block;
	padding: 0.2rem 1rem;
	margin-left: 1rem;
	background: #5A9600;
	border-radius: 5rem;
	color: #fff;
}
.contact-wrap th .row + .row {
	margin-top: 4.2rem;
}
.contact-wrap .col2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2rem;
}
.contact-wrap .address {
	display: flex;
	align-items: center;
	gap: 0 1rem;
	margin-bottom: 2rem;
	font-weight: 600;
}
.contact-wrap input[type=text],
.contact-wrap input[type=email],
.contact-wrap input[type=tel]  {
	padding: 0 2rem;
	width: 100%;
	height: 5rem;
	border: 1px solid #CCCCCC;
	font-size: 1.6rem;
	line-height: 1.5;
	font-weight: 500;
	color: #333;
	border-radius: 0;
}

.contact-wrap .smf-form .smf-select-control {
	display: block;
}

.contact-wrap .smf-form .smf-select-control__control {
	padding: 0 4rem 0 2rem;
	width: 100%;
	height: 5rem;
	background: url(../img/common/icon_select.svg)no-repeat right 1rem center;
	background-size: 2.4rem;
	border: 1px solid #CCCCCC;
	font-size: 1.6rem;
	line-height: 1.5;
	font-weight: 500;
	color: #333;
	border-radius: 0;
}

.contact-wrap .smf-form .smf-select-control__toggle {
	display: none;
}

.contact-wrap input.small {
	width: 23rem;
}
.contact-wrap textarea {
	resize: vertical;
	padding: 1rem 2rem;
	width: 100%;
	height: 20rem;
	border: 1px solid #CCCCCC;
	font-size: 1.6rem;
	line-height: 1.5;
	font-weight: 500;
	color: #333;
	border-radius: 0;
}

.smf-form .contact-body .smf-item__col--label {
	display: none;
}

.contact-body .contact-item {
	position: relative;
	border-bottom: 1px solid #C8C8C8;
	padding: 3rem 0;
}

.contact-body .contact-item:after {
	width: 24rem;
	height: .1rem;
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 2;
	background: #4D9762;
	transform: translateY(.1rem);
}

.contact-body .contact-item:first-child {
	border-top: 1px solid #C8C8C8;
}

.contact-body .contact-item:first-child:before {
	width: 24rem;
	height: .1rem;
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	z-index: 2;
	background: #4D9762;
	transform: translateY(-.1rem);
} 

.contact-body .contact-item:not(.contact-access) > .wp-block-group__inner-container,
.contact-body .contact-zip > .wp-block-group__inner-container,
.contact-body .contact-address > .wp-block-group__inner-container {
	display: flex;
	align-items: flex-start;
}

.contact-body .contact-item .contact-item__title {
	width: 24rem;
	min-width: 24rem;
	padding: 1rem 0;
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 1.8rem;
	line-height: 1.72;
	font-weight: 500;
	letter-spacing: 3%;
}

.contact-body .contact-item .contact-item__title.is-required:after {
	display: inline-flex;
	padding: 0 1rem;
	background: #5A9600;
	border-radius: 3.3rem;
	color: #fff;
	font-size: 1.8rem;
	line-height: 1.72;
	font-weight: 500;
	letter-spacing: 3%;
	content: '必須';
}

.contact-body .contact-item .contact-item__body {
	flex: 1;
}

.contact-body .contact-name > .wp-block-group__inner-container {
	display: flex;
	align-items: flex-start;
	gap: 2rem;
}

.contact-body .contact-name .smf-item {
	flex: 1;
}

.contact-body .contact-zip .smf-item__col--controls {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.contact-body .contact-zip .smf-item__col--controls:before {
	font-size: 1.8rem;
	line-height: 1;
	font-weight: 600;
	content: '〒';
}

.contact-body .contact-zip input[type=text]  {
	max-width: 23rem;
}

.contact-body .contact-address {
	margin-top: 2rem;
}

.contact-box .smf-action {
	margin-top: 4rem;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2rem;
}

.contact-box .smf-action .smf-button-control {
    width: 100%;
    max-width: 24.4rem;
}

.contact-box .smf-action button[data-action=confirm],
.contact-box .smf-action button[data-action=complete],
.contact-box .smf-action a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 1.6rem 1rem 4.8rem;
    height: 6rem;
    width: 100%;
    background: url(../img/common/icon_link_left.svg) no-repeat left 1.6rem center #242424;
    background-size: 2.4rem;
    border-radius: 5rem;
    border: 0;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 500;
    border: .1rem solid #242424;
    cursor: pointer;
    transition: all .35s ease;
}

.contact-box .smf-action a {
	max-width: 24.4rem;
}

.contact-box .smf-action button[data-action=back] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 1.6rem;
    height: 6rem;
    width: 100%;
    background: #ccc;
    border-radius: 5rem;
    border: 0;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 500;
    border: .1rem solid #ccc;
    cursor: pointer;
    transition: all .35s ease;
}

.contact-box .smf-action button[data-action=confirm] .smf-sending {
	display: none;
}

.smf-system-error-content-ready {
	margin-top: 4rem;
}

.contact-box .snow-monkey-form[data-screen=confirm] .contact-item .contact-item__title {
	padding: 0;
}

.contact-box .snow-monkey-form[data-screen=confirm] .contact-item .contact-item__body {
	font-size: 1.8rem;
	line-height: 1.72;
}

.contact-box .snow-monkey-form[data-screen=confirm] .contact-name .smf-item {
	flex: 0 0 auto;
}



/*** hover ***/
@media screen and (min-width: 960px) {
	.contact-box .smf-action button[data-action=confirm]:hover,
	.contact-box .smf-action button[data-action=confirm]:focus-visible,
	.contact-box .smf-action button[data-action=complete]:hover,
	.contact-box .smf-action button[data-action=complete]:focus-visible,
	.contact-box .smf-action a:hover,
	.contact-box .smf-action a:focus-visible {
		background-color: #fff;
		background-position: left 2.4rem center;
		color: #333;
	}

	.contact-box .smf-action button[data-action=back]:hover,
	.contact-box .smf-action button[data-action=back]:focus-visible {
		opacity: .7;
	}
}

/*** sp ***/
@media screen and (max-width: 767px) {
	.contact-wrap {
	    padding: 0 0 8rem;
	}
	.contact-box {
	    padding: 2rem;
	}
	.contact-wrap .contact-head {
	    margin-bottom: 3rem;
	}
	.contact-wrap .contact-heading {
	    font-size: 2.8rem;
	}
	.contact-wrap .contact-text {
	    line-height: 2;
		font-size: 1.4rem;
	}
	.contact-wrap table {
		border-top: 1px solid #C8C8C8;
	}
	.contact-wrap th {
		display: block;
	    padding: 2rem 0 1rem;
	    width: 100%;
	    border: 0;
	    text-align: left;
	    font-size: 1.5rem;
	}
	.contact-wrap td {
		display: block;
	    padding: 0 0 2rem;
	    width: 100%;
		border-top: 0;
	    font-size: 1.5rem;
	}
	.contact-wrap .col2 {
	    grid-template-columns: repeat(1, 1fr);
	    gap: 1rem;
	}
	.contact-wrap input[type=text], 
	.contact-wrap input[type=tel] {
	    padding: 0 1.2rem;
	    height: 4rem;
		font-size: 1.4rem;
	}
	.contact-wrap select {
	    padding: 0 3rem 0 1.2rem;
	    height: 4rem;
	    background-size: 2.4rem;
	    font-size: 1.4rem;
	}
	.contact-wrap textarea {
		height: 16rem;
	    font-size: 1.4rem;
	}

	.contact-body .contact-item {
		padding: 2rem 0;
	}

	.contact-body .contact-item:after {
		display: none;
	}

	.contact-body .contact-item:first-child {
		border-top: 1px solid #C8C8C8;
	}

	.contact-body .contact-item:first-child:before {
		display: none;
	} 

	.contact-body .contact-item:not(.contact-access) > .wp-block-group__inner-container,
	.contact-body .contact-zip > .wp-block-group__inner-container,
	.contact-body .contact-address > .wp-block-group__inner-container {
		display: block;
	}

	.contact-body .contact-item .contact-item__title {
		width: 100%;
		min-width: unset;
		padding: 0;
		font-size: 1.6rem;
		line-height: 1.5;
		margin-bottom: 1.5rem;
	}

	.contact-body .contact-item .contact-item__title.is-required:after {
		border-radius: 1.2rem;
		font-size: 1.6rem;
		line-height: 1.5;
	}

	.contact-body .contact-name > .wp-block-group__inner-container {
		gap: 1rem;
	}

	.contact-body .contact-zip .smf-item__col--controls:before {
		font-size: 1.6rem;
	}

	.contact-body .contact-zip input[type=text]  {
		max-width: 15rem;
	}

	.contact-body .contact-address {
		margin-top: 1.5rem;
	}

}

.recruit-teaser {
	margin-top: -22rem;
	padding-bottom: 3.8rem;
}
.recruit-teaser .recruit-teaser__head {
	position: relative;
	padding: 0 8.2rem 0 6.2rem;
	margin: 0 auto 16rem;
	max-width: 128rem;
}
.recruit-teaser .recruit-teaser-image {
	position: relative;
	z-index: 2;
}

.recruit-teaser .recruit-teaser-image .image {
	width: 100%;
	aspect-ratio: 1135 / 681;
	-webkit-mask-image: url(../img/recruit/mainimg_mask.svg);
	mask-image: url(../img/recruit/mainimg_mask.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.recruit-teaser .recruit-teaser-image .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.recruit-teaser .recruit-teaser-image img {
	width: 100%;
}

.recruit-teaser .recruit-teaser-image .deco01 {
	left: -1.6rem;
	bottom: -3rem;
	width: 48.6rem;
	position: absolute;
	z-index: 1;
}
.recruit-teaser .recruit-teaser-image .deco02 {
	top: -10.9rem;
	left: 50%;
	margin-left: -27.35rem;
	width: 54.7rem;
	position: absolute;
	z-index: 1;
}
.recruit-teaser .recruit-teaser-image .deco03 {
	right: -3.634rem;
	bottom: -2.6rem;
	width: 40.351rem;
	position: absolute;
	z-index: 3;
}

.recruit-teaser .recruit-teaser-heading {
	position: absolute;
	right: 5.4rem;
	top: 62%;
	z-index: 3;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-size: 3.6rem;
	font-weight: bold;
	line-height: 1;
	letter-spacing: 20%;
	word-break: keep-all;
	white-space: nowrap;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 1.1rem;
}

.recruit-teaser .recruit-teaser-heading span {
	padding: .658rem 1.2rem;
	position: relative;
	z-index: 2;
}

.recruit-teaser .recruit-teaser-heading span:before {
	background: #fff;
	position: absolute;
	left: 0;
	top: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	border-radius: .585rem;
	content: '';
}

.recruit-teaser .recruit-teaser__body {
	position: relative;
}

.recruit-teaser .recruit-teaser__body img {
	width: 100%;
}

.recruit-teaser .recruit-teaser__body .deco04 {
	width: 23.931rem;
	position: absolute;
	left: -15.8rem;
	top: -8.6rem;
	z-index: -1;
}

.recruit-teaser .recruit-teaser__body .deco05 {
	width: 20.86rem;
	position: absolute;
	right: -17.3rem;
	bottom: 8.6rem;
	z-index: -1;
}

.recruit-teaser .recruit-teaser-text {
	margin: 0 auto;
	max-width: 72.8rem;
	line-height: 2.8;
	text-align: center;
	font-size: 2.6rem;
	font-weight: 700;
}
.recruit-teaser .recruit-teaser-text p + p {
	margin-top: 2.6rem;
}

.recruit-teaser .recruit-teaser-text span,
.recruit-teaser .recruit-teaser-text strong {
	background: linear-gradient(#FEE738, #FEE738) left bottom no-repeat;
	background-size: 100% 1rem;
	font-weight: bold;
}

.recruit-teaser .illust {
	margin: 7.4rem auto 0;
	max-width: 54rem;
}

.recruit-currently {
	position: relative;
	z-index: 2;
	margin: 8rem 0 12rem;
	padding: 7rem 0 12rem;
	background: #C1D8A5;
}
.recruit-currently:before,
.recruit-currently:after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	background: no-repeat center top;
	background-size: 100% 100%;
}
.recruit-currently:before {
	bottom: 100%;
	height: 8rem;
	background-image: url(../img/recruit/bg_wave_top.png);
}
.recruit-currently:after {
	top: 100%;
	height: 12rem;
	background-image: url(../img/recruit/bg_wave_bottom.png);
}
.recruit-currently .recruit-currently-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3.8rem;
}
.recruit-currently .recruit-currently-item {
	display: block;
	overflow: hidden;
	background: #fff;
	border: 1px solid #C2C1C1;
	border-radius: 2rem;
	height: 100%;
}
.recruit-currently-item .image {
	overflow: hidden;
	width: 100%;
	aspect-ratio: 329 / 174;
	display: block;
}
.recruit-currently-item .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition-duration: 0.3s;
}
.recruit-currently-item .info {
	padding: 2.6rem 2rem;
	display: block;
}
.recruit-currently-item .date {
	display: block;
	color: #919191;
	font-weight: 400;
	font-size: 1.2rem;
	line-height: 1.25;
	margin-bottom: .8rem;
}
.recruit-currently-item .title {
	padding-bottom: 1rem;
	margin-bottom: 2rem;
	border-bottom: 1px dashed #D1D1D1;
	color: #4D9762;
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 3%;
	font-weight: 700;
	display: block;
}
.recruit-currently-item .item + .item {
	margin-top: 2rem;
}

.recruit-currently-item .item {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	gap: .8rem;
}

.recruit-currently-item .item-title {
	padding: 0.5rem 1rem;
	background: #4D9762;
	border-radius: 0.4rem;
	color: #fff;
	font-weight: 700;
	font-size: 1.4rem;
	line-height: 1;
}
.recruit-currently-item .item-contents {
	font-size: 1.4rem;
	line-height: 1.6;
	letter-spacing: 3%;
}
.popup-wrap {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    top: 0;
    z-index: 999;
    width: 100%;
    height: 100dvh;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity .3s, visibility .3s;
}
.popup-wrap.is-show {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}
.popup-wrap .overlay {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    background: rgba(150, 150, 150, .95);
}
.popup-wrap-box {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    width: calc(100% - 4rem);
    max-width: 86rem;
}
.popup-wrap-box .close {
    cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
    position: absolute;
    right: 1.6rem;
    top: 1.6rem;
	width: 4.4rem;
	height: 4.4rem;
	background: rgba(255,255,255,0.92);
	border-radius: 50%;
	font-isze: 2.6rem;
	font-weight: 400;
}

.recruit-popup-display {
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	width: 100%;
    max-height: calc(100vh - 12rem);
	background: #fff;
	border-radius: 3.2rem;
}
.recruit-popup-display .image {
	width: 100%;
	aspect-ratio: 860 / 350;
}
.recruit-popup-display .image img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
.recruit-popup-display .box {
	padding: 2.4rem 5.4rem 4.2rem;
}
.recruit-popup-display .title {
	padding-bottom: 3.2rem;
	margin-bottom: 2rem;
	border-bottom: 1px solid #D8DDD4;
	color: #3F874B;
	font-weight: 700;
	font-size: 4.4rem;
}
.currently-table {
	width: 100%;
}
.currently-table tr {
	border-bottom: 1px solid #D8DDD4;
}
.currently-table th {
	vertical-align: top;
	padding: 1.8rem 0;
	width: 17.4rem;
	text-align: left;
	color: #3F874B;
	font-weight: 700;
}
.currently-table td {
	padding: 1.8rem 0;
	font-weight: 400;
}



.recruit-interview {
	padding: 3.8rem 0 13rem;
}
.recruit-interview-ctrl {
	display: flex;
	justify-content: center;
	gap: 0 10rem;
	margin-bottom: 5rem;
}
.recruit-interview-ctrl li a {
	display: inline-block;
	position: relative;
	padding: 0 0.4rem;
	border-bottom: 1px solid #333;
	line-height: 1.15;
	font-size: 2rem;
	font-weight: 700;
}
.recruit-interview-ctrl li a.is-active {
	background: #5A9600;
	border-bottom: 0;
	color: #fff;
}
.recruit-interview-ctrl li a.is-active:before {
	content: "";
	position: absolute;
	left: -2rem;
	top: 50%;
	transform: translateY(-50%);
	width: 0.8rem;
	height: 1rem;
	background: url(../img/recruit/icon_points.svg)no-repeat center;
	background-size: 100%;
}
.recruit-interview .recruit-interview__item {
	display: flex;
	justify-content: space-between;
	padding: 10rem 6rem 7rem;
	border-radius: 3rem;
	color: #fff;
}
.recruit-interview .recruit-interview__item + .recruit-interview__item {
	margin-top: 5rem;
}
.recruit-interview .recruit-interview__item .recruit-interview-left {
	width: calc(45% - 2rem);
}
.recruit-interview .recruit-interview__item .interview-image {
	position: relative;
	z-index: 2;
}

.recruit-interview .recruit-interview__item .image {
	position: relative;
	z-index: 2;
	width: 100%;
	aspect-ratio: 406 / 253;
	-webkit-mask-image: url(../img/recruit/interview_mask.svg);
	mask-image: url(../img/recruit/interview_mask.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.recruit-interview .recruit-interview__item .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.recruit-interview .recruit-interview__item .box {
	margin-top: 1rem;
	text-align: center;
	font-weight: 700;
}
.recruit-interview .recruit-interview__item .facility {
	display: inline-block;
	margin-bottom: 1rem;
	padding: 0.2rem 1.2rem;
	background: #fff;
	border-radius: 5rem;
	letter-spacing: 0.07em;
	font-size: 1.4rem;
}
.recruit-interview .recruit-interview__item .name {
	letter-spacing: 0.03em;
	font-size: 3.6rem;
}
.recruit-interview .recruit-interview__item .cate {
	display: inline-block;
	padding: 0.8rem 0;
	border-bottom: 1px solid;
	line-height: 1.9;
}
.recruit-interview .recruit-interview__item .recruit-interview-right {
	width: 49%;
}
.recruit-interview .recruit-interview__item .title {
	margin-bottom: 3rem;
	font-size: 3.2rem;
	font-weight: 700;
}
.recruit-interview .recruit-interview__item .text {
	line-height: 2;
}

.recruit-interview .recruit-interview__item:nth-of-type(3n + 1) {
	background: #5A9600;
}
.recruit-interview .recruit-interview__item:nth-of-type(3n + 2) {
	background: #FFA986;
}
.recruit-interview .recruit-interview__item:nth-of-type(3n) {
	background: #1EB1B2;
}

.recruit-interview .recruit-interview__item .interview-image:before {
	content: "";
	position: absolute;
	background: no-repeat center;
	background-size: 100%;
	opacity: 0;
	transition: opacity .1s ease, transform 1s ease;
	transition-delay: .6s;
}
.recruit-interview .recruit-interview__item:nth-of-type(3n + 1) .interview-image:before {
	left: -0.6rem;
	bottom: -0.7rem;
	width: 11rem;
	height: 12.6rem;
	background-image: url(../img/recruit/interview_deco01.svg);
	z-index: 3;
	transform: translateX(-4rem);
}
.recruit-interview .recruit-interview__item:nth-of-type(3n + 2) .interview-image:before {
	right: -2.6rem;
	bottom: -1.5rem;
	width: 11.4rem;
	height: 10.3rem;
	background-image: url(../img/recruit/interview_deco02.svg);
	z-index: 3;
	transform: translateX(4rem);
}
.recruit-interview .recruit-interview__item:nth-of-type(3n) .interview-image:before {
	right: -4.2rem;
	bottom: 0.4rem;
	z-index: 1;
	width: 20.2rem;
	height: 15.9rem;
	background-image: url(../img/recruit/interview_deco03.svg);
	transform: translateX(4rem);
}

.recruit-interview .recruit-interview__item.animated .interview-image:before {
	opacity: 1;
	transform: translateX(0) !important;
}

.recruit-interview .recruit-interview__item:nth-of-type(3n + 1) .facility {
	color: #5A9600;
}
.recruit-interview .recruit-interview__item:nth-of-type(3n + 2) .facility {
	color: #FFA986;
}
.recruit-interview .recruit-interview__item:nth-of-type(3n) .facility {
	color: #1EB1B2;
}


/*** hover ***/
@media screen and (min-width: 960px) {
	
	.recruit-currently-item:hover .image img,
	.recruit-currently-item:focus-visible .image img {
		transform: scale(1.05);
	}
	
	.recruit-interview-ctrl li a:hover,
	.recruit-interview-ctrl li a:focus-visible {
		background: #5A9600;
		border-bottom: 0;
		color: #fff;
	}
	.recruit-interview-ctrl li a:hover:before,
	.recruit-interview-ctrl li a:focus-visible:before {
		content: "";
		position: absolute;
		left: -2rem;
		top: 50%;
		transform: translateY(-50%);
		width: 0.8rem;
		height: 1rem;
		background: url(../img/recruit/icon_points.svg)no-repeat center;
		background-size: 100%;
	}
}
/*** sp ***/
@media screen and (max-width: 767px) {
	.recruit-teaser {
	    margin-top: 0rem;
	    padding-bottom: 3.8rem;
	    background-position: 0 50%, 100% 85%;
		background-size: 8rem, 7rem;
	}
	.recruit-teaser .recruit-teaser__head {
	    padding: 0 2rem;
	    margin-bottom: 2.4rem;
	}
	.recruit-teaser .recruit-teaser-image .deco01 {
	    left: -1rem;
	    bottom: 12rem;
	    width: 12rem;
	}
	.recruit-teaser .recruit-teaser-image .deco02 {
	    top: -2.5rem;
	    margin-left: -7rem;
	    width: 14rem;
	}

	.recruit-teaser .recruit-teaser-image .deco03 {
		right: -1rem;
		bottom: 12rem;
		width: 12rem;
	}
	.recruit-teaser .recruit-teaser-heading {
		position: static;
	    padding: 1.6rem 0 0;
	    writing-mode: tb-lr;
	    writing-mode: horizontal-tb;
	    gap: .3rem;
		font-size: 2rem;
		line-height: 1.26;
		letter-spacing: 0;
	}
	.recruit-teaser .recruit-teaser-heading span {
		padding: 0.5rem 1rem;
	}

	.recruit-teaser .recruit-teaser-heading span:before {
		border-radius: .585rem;
	}

	.recruit-teaser .recruit-teaser__body .deco04 {
		width: 12rem;
		left: -7.9rem;
		top: -4.3rem;
	}

	.recruit-teaser .recruit-teaser__body .deco05 {
		width: 10rem;
		right: -6rem;
		bottom: 10rem;
	}

	.recruit-teaser .recruit-teaser-text {
	    line-height: 2;
	    font-size: 1.6rem;
	    text-align: left;
	}

	.recruit-teaser .recruit-teaser-text p + p {
		margin-top: 2rem;
	}

	.recruit-teaser .recruit-teaser-text span,
	.recruit-teaser .recruit-teaser-text strong {
		background-size: 100% .5rem;
	}

	.recruit-teaser .illust {
		max-width: 27rem;
	}
	
	.recruit-currently {
	    margin: 4rem 0 6rem;
	    padding: 4rem 0;
	}
	.recruit-currently:before {
	    height: 4rem;
	}
	.recruit-currently:after {
		height: 6rem;
	}
	
	.recruit-currently .recruit-currently-list {
	    grid-template-columns: repeat(1, 1fr);
	    gap: 3rem;
	}

	.recruit-currently .recruit-currently-list li {
		transition-delay: 0 !important;
	}

	.recruit-popup-display {
	    max-height: calc(100vh - 4rem);
		border-radius: 2.4rem;
	}

	.recruit-popup-display .box {
		padding: 1.5rem 2rem 2rem;
	}
	.recruit-popup-display .title {
		padding-bottom: 2rem;
		margin-bottom: 0;
		font-size: 2.4rem;
	}
	.currently-table,
	.currently-table tbody,
	.currently-table tr,
	.currently-table th,
	.currently-table td {
		width: 100%;
		display: block;
	}

	.currently-table tr {
		padding: 1rem 0;
	}

	.currently-table th {
		padding: 0;
		margin-bottom: .5rem;
	}
	.currently-table td {
		padding: 0;
		font-size: 1.4rem;
	}
	
	.recruit-interview-ctrl {
	    display: flex;
		flex-direction: column;
	    justify-content: flex-start;
	    gap: 1rem;
	    margin-bottom: 2.5rem;
	}
	.recruit-interview-ctrl li {
		padding-left: 2rem;
	}
	.recruit-interview-ctrl li a {
		font-size: 1.6rem;
	}
	.recruit-interview .recruit-interview__item {
	    display: block;
	    padding: 2rem;
	    border-radius: 2rem;
	}
	.recruit-interview .recruit-interview__item + .recruit-interview__item {
	    margin-top: 3rem;
	}
	.recruit-interview .recruit-interview__item .recruit-interview-left {
		margin-bottom: 2.4rem;
		width: auto;
	}
	.recruit-interview .recruit-interview__item .facility {
		font-size: 1.2rem;
	}
	.recruit-interview .recruit-interview__item .name {
	    font-size: 2.4rem;
	}
	.recruit-interview .recruit-interview__item .cate {
		padding: 0.5rem 0;
		font-size: 1.4rem;
	}
	.recruit-interview .recruit-interview__item .recruit-interview-right {
		width: auto;
	}
	.recruit-interview .recruit-interview__item .title {
	    margin-bottom: 1.6rem;
	    font-size: 2.4rem;
	}
	.recruit-interview .recruit-interview__item .text {
		font-size: 1.4rem;
	}
	
	
	.recruit-interview .recruit-interview__item:nth-of-type(3n + 1) .interview-image:before {
	    width: 8rem;
	    height: 9.6rem;
	}
	.recruit-interview .recruit-interview__item:nth-of-type(3n + 2) .interview-image:before {
	    width: 8.8rem;
	    height: 8rem;
	}
	.recruit-interview .recruit-interview__item:nth-of-type(3n) .interview-image:before {
	    right: -2.2rem;
	    z-index: -1;
	    width: 16rem;
	    height: 12rem;
	}
}


/* TOP */
.top-about {
	width: 100%;
	padding: 8rem 0 15.7rem;
}

.top-about .inner {
	max-width: 128rem;
	padding: 0 4.4rem;
	position: relative;
}

.top-about__inner {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.top-about .top-about__inner img {
	width: 100%;
}

.top-about__inner .illust {
	width: 6.076rem;
	position: absolute;
	right: 4.4rem;
	bottom: -5.727rem;
	z-index: 3;
}

.top-about .top-about-image {
	width: 64.4rem;
	position: relative;
}

.top-about .top-about-image .image {
	width: 100%;
	-webkit-mask-image: url(../img/top/about_mask.svg);
	mask-image: url(../img/top/about_mask.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.top-about .top-about-image .illust {
	width: 50.29rem;
	position: absolute;
	left: 2.6rem;
	bottom: -8.4rem;
	z-index: 3;
}

.top-about .top-about-image .deco01 {
	width: 29.131rem;
	position: absolute;
	left: 2.6rem;
	top: -1.581rem;
	z-index: 1;
}

.top-about .top-about-image .deco02 {
	width: 36.2rem;
	position: absolute;
	right: 4.2rem;
	bottom: -.613rem;
	z-index: 1;
}

.top-about .top-about-box {
	width: calc(100% - 70.5rem);
	font-size: 1.6rem;
	line-height: 2;
	letter-spacing: 3%;
	font-weight: bold;
}

.top-about .top-about-box p + p {
	margin-top: 2.2rem;
}

.top-vision {
	width: 100%;
	background: url(../img/top/bg_vision.png) center center no-repeat;
	background-size: 100% 100%;
	padding: 8.7rem 0 23.2rem;
}

.top-vision .inner {
	max-width: 128rem;
	padding: 0 4.4rem;
	position: relative;
}

.top-vision img {
	width: 100%;
}

.top-vision__top {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-right: 6rem;
}

.top-vision .top-vision-image {
	width: 61.4rem;
	position: relative;
	z-index: 2;
}

.top-vision .top-vision-image .image {
	width: 100%;
	-webkit-mask-image: url(../img/top/vision_mark01.svg);
	mask-image: url(../img/top/vision_mark01.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.top-vision .top-vision-image .deco {
	width: 25.18rem;
	position: absolute;
	right: -5.579rem;
	 bottom: 0;
	z-index: 1;
}

.top-vision .top-vision-title {
	color: #4D9762;
	margin-bottom: 1rem;
	font-size: 4.2rem;
	line-height: 1;
	letter-spacing: 3%;
	font-weight: 400;
}

.top-vision .box {
	background: url(../img/top/bg_vision_box.png) center center no-repeat;
	background-size: 100% 100%;
	padding: 5.1rem 2.1rem 5.1rem 4.1rem;
	font-size: 1.8rem;
	line-height: 1.7;
	letter-spacing: 3%;
	font-weight: bold;
}

.top-vision .top-vision-image .box {
	position: absolute;
	left: -6.2rem;
	bottom: -7.79rem;
	z-index: 3;
}

.top-vision .top-vision-box {
	width: calc(100% - 62.4rem);
}

.top-vision .top-vision-heading {
	margin-bottom: 3.9rem;
	font-size: 4.6rem;
	font-weight: bold;
	line-height: 1.3;
	letter-spacing: 3%;
	color: #494600;
}

.top-vision .top-vision-heading span {
	display: block;
	font-size: 2.4rem;
	letter-spacing: 3%;
	line-height: 1.5;
	margin-bottom: .5rem;
}

.top-vision__bottom {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-top: 1.3rem;
	position: relative;
}

.top-vision__bottom .illust {
	width: 41.6rem;
	position: absolute;
	left: 10.7rem;
	bottom: -14.22rem;
	z-index: 2;
}

.top-vision .top-vision-left {
	width: 61.264rem;
	position: relative;
	z-index: 2;
}

.top-vision .top-vision-left .image {
	width: 100%;
	-webkit-mask-image: url(../img/top/vision_mark02.svg);
	mask-image: url(../img/top/vision_mark02.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.top-vision .top-vision-left .deco {
	width: 22.324rem;
	position: absolute;
	left: 0;
	top: .5rem;
	z-index: 1;
}

.top-vision .top-vision-left .box {
	position: absolute;
	left: 0;
	bottom: -7.776rem;
	z-index: 3;
}


.top-vision .top-vision-right {
	width: 57.211rem;
	position: relative;
	z-index: 3;
	margin-top: 3.7rem;
}

.top-vision .top-vision-right .image {
	width: 100%;
	-webkit-mask-image: url(../img/top/vision_mark03.svg);
	mask-image: url(../img/top/vision_mark03.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.top-vision .top-vision-right .deco {
	width: 37.2rem;
	position: absolute;
	left: -6.2rem;
	top: 13.333rem;
	z-index: 1;
}

.top-vision .top-vision-right .box {
	position: absolute;
	right: 0;
	bottom: -9.812rem;
	z-index: 3;
}

.top-news {
	padding: 10rem 0 10.5rem;
	width: 100%;
	overflow: hidden;
}

.top-news .inner {
	max-width: 128rem;
	padding: 0 4.4rem;
	position: relative;
}

.top-news .top-news__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 2rem;
	margin-bottom: 6rem;
}

.top-heading {
	font-size: 4.6rem;
	line-height: 1.3;
	font-weight: bold;
	color: #494600;
	letter-spacing: 3%;
}

.top-heading .sub {
	display: block;
	margin-top: .8rem;
	font-size: 1.6rem;
	line-height: 2.1;
	font-weight: 500;
}

.top-news .top-news-button .btn-links {
	width: 22rem;
	gap: .8rem;
}

.top-news__body .swiper {
	overflow: visible;
}

.top-news__body .swiper-slide {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
}

.top-news__body .news-item {
	display: block;
	width: 25.2rem;
}

.top-news__body .news-item .image {
	width: 100%;
	aspect-ratio: 63 / 43;
	overflow: hidden;
	border-radius: .5rem;
	display: block;
}

.top-news__body .news-item .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .25s;
}

.top-news__body .news-item .info {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 2rem;
	column-gap: 1rem;
	row-gap: .6rem;
}

.top-news__body .news-item .date {
	font-size: 1.4rem;
	line-height: 1.5;
	font-weight: bold;
	flex: 0 0 auto;
}

.top-news__body .news-item .cate {
	font-size: 1.2rem;
	line-height: 1.75;
	font-weight: 500;
	background: #fff;
	padding: .2rem 1.2rem;
	border-radius: 1.25rem;
	display: inline-block;
	white-space: nowrap;
	flex: 0 0 auto;
}

.top-news__body .news-item .title {
	margin-top: 1.2rem;
	font-size: 1.6rem;
	line-height: 1.5;
	font-weight: 500;
	overflow : hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	margin-top: 1.2rem;
	transition: color .25s;
}

.top-news__body .swiper-controller {
	position: relative;
	margin-top: 2.6rem;
	display: flex;
	align-items: center;
	padding: 0 0 0 4.5rem;
}

.top-news__body .swiper-controller .swiper-button-prev,
.top-news__body .swiper-controller .swiper-button-next {
	position: relative;
	left: 0;
	top: 0;
	padding: 0;
	margin: 0;
	width: 3.5rem;
	height: 3.5rem;
	border: .1rem solid #5A9600;
	border-radius: 100%;
	background: #fff;
	z-index: 2;
}

.top-news__body .swiper-controller .swiper-button-next {
	margin-left: 1.3rem;
}

.top-news__body .swiper-controller .swiper-button-prev:before,
.top-news__body .swiper-controller .swiper-button-next:before {
	width: .7rem;
	height: 1.2rem;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	z-index: 2;
	background: url(../img/common/icon_arrows_green.svg) center center no-repeat;
	background-size: 100% auto;
	content: '';
	transition: background-image .35s;
}

.top-news__body .swiper-controller .swiper-button-prev:before {
	transform: translate(-50%,-50%) scale(-1);
}

.top-news__body .swiper-controller .swiper-button-prev:after,
.top-news__body .swiper-controller .swiper-button-next:after {
	display: none;
}

.top-news__body .swiper-controller .swiper-scrollbar {
	margin-left: 2.8rem;
	flex: 1;
	height: .6rem;
	border-radius: .3rem;
	background: #fff;
}

.top-news__body .swiper-controller .swiper-scrollbar .swiper-scrollbar-drag {
	height: 100%;
	border-radius: .3rem;
	background: #5A9600;
}

@media screen and (min-width: 960px) {
	.top-news__body .swiper-controller .swiper-button-prev:hover,
	.top-news__body .swiper-controller .swiper-button-next:hover,
	.top-news__body .swiper-controller .swiper-button-prev:focus-visible,
	.top-news__body .swiper-controller .swiper-button-next:focus-visible {
		background: #5A9600;
	}

	.top-news__body .swiper-controller .swiper-button-prev:hover:before,
	.top-news__body .swiper-controller .swiper-button-next:hover:before,
	.top-news__body .swiper-controller .swiper-button-prev:focus-visible:before,
	.top-news__body .swiper-controller .swiper-button-next:focus-visible:before {
		background-image: url(../img/common/icon_arrows_white.svg);
	}

	.top-news__body .news-item:hover .image img,
	.top-news__body .news-item:focus-visible .image img {
		transform: scale(1.05);
	}

	.top-news__body .news-item:hover .title,
	.top-news__body .news-item:focus-visible .title {
		color: #5A9600;
	}
}

.top-facility {
	padding: 14rem 0 10rem;
}

.top-facility .inner {
	max-width: 118.6rem;
}
.top-facility .top-facility__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 2rem;
	margin-bottom: 5rem;
}

.top-facility .top-facility-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 4rem;
}

.facility-item {
	display: block;
	width: 100%;
	height: 100%;
	background: #fff;
	border-radius: 1.2rem;
	padding: 2.2rem;
	position: relative;
	transition: transform .3s;
}

.facility-item:after {
	position: absolute;
	right: 2.2rem;
	bottom: 3.1rem;
	z-index: 1;
	width: 3.164rem;
	height: 3.165rem;
	background: url(../img/common/icon_link_left_black.svg) center center no-repeat;
	background-size: 100% auto;
	content: '';
	transition: transform .3s;
}

.facility-item .image {
	width: 100%;
	aspect-ratio: 145 / 108;
	position: relative;
	display: block;
}

.facility-item .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s;
}

.facility-item .cate {
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 1;
	transform: translateY(50%);
	font-size: 1.4rem;
	line-height: 1;
	padding: 1rem;
	border-radius: 3rem;
	color: #fff;
	letter-spacing: 3%;
	font-weight: bold;
}

.facility-item .catch {
	display: block;
	margin-top: 3rem;
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 2;
	letter-spacing: 3%;
}

.facility-item .title {
	margin-top: 1rem;
	font-size: 2.2rem;
	line-height: 1.5;
	letter-spacing: 3%;
	font-weight: bold;
	padding-right: 11rem;
	display: block;
}

/* TOP施設情報：長い施設名がPCで3行にならないよう、
   リンク矢印のスペースを確保しつつタイトル幅を広げる */
@media screen and (min-width: 768px) {
	.top-facility .facility-item .title {
		padding-right: 6rem;
	}
}


@media screen and (min-width: 960px) {

	.facility-item:hover,
	.facility-item:focus-visible {
		transform: translateY(-.4rem) !important;
	} 

	.facility-item:hover:after,
	.facility-item:focus-visible:after {
		transform: translateX(.5rem) !important;
	} 

	.facility-item:hover .image img,
	.facility-item:focus-visible img {
		transform: scale(1.05);
	} 
}

.top-recruit {
	color: #fff;
	padding-bottom: 10rem;
}

.top-recruit img {
	width: 100%;
}

.top-recruit .inner {
	max-width: 128rem;
	padding: 0 4.4rem;
	position: relative;
}

.top-recruit__inner {
	width: 100%;
	background: #9DC270;
	border-radius: 2rem;
	padding: 8.35rem 4.5rem 11.7rem 4.7rem;
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.top-recruit__inner .illust {
	width: 27.049rem;
	position: absolute;
	left: 29.8rem;
	bottom: 4.666rem;
	z-index: 2;
}

.top-recruit-image {
	width: 62.1rem;
	padding-top: 2.95rem;
	position: relative;
}

.top-recruit-image .image-item01 {
	width: 100%;
	position: relative;
	z-index: 2;
}

.top-recruit-image .image-item01 .image {
	width: 100%;
	-webkit-mask-image: url(../img/top/recruit_mark01.svg);
	mask-image: url(../img/top/recruit_mark01.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.top-recruit-image .image-item01 .deco {
	width: 31.685rem;
	position: absolute;
	left: -2.9rem;
	bottom: -1.534rem;
	z-index: 1;
}

.top-recruit-image .image-item02 {
	width: 30.937rem;
	position: absolute;
	z-index: 2;
	right: 4.34rem;
	top: -1.812rem;
}

.top-recruit-image .image-item02 .image {
	width: 100%;
	-webkit-mask-image: url(../img/top/recruit_mark02.svg);
	mask-image: url(../img/top/recruit_mark02.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 3;
}

.top-recruit-image .image-item02 .line {
	width: 31.85rem;
	position: absolute;
	left: -.4565rem;
	top: -.4565rem;
	z-index: 2;
}

.top-recruit-image .image-item02 .deco {
	width: 23.044rem;
	position: absolute;
	left: -.923rem;
	top: -1.938rem;
	z-index: 1;
}


.top-recruit-box {
	width: calc(100% - 62.1rem);
}

.top-recruit-box p {
	font-size: 1.8rem;
	line-height: 2;
	font-weight: bold;
	letter-spacing: 3%;
	word-break: keep-all;
	white-space: nowrap;
}

.top-recruit-box p + p {
	margin-top: 2.4rem;
}

.top-recruit-heading {
	position: relative;
	margin-bottom: 6.7rem;
	width: 100%;
	max-width: 36rem;
}

.top-recruit-heading h2 {
	width: 100%;
	font-size: 4.6rem;
	line-height: 1;
	padding-bottom: 2rem;
	letter-spacing: 3%;
	font-weight: bold;
	background: linear-gradient(#fff,#fff) left bottom no-repeat;
	background-size: 100% .3rem;
	position: relative;
	z-index: 1;
}

.top-recruit-heading .illust {
	width: 9.758rem;
	position: absolute;
	left: unset;
	right: -4.358rem;
	bottom: -1.8rem;
	z-index: 1;
}

.top-recruit-title {
	font-size: 2.6rem;
	line-height: 1.4;
	letter-spacing: 3%;
	font-weight: bold;
	margin-bottom: 2.4rem;
}

.top-recruit-button {
	margin-top: 6.2rem;
}

.top-mainimg {
	width: 100%;
	aspect-ratio: 32 / 25;
	position: relative;
	z-index: 2;
}

.top-mainimg img {
	width: 100%;
}

.top-mainimg__row01 {
	width: 100%;
}

.top-mainimg__row02--cell01 {
	width: 21.875%;
	position: absolute;
	left: 9.375%;
	top: 18.6%;
	z-index: 2;
}

.top-mainimg__row02--cell02 {
	width: 35.15625%;
	position: absolute;
	left: 32.8125%;
	top: 17.5%;
	z-index: 2;
}

.top-mainimg__row02--cell03 {
	width: 20.3125%;
	position: absolute;
	right: 14.484375%;
	top: 18.46%;
	z-index: 2;
}

.top-mainimg__row03--cell01 {
	width: 17.76875%;
	position: absolute;
	left: 6.40625%;
	top: 43.8%;
	z-index: 2;
}

.top-mainimg__row03--cell02 {
	width: 39.26953125%;
	position: absolute;
	left: 30.703125%;
	top: 41.8%;
	z-index: 2;
}

.top-mainimg__row03--cell03 {
	width: 23.54921875%;
	position: absolute;
	right: 2.60703125%;
	top: 38.3%;
	z-index: 2;
}

.top-mainimg__row04--cell01 {
	width: 22.109375%;
	position: absolute;
	left: 22.578125%;
	top: 63%;
	z-index: 2;
}

.top-mainimg__row04--cell02 {
	width: 26.171875%;
	position: absolute;
	right: 1.5625%;
	top: 64.323%;
	z-index: 2;
}

.top-mainimg__row05--cell01 {
	width: 36.546875%;
	position: absolute;
	left: 2.875%;
	bottom: 1.378%;
	z-index: 2;
}

.top-mainimg__row05--cell02 {
	width: 51.3984375%;
	position: absolute;
	right: 7.2109375%;
	bottom: 0;
	z-index: 2;
}

.top-mainimg__row05--cell03 {
	width: 23.828125%;
	position: absolute;
	right: 7.2109375%;
	bottom: 0;
	z-index: 2;
}

.top-mainimg__row05--cell03 > a {
	display: block;
	width: 100%;
	aspect-ratio: 611 / 372;
}

.top-mainimg .popup-facility {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	z-index: 2;
	height: auto;
	width: fit-content;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .1s, visibility .1s;
}

.top-mainimg .is-active .popup-facility {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.top-mainimg .popup-facility .popup-overlay {
	display: none;
}

.top-mainimg .popup-facility .facility-item {
	width: 59.2rem;
	background: #fff;
	padding: 1.5rem 1.8rem;
	border-radius: 2rem;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 2.4rem;
	height: auto;
	transition: transform .4s;
}

.top-mainimg .popup-facility .facility-item:after {
	display: none;
}

.top-mainimg .popup-facility .facility-item .image {
	width: 27.4rem;
	aspect-ratio: 274 / 213;
	border-radius: .8rem;
	overflow: hidden;
}

.top-mainimg .popup-facility .facility-item .image img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s;
}

.top-mainimg .popup-facility .facility-item .box {
	width: calc(100% - 29.8rem);
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	column-gap: .6rem;
	row-gap: .6rem;
}

/* 複数タグでも本文を押し下げすぎないよう、タグをコンパクトにして折り返す */
.top-mainimg .popup-facility .facility-item .cate {
	position: static;
	transform: unset;
	font-size: 1.3rem;
	line-height: 1.25;
	padding: .8rem 1rem;
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	white-space: nowrap;
}

.top-mainimg .popup-facility .facility-item .catch {
	flex: 0 0 100%;
	margin-top: .4rem;
	font-size: 1.7rem;
	line-height: 1.75;
	word-break: keep-all;
	overflow-wrap: anywhere;
}

.top-mainimg .popup-facility .facility-item .title {
	flex: 0 0 100%;
	margin-top: 0;
	font-size: 2.4rem;
	line-height: 1.45;
	padding: 0;
	word-break: keep-all;
	overflow-wrap: anywhere;
}

.js-facility.is-active {
	z-index: 11 !important;
}

/* TOP施設マップ：JSが動作しない場合でも、＋にフォーカスが入ればポップアップを表示 */
.top-mainimg .js-facility:focus-within {
	z-index: 11 !important;
}

.top-mainimg .js-facility:focus-within .popup-facility {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.top-mainimg a[data-popup] img {
	transition: transform .3s;
}

.top-mainimg .top-mainimg__marks {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 3;
	width: 100%;
	height: 100%;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark {
	position: absolute;
	width: 5%;
	z-index: 2;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark > a {
	width: 100%;
	aspect-ratio: 1 / 1;
	background: #fff;
	border-radius: 100%;
	box-shadow: 0 .3rem 1.3rem 0 rgba(0, 0, 0, 0.08);
	position: relative;
	display: block;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark > a:before,
.top-mainimg .top-mainimg__marks .top-mainimg__mark > a:after {
	width: 2.4rem;
	height: .3rem;
	border-radius: .15rem;
	background: #333333;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	z-index: 2;
	content: '';
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark > a:after {
	transform: translate(-50%,-50%) rotate(90deg);
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark01 {
	left: 2.1875%;
	top: 24.2%;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark02 {
	left: 48.828125%;
	top: 30.1%;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark03 {
	right: 7.96875%;
	top: 25.2%;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark04 {
	left: 15.078125%;
	top: 58.5%;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark05 {
	right: 19.6875%;
	top: 35.7%;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark06 {
	left: 19.53125%;
	bottom: 23.1%;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark07 {
	right: 10.9375%;
	bottom: 33.4%;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark08 {
	left: 12.265625%;
	bottom: 4.5%;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark09 {
	right: 43%;
	bottom: 20%;
}

.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark10 {
	right: 12.8125%;
	bottom: -.5%;
}


@media screen and (min-width: 960px) {
	/*.top-mainimg a[data-popup]:hover img,
	.top-mainimg a[data-popup]:focus-visible img {
		transform: scale(1.03) translateY(-.2rem);
	}*/
}

@media screen and (min-width: 768px) {
  .top-mainimg .mark01 .popup-facility {
    left: 0;
    transform: translate(0,-50%);
  }

  .top-mainimg .mark03 .popup-facility {
    left: unset;
    right: 0;
    transform: translate(10%,-50%);
  }

  .top-mainimg .mark04 .popup-facility {
    left: 0;
    transform: translate(-30%,-50%);
  }

  .top-mainimg .mark05 .popup-facility {
    left: 0;
    transform: translate(-50%,-50%);
  }

  .top-mainimg .mark06 .popup-facility {
    left: 0;
    transform: translate(-30%,-50%);
  }

  .top-mainimg .mark07 .popup-facility {
    left: unset;
    right: 0;
    transform: translate(20%,-50%);
  }

  .top-mainimg .mark08 .popup-facility {
    left: 0;
    transform: translate(-20%, -50%);
  }

  .top-mainimg .mark10 .popup-facility {
    right: 0;
    left: unset;
    transform: translate(20%, -50%);
  }

  .top-mainimg .mark01 .facility-item,
  .top-mainimg .mark04 .facility-item,
  .top-mainimg .mark08 .facility-item {
    transform: translateX(-4rem);
  }

  .top-mainimg .mark03 .facility-item,
  .top-mainimg .mark05 .facility-item,
  .top-mainimg .mark07 .facility-item,
  .top-mainimg .mark10 .facility-item {
    transform: translateX(4rem);
  }

  .top-mainimg .mark02 .facility-item,
  .top-mainimg .mark06 .facility-item,
  .top-mainimg .mark09 .facility-item {
    transform: translateY(4rem);
  }

  .top-mainimg .mark01.is-active .facility-item,
  .top-mainimg .mark04.is-active .facility-item,
  .top-mainimg .mark08.is-active .facility-item,
  .top-mainimg .mark03.is-active .facility-item,
  .top-mainimg .mark05.is-active .facility-item,
  .top-mainimg .mark07.is-active .facility-item,
  .top-mainimg .mark10.is-active .facility-item {
    transform: translateX(0);
  }

  .top-mainimg .mark02.is-active .facility-item,
  .top-mainimg .mark06.is-active .facility-item,
  .top-mainimg .mark09.is-active .facility-item {
    transform: translateY(0);
  }
}

/*** sp ***/
@media screen and (max-width: 767px) {
	.top-about {
		padding: 5rem 0 21.1rem;
	}

	.top-about .inner {
		padding: 0 2rem;
	}

	.top-about__inner {
		display: block;
	}

	.top-about__inner .illust {
		width: 4.587rem;
		right: 2rem;
		bottom: -9.921rem;
	}

	.top-about .top-about-image {
		width: 100%;
		margin-bottom: 10.1rem;
	}

	.top-about .top-about-image .illust {
		width: 27.481rem;
		left: 1.421rem;
		bottom: -4.59rem;
	}

	.top-about .top-about-image .deco01 {
		width: 16rem;
		left: 1.421rem;
		top: -.864rem;
	}

	.top-about .top-about-image .deco02 {
		width: 19.781rem;
		right: 2.3rem;
		bottom: -.335rem;
	}

	.top-about .top-about-box {
		font-size: 1.4rem;
		width: 100%;
	}

	.top-about .top-about-box p + p {
		margin-top: 2rem;
	}

	.top-vision {
		background: #C1D8A5;
		padding: 2.4rem 0 3.4rem;
		position: relative;
	}

	.top-vision:before,
	.top-vision:after {
		width: 100%;
		height: 6.1rem;
		background: url(../img/top/bg_vision_sp.png) center center no-repeat;
		background-size: 100% 100%;
		position: absolute;
		left: 0;
		z-index: 2;
		content: '';
	}

	.top-vision:before {
		top: 0;
		transform: translateY(-100%);
	}

	.top-vision:after {
		bottom: 0;
		transform: translateY(100%) scaleY(-1);
	}

	.top-vision .inner {
		padding: 0 2rem;
	}

	.top-vision img {
		width: 100%;
	}

	.top-vision__top {
		width: 100%;
		flex-direction: column;
		padding-right: 0;
		margin-bottom: 15.6rem;
	}

	.top-vision .top-vision-image {
		width: 100%;
	}

	.top-vision .top-vision-image .deco {
		width: 23.2rem;
		right: -.5rem;
		bottom: -8.6rem;
	}

	.top-vision .top-vision-title {
		margin-bottom: .744rem;
		font-size: 3.126rem;
	}

	.top-vision .box {
		padding: 3.787rem 1.563rem 3.852rem 3.051rem;
		font-size: 1.34rem;
	}

	.top-vision .top-vision-image .box {
		left: -.444rem;
		bottom: -11.6rem;
	}

	.top-vision .top-vision-box {
		width: fit-content;
	}

	.top-vision .top-vision-heading {
		margin-bottom: 5.41rem;
		font-size: 3.2rem;
		line-height: 1.49;
	}

	.top-vision .top-vision-heading span {
		font-size: 1.8rem;
		line-height: 1;
		margin-bottom: 1.9rem;
	}

	.top-vision__bottom {
		flex-direction: column;
		margin-top: 0;
		position: static;
	}

	.top-vision__bottom .illust {
		width: 20.89rem;
		left: unset;
		right: 2rem;
		bottom: unset;
		top: calc(100% + 3.4rem);
		z-index: 3;
	}

	.top-vision .top-vision-left {
		width: 100%
	}

	.top-vision .top-vision-left .deco {
		width: 12.817rem;
		left: .115rem;
		top: .287rem;
	}

	.top-vision .top-vision-left .box {
		left: unset;
		right: .431rem;
		bottom: -9.759rem;
	}


	.top-vision .top-vision-right {
		width: 100%;
		margin-top: 13.776rem;
		padding-left: 3.426rem;
	}

	.top-vision .top-vision-right .deco {
		width: 20.522rem;
		left: 0;
		top: 7.355rem;
	}

	.top-vision .top-vision-right .box {
		left: 3rem;
		bottom: -9.181rem;
		right: unset;
	}

	.top-vision .top-vision-button {
		text-align: center;
		margin-top: 13.2rem;
	}

	.top-news {
		padding: 11.1rem 0 5rem;
	}

	.top-news .inner {
		padding: 0 2rem;
	}

	.top-news .top-news__head {
		margin-bottom: 4.4rem;
	}

	.top-heading {
		font-size: 3.2rem;
		line-height: 1;
	}

	.top-heading .sub {
		margin-top: 2rem;
		font-size: 1.4rem;
		line-height: 2;
	}

	.top-news__body .news-item {
		width: 25rem;
	}

	.top-news__body .news-item .image {
		aspect-ratio: 25 / 16;
	}

	.top-news__body .news-item .title {
		font-size: 1.4rem;
		line-height: 1.714;
	}

	.top-news__body .swiper-controller {
		margin-top: 2.8rem;
		padding: 0;
	}

	.top-news__body .swiper-controller .swiper-button-prev,
	.top-news__body .swiper-controller .swiper-button-next {
		width: 2.7rem;
		height: 2.7rem;
	}

	.top-news__body .swiper-controller .swiper-button-next {
		margin-left: 1rem;
	}

	.top-news__body .swiper-controller .swiper-button-prev:before,
	.top-news__body .swiper-controller .swiper-button-next:before {
		width: .54rem;
		height: .925rem;
	}

	.top-news__body .swiper-controller .swiper-scrollbar {
		margin-left: 1.6rem;
		height: .466rem;
		border-radius: .233rem;
	}

	.top-news__body .swiper-controller .swiper-scrollbar .swiper-scrollbar-drag {
		border-radius: .233rem;
	}

	.top-facility {
		padding: 8.365rem 0 5rem;
	}

	.top-facility .top-facility__head {
		margin-bottom: 3rem;
	}

	.top-facility .top-facility-list {
		width: 100%;
		max-width: 28rem;
		margin: 0 auto;
		grid-template-columns: repeat(1, 1fr);
		gap: 3rem;
	}

	.facility-item {
		border-radius: 1.1rem;
		padding: 1.85rem;
	}

	.facility-item:after {
		right: 1.829rem;
		bottom: 1.857rem;
		width: 2.649rem;
		height: 2.649rem;
	}

	.facility-item .image {
		aspect-ratio: 121 / 90;
	}

	.facility-item .cate {
		font-size: 1.1rem;
		padding: .837rem;
		border-radius: 2.5rem;
	}

	.facility-item .catch {
		margin-top: 2.466rem;
		font-size: 1.4rem;
	}

	.facility-item .title {
		font-size: 1.8rem;
		padding-right: 8.5rem;
	}

	.top-recruit {
		padding-bottom: 5rem;
	}

	.top-recruit .inner {
		padding: 0 2rem;
	}

	.top-recruit__inner {
		border-radius: 1rem;
		padding: 5rem 2rem;
		display: block;
		overflow: hidden;
	}

	.top-recruit-image {
		width: 42.228rem;
		padding-top: 0;
		left: 50%;
		transform: translateX(-50%);
		margin-left: 1.036rem;
		margin-bottom: 3.5rem;
	}

	.top-recruit-image .image-item01 .deco {
		width: 21.546rem;
		left: -1.972rem;
		bottom: -1.045rem;
	}

	.top-recruit-image .image-item02 {
		width: 21.037rem;
		right: 2.951rem;
		top: -3.245rem;
	}

	.top-recruit-image .image-item02 .line {
		width: 21.94rem;
		left: -.45rem;
		top: -.45rem;
	}

	.top-recruit-image .image-item02 .deco {
		width: 15.67rem;
		left: -.628rem;
		top: -1.32rem;
	}


	.top-recruit-box {
		width: 100%;
	}

	.top-recruit-box p {
		font-size: 1.6rem;
		word-break: break-all;
		white-space: normal;
	}

	.top-recruit-box p + p {
		margin-top: 1.8rem;
	}

	.top-recruit-heading {
		margin: 0 auto;
		margin-bottom: 6.4rem;
		max-width: 20.827rem;
		padding-right: 2.727rem;
	}

	.top-recruit-heading h2 {
		font-size: 3.2rem;
	}

	.top-recruit-heading .illust {
		width: 5.406rem;
		right: 0;
		bottom: -.704rem;
	}

	.top-recruit-title {
		margin-bottom: 1.8rem;
	}

	.top-recruit-button {
		margin-top: 2.3rem;
		text-align: center;
	}

	.top-mainimg {
		width: 100%;
		aspect-ratio: 1 / 1;
		overflow: visible;
	}

	.top-mainimg__row02--cell01 {
		width: 21.84%;
		left: 9.4%;
		top: 14.56%;
	}

	.top-mainimg__row02--cell02 {
		width: 34.3%;
		left: 33%;
		top: 13.73%;
	}

	.top-mainimg__row02--cell03 {
		width: 20.39%;
		right: 14.3%;
		top: 14.46%;
	}

	.top-mainimg__row03--cell01 {
		width: 17.8%;
		left: 2.5%;
		top: 35.35%;
	}

	.top-mainimg__row03--cell02 {
		width: 39.35%;
		left: 30.628%;
		top: 36.89%;
	}

	.top-mainimg__row03--cell03 {
		width: 23.598%;
		right: 2.5%;
		top: 36.38%;
	}

	.top-mainimg__row04--cell01 {
		width: 22.15776%;
		left: 19%;
		top: 48%;
	}

	.top-mainimg__row04--cell02 {
		width: 36.42%;
		right: 7.6%;
		top: 61%;
	}

	.top-mainimg__row05--cell01 {
		width: 36.6234%;
		left: 5.1%;
		bottom: 20.8346%;
	}

	.top-mainimg__row05--cell02 {
		width: 67.837%;
		right: 7.226463%;
		bottom: 0;
	}

	.top-mainimg__row05--cell03 {
		width: 31.45%;
		right: 7.226463%;
		bottom: 0;
	}

	.top-mainimg .popup-facility {
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
		height: 100dvh;
		transform: unset;
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 2;
	}

	.top-mainimg .popup-facility .popup-overlay {
		display: block;
		position: absolute;
		left: 0;
		top: 0;
		z-index: 1;
		width: 100%;
		height: 100%;
		background: #000;
		opacity: .5;
	}

	.top-mainimg .popup-facility .facility-item {
		width: calc(100% - 4rem);
		border-radius: 1.1rem;
		padding: 1.85rem;
		flex-direction: column;
		position: relative;
		z-index: 2;
	}

	.top-mainimg .popup-facility .facility-item .image {
		width: 100%;
		aspect-ratio: 121 / 90;
	}

	.top-mainimg .popup-facility .facility-item .box {
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		align-content: flex-start;
		column-gap: .5rem;
		row-gap: .5rem;
	}

	.top-mainimg .popup-facility .facility-item .cate {
		position: static;
		transform: unset;
		font-size: 1.15rem;
		line-height: 1.25;
		padding: .7rem .9rem;
		display: inline-flex;
		align-items: center;
		max-width: 100%;
		white-space: nowrap;
	}

	.top-mainimg .popup-facility .facility-item .catch {
		flex: 0 0 100%;
		margin-top: .3rem;
		font-size: 1.5rem;
		line-height: 1.7;
		word-break: keep-all;
		overflow-wrap: anywhere;
	}

	.top-mainimg .popup-facility .facility-item .title {
		flex: 0 0 100%;
		margin-top: 0;
		font-size: 2.1rem;
		line-height: 1.45;
		padding: 0;
		word-break: keep-all;
		overflow-wrap: anywhere;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark > a:before,
	.top-mainimg .top-mainimg__marks .top-mainimg__mark > a:after {
		width: 1rem;
		height: .1rem;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark01 {
		top: 20%;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark02 {
		top: 23%;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark03 {
		top: 20%;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark04 {
		left: 11%;
        top: 47%;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark05 {
		top: 34%;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark06 {
		left: 17%;
        bottom: 41%;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark07 {
		right: 21%;
        bottom: 37%;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark08 {
		left: 15%;
        bottom: 23%;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark09 {
		right: 53%;
	}

	.top-mainimg .top-mainimg__marks .top-mainimg__mark.mark10 {
		right: 16%;
        bottom: 0;
	}
}


/* 宗友福祉会について */

.philosophy-vision {
	padding-bottom: 8.3rem;
}

.philosophy-vision-title {
	font-size: 2.4rem;
	line-height: 1.9;
	letter-spacing: 3%;
	font-weight: bold;
	margin-bottom: 3.6rem;
}

.philosophy-vision__inner {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 5rem;
}

.philosophy-vision-box {
	width: calc(100% - 55rem);
	font-size: 1.6rem;
	line-height: 2.3;
	font-weight: bold;
	letter-spacing: 3%;
}

.philosophy-vision-image {
	width: 100%;
	max-width: 50rem;
}

.philosophy-vision-image img {
	width: 100%;
}

.philosophy-mission {
	padding: 18.2rem 0 10.6rem;
	background: url(../img/about/bg_mission.png) center top no-repeat;
	background-size: 100% auto;
}

.philosophy-mission__inner {
	width: 100%;
	max-width: 97.6rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	position: relative;
	margin-top: 12rem;
}

.philosophy-mission-item {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 48rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	text-align: center;
	align-items: center;
	padding-top: 5.2rem;
}

.philosophy-mission-item:before {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: -1;
	width: calc(100% + 6.6rem);
	aspect-ratio: 1 / 1;
	border-radius: 100%;
	content: '';
}

.philosophy-mission-item .number {
	width: 8rem;
	height: 8rem;
	border-radius: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1px;
	line-height: 1;
	margin-bottom: 3.3rem;
}

.philosophy-mission-item .number img {
	width: auto;
	max-width: unset;
	height: 2.7rem;
}

.philosophy-mission-item .title {
	font-size: 3rem;
	line-height: 1.5;
	color: #5A9600;
	font-weight: bold;
	margin-bottom: 2rem;
}

.philosophy-mission-item .text {
	font-size: 1.6rem;
	line-height: 1.6;
	font-weight: bold;
}

.philosophy-mission-item:nth-child(4n+1),
.philosophy-mission-item:nth-child(4n) {
	z-index: 3;
}

.philosophy-mission-item:nth-child(4n+1) .number,
.philosophy-mission-item:nth-child(4n) .number {
	background: #1EB1B2;
}

.philosophy-mission-item:nth-child(4n+2) .number,
.philosophy-mission-item:nth-child(4n+3) .number {
	background: #5A9600;
}

.philosophy-mission-item:nth-child(4n+1):before,
.philosophy-mission-item:nth-child(4n):before {
	background: rgba(255, 255, 255, .7);
}

.philosophy-mission-item:nth-child(4n+2):before,
.philosophy-mission-item:nth-child(4n+3):before {
	background: #E6EAA9;
}

.philosophy-mission__inner .deco01 img,
.philosophy-mission__inner .deco02 img,
.philosophy-mission__inner .illust img {
	width: 100%;
}

.philosophy-mission__inner .deco01 {
	width: 35.616rem;
	position: absolute;
	right: -7.439rem;
	top: -6.071rem;
	z-index: 1;
}

.philosophy-mission__inner .deco02 {
	width: 18.329rem;
	position: absolute;
	left: -6.948rem;
	bottom: -1.431rem;
	z-index: 1;
}

.philosophy-mission__inner .illust {
	width: 29.694rem;
	position: absolute;
	right: -10.137rem;
	bottom: -4.5rem;
	z-index: 3;
}

.philosophy-value {
	padding: 11.4rem 0 17.5rem;
	background: #A0D269;
	position: relative;
	z-index: 2;
}

.philosophy-value:before,
.philosophy-value:after {
	width: 100%;
	height: 11.4rem;
	content: '';
	position: absolute;
	left: 0;
	content: '';
	background: url(../img/about/bg_value.png) center center no-repeat;
	background-size: 100% 100%;
}

.philosophy-value:before {
	background-color: #C1D8A5;
	top: 0;
}

.philosophy-value:after {
	background-color: #E7F0DC;
	bottom: 0;
	transform: scaleY(-1);
}

.philosophy-value-list {
	width: 100%;
	max-width: 97rem;
	aspect-ratio: 194 / 181;
	margin: 0 auto;
	position: relative;
}

.philosophy-value-list .philosophy-value-item {
	position: absolute;
	width: 38.6rem;
	aspect-ratio: 1 / 1;
	border-radius: 100%;
	background: rgba(255, 255, 255, .8);
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	padding-top: 6.2rem;
	text-align: center;
}

.philosophy-value-list .philosophy-value-item:nth-child(1) {
	top: 0;
	left: 50%;
	margin-left: -19.3rem;
}

.philosophy-value-list .philosophy-value-item:nth-child(2),
.philosophy-value-list .philosophy-value-item:nth-child(5) {
	top: 19.8rem;
}

.philosophy-value-list .philosophy-value-item:nth-child(2) {
	right: 0;
}

.philosophy-value-list .philosophy-value-item:nth-child(5) {
	left: 0;
}

.philosophy-value-list .philosophy-value-item:nth-child(3),
.philosophy-value-list .philosophy-value-item:nth-child(4) {
	bottom: 0;
}

.philosophy-value-list .philosophy-value-item:nth-child(3) {
	left: 50%;
	margin-left: -1.6rem;
}

.philosophy-value-list .philosophy-value-item:nth-child(4) {
	left: 50%;
	margin-left: -37rem;
}

.philosophy-value-list .philosophy-value-item .number {
	font-size: 1px;
	line-height: 1;
	margin-bottom: 3.8rem;
}

.philosophy-value-list .philosophy-value-item .number img {
	width: auto;
	max-width: unset;
	height: 3.814rem;
}

.philosophy-value-list .philosophy-value-item .title {
	font-size: 3rem;
	line-height: 1.2;
	font-weight: bold;
	color: #FFA986;
	margin-bottom: 2rem;
	letter-spacing: 10%;
}

.philosophy-value-list .philosophy-value-item .text {
	font-size: 1.6rem;
	line-height: 1.5;
	font-weight: bold;
	letter-spacing: 3%;
}

.philosophy-value-list .illust01 img,
.philosophy-value-list .illust02 img {
	width: 100%;
}

.philosophy-value-list .illust01 {
	width: 27rem;
	position: absolute;
	left: -1.234rem;
	top: 1.6rem;
	z-index: 2;
}

.philosophy-value-list .illust02 {
	width: 32.5rem;
	position: absolute;
	right: -7.8rem;
	bottom: -6.139rem;
	z-index: 2;
}

.philosophy-greetings {
	padding: 8.2rem 0 6rem;
}

.philosophy-greetings-list {
	display: flex;
	flex-direction: column;
	gap: 6.4rem;
}

.philosophy-greetings-item {
	width: 100%;
	background: #fff;
	border-radius: 4rem;
	padding: 6rem 10.5rem 8.8rem;
}

.philosophy-greetings-head {
	margin-bottom: 4rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 3rem;
}

.philosophy-greetings-list .philosophy-greetings-item:nth-child(even) .philosophy-greetings-head {
	flex-direction: row-reverse;
}

.philosophy-greetings-box {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 2.6rem;
	width: calc(100% - 48.4rem);
}

.philosophy-greetings-title {
	font-size: 2.8rem;
	line-height: 1.76;
	font-weight: bold;
	color: #5A9600;
	word-break: break-all;
	white-space: nowrap;
}

.philosophy-greetings-post {
	font-size: 1.6rem;
	line-height: 1.875;
	font-weight: bold;
	color: #fff;
	padding: .6rem 2.4rem;
	background: #5A9600;
	border-radius: 2.1rem;
	letter-spacing: 17%;
}

.philosophy-greetings-name {
	font-size: 3.2rem;
	line-height: 1;
	font-weight: bold;
	letter-spacing: 3%;
}

.philosophy-greetings-image {
	width: 45.4rem;
}

.philosophy-greetings-image .image {
	width: 100%;
	aspect-ratio: 454 / 283;
	-webkit-mask-image: url(../img/about/greetings_mask.svg);
	mask-image: url(../img/about/greetings_mask.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.philosophy-greetings-image .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


.philosophy-greetings-body {
	font-size: 1.6rem;
	line-height: 2.1;
	letter-spacing: 3%;
	font-weight: 500;
}

.philosophy-company {
	padding: 6rem 0;
}

.philosophy-company .heading-large {
	margin-bottom: 6.4rem;
}

.philosophy-box {
	width: 100%;
	background: #fff;
	border-radius: 4rem;
	padding: 10rem;
}

.dl-list dl {
	display: flex;
}

.dl-list dl dt {
	width: 11.3rem;
	min-width: 11.3rem;
	font-size: 1.8rem;
	line-height: 1.6;
	font-weight: 500;
	letter-spacing: 3%;
	position: relative;
	padding: 3rem 0;
	border-bottom: .1rem solid #4D9762;
}

.philosophy-company .dl-list dl dt {
	width: 13.5rem;
	min-width: 13.5rem;
}

.dl-list dl dd {
	padding: 3rem;
	flex-grow: 1;
	font-size: 1.6rem;
	line-height: 1.8;
	font-weight: 500;
	letter-spacing: 3%;
	border-bottom: .1rem solid #C8C8C8;
}

.dl-list dl dd a[target=_blank] {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
}

.dl-list dl dd a[target=_blank]:after {
	width: 1.4rem;
	height: 1.4rem;
	content: '';
	background: url(../img/common/icon_blank.svg) center center no-repeat;
	background-size: 100% auto;
}

/* 法人概要：PDFリンクに情報公開ページと同じPDFラベルを表示 */
.philosophy-company .dl-list dl dd a[href*=".pdf" i]::before {
	display: inline-block;
	padding: 0.2rem 1rem;
	background: #4D9762;
	border-radius: 5rem;
	color: #fff;
	font-size: 1.8rem;
	line-height: 1.6;
	content: 'PDF';
	flex-shrink: 0;
}

.dl-list dl:first-child dt {
	border-top: .1rem solid #4D9762;
}

.dl-list dl:first-child dd {
	border-top: .1rem solid #C8C8C8;
}

.philosophy-history {
	padding: 6rem 0;
}

.philosophy-history .heading-large {
	margin-bottom: 6.4rem;
}

.philosophy-history .dl-list dl dt {
	font-size: 2.4rem;
	line-height: 1.2;
	color: #4D9762;
	letter-spacing: 0;
}

/*** sp ***/
@media screen and (max-width: 767px) {
	.philosophy-vision {
		padding-bottom: 4.2rem;
	}

	.philosophy-vision-title {
		font-size: 1.6rem;
		margin-bottom: 2.4rem;
	}

	.philosophy-vision__inner {
		width: 100%;
		display: block;
	}

	.philosophy-vision-box {
		width: 100%;
		font-size: 1.4rem;
		line-height: 2;
	}

	.philosophy-vision-image {
		margin: 0 auto;
		margin-top: 2rem;
	}

	.philosophy-mission {
		padding: 9rem 0 11rem;
		position: relative;
		z-index: 1;
	}

	.philosophy-mission:after {
		width: 100%;
		height: calc(100% - 10rem);
		position: absolute;
		left: 0;
		bottom: 0;
		z-index: -1;
		content: '';
		background: #C1D8A5;
	}

	.philosophy-mission__inner {
		grid-template-columns: repeat(1, 1fr);
		gap: 2rem;
		max-width: 33.5rem;
		margin: 0 auto;
		margin-top: 3rem;
	}

	.philosophy-mission-item {
		position: relative;
		z-index: 2;
		width: 100%;
		height: auto;
		aspect-ratio: 1 / 1;
		justify-content: center;
		padding-top: 0;
	}

	.philosophy-mission-item:before {
		width: 100%;
	}

	.philosophy-mission-item .number {
		width: 4rem;
		height: 4rem;
		margin-bottom: 1rem;
	}

	.philosophy-mission-item .number img {
		height: 1.35rem;
	}

	.philosophy-mission-item .title {
		font-size: 2rem;
		margin-bottom: 1rem;
	}

	.philosophy-mission-item .text {
		font-size: 1.4rem;
	}

	.philosophy-mission-item:nth-child(4n+1) .number,
	.philosophy-mission-item:nth-child(4n+3) .number {
		background: #1EB1B2;
	}

	.philosophy-mission-item:nth-child(4n+2) .number,
	.philosophy-mission-item:nth-child(4n) .number {
		background: #5A9600;
	}

	.philosophy-mission-item:nth-child(4n+1):before,
	.philosophy-mission-item:nth-child(4n+3):before {
		background: rgba(255, 255, 255, .7);
	}

	.philosophy-mission-item:nth-child(4n+2):before,
	.philosophy-mission-item:nth-child(4n):before {
		background: #E6EAA9;
	}

	.philosophy-mission__inner .deco01 {
		width: 17.808rem;
		right: -4rem;
		top: -1.9rem;
	}

	.philosophy-mission__inner .deco02 {
		width: 9.16rem;
		left: 0;
		bottom: 25%;
	}

	.philosophy-mission__inner .illust {
		width: 20rem;
		right: 0;
		bottom: -8rem;
	}

	.philosophy-value {
		padding: 5.7rem 0 8.75rem;
	}

	.philosophy-value:before,
	.philosophy-value:after {
		height: 5.7rem;
	}

	.philosophy-value-list {
		aspect-ratio: unset;
		display: flex;
		flex-direction: column;
		gap: 2rem;
		max-width: 33.5rem;
		margin: 0 auto;
		margin-top: 5rem;
	}

	.philosophy-value-list .philosophy-value-item {
		position: static;
		width: 100%;
		justify-content: center;
		padding-top: 0;
	}

	.philosophy-value-list .philosophy-value-item:nth-child(1),
	.philosophy-value-list .philosophy-value-item:nth-child(3),
	.philosophy-value-list .philosophy-value-item:nth-child(4) {
		margin-left: 0;
	}

	.philosophy-value-list .philosophy-value-item .number {
		margin-bottom: 2rem;
	}

	.philosophy-value-list .philosophy-value-item .number img {
		height: 1.9rem;
	}

	.philosophy-value-list .philosophy-value-item .title {
		font-size: 2rem;
		margin-bottom: 1rem;
	}

	.philosophy-value-list .philosophy-value-item .text {
		font-size: 1.4rem;
	}

	.philosophy-value-list .illust01 {
		width: 20rem;
		left: -2rem;
		top: -2.6rem;
	}

	.philosophy-value-list .illust02 {
		width: 20rem;
		right: -2rem;
		bottom: -4rem;
	}

	.philosophy-greetings {
		padding: 4.1rem 0 3rem;
	}

	.philosophy-greetings-list {
		gap: 3.2rem;
	}

	.philosophy-greetings-item {
		border-radius: 2rem;
		padding: 3rem 2rem;
	}

	.philosophy-greetings-head {
		margin-bottom: 2rem;
		flex-direction: column;
		gap: 3rem;
	}

	.philosophy-greetings-list .philosophy-greetings-item:nth-child(even) .philosophy-greetings-head {
		flex-direction: column;
	}

	.philosophy-greetings-box {
		gap: 1.5rem;
		width: 100%;
	}

	.philosophy-greetings-title {
		font-size: 1.8rem;
		word-break: break-all;
		white-space: normal;
	}

	.philosophy-greetings-post {
		font-size: 1.2rem;
		padding: .3rem 1.2rem;
	}

	.philosophy-greetings-name {
		font-size: 2.2rem;
	}

	.philosophy-greetings-image {
		width: 100%;
	}

	.philosophy-greetings-body {
		font-size: 1.4rem;
	}

	.philosophy-company {
		padding: 3rem 0;
	}

	.philosophy-company .heading-large {
		margin-bottom: 3.2rem;
	}

	.philosophy-box {
		border-radius: 2rem;
		padding: 3rem 2rem;
	}

	.dl-list dl {
		display: block;
		padding: 1.5rem 0;
		border-bottom: .1rem solid #C8C8C8;
	}

	.dl-list dl:first-child {
		border-top: .1rem solid #C8C8C8;
	}

	.dl-list dl dt {
		width: 100%;
		min-width: 0;
		font-size: 1.6rem;
		padding: 0;
		border-bottom: 0;
	}

	.dl-list dl dd {
		padding: 0;
		font-size: 1.4rem;
		margin-top: 1rem;
		border-bottom: 0;
	}

	.dl-list dl:first-child dt,
	.dl-list dl:first-child dd {
		border-top: 0;
	}

	.philosophy-company .dl-list dl dd a[href*=".pdf" i]::before {
		font-size: 1.4rem;
	}

	.philosophy-history {
		padding: 3rem 0;
	}

	.philosophy-history .heading-large {
		margin-bottom: 3.2rem;
	}

	.philosophy-history .dl-list dl dt {
		font-size: 2rem;
	}
}

/* 施設情報 */
#facility #teaser,
.single-facility #teaser {
	background: #fff;
	margin-bottom: 0;
}

.facility-menu {
	width: 100%;
	background: #fff;
	padding: 9rem 0 13rem;
	position: relative;
}

.facility-menu:after {
	width: 100%;
	height: 7rem;
	content: '';
	background: url(../img/facility/bg_menu.png) center center no-repeat;
	background-size: 100% 100%;
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 2;
}



.facility-menu .facility-menu__inner {
	width: 100%;
	max-width: 93.5rem;
	margin: 0 auto;
}

.facility-menu .facility-menu-item + .facility-menu-item {
	padding-top: 4.5rem;
	margin-top: 4.5rem;
	border-top: .2rem solid #5A9600;
}

.facility-menu .facility-menu-title {
	margin-bottom: 2.6rem;
	display: flex;
	align-items: baseline;
	gap: 1.3rem;
}

.facility-menu .facility-menu-title .facility-menu-title__jp {
	font-size: 3.2rem;
	line-height: 1;
	letter-spacing: 3%;
	font-weight: bold;
}

.facility-menu .facility-menu-title .facility-menu-title__en {
	font-size: 1.1rem;
	letter-spacing: 3%;
	line-height: 1;
}

.facility-menu .facility-menu-list {
	display: grid;
	grid-template-columns: 30% auto 30%;
	gap: 1rem;
}

.facility-menu .facility-menu-list li {
	padding-left: 1.7rem;
}

.facility-menu .facility-menu-list li a {
	font-size: 2rem;
	line-height: 1.45;
	font-weight: bold;
	background: linear-gradient(#333, #333) left bottom .3rem no-repeat;
	background-size: 100% .05rem;
	position: relative;
	z-index: 2;
}

.facility-menu .facility-menu-list li a:before {
	width: .8rem;
	height: 1.1rem;
	background: url(../img/facility/icon_arrow.svg) center center no-repeat;
	background-size: 100% auto;
	content: '';
	position: absolute;
	left: -1.7rem;
	top: .92rem;
	z-index: 2;
	opacity: 0;
	transition: opacity .35s ease;
}

.facility-menu .facility-menu-list li a:after {
	width: 100%;
	background: #5A9600;
	content: '';
	position: absolute;
	z-index: -1;
	left: 0;
	top: .3rem;
	bottom: .3rem;
	opacity: 0;
	transition: opacity .35s ease;
}

.facility-menu .facility-menu-list li a.is-active {
	color: #fff;
	background-size: 0 .5rem;
}

.facility-menu .facility-menu-list li a.is-active:before,
.facility-menu .facility-menu-list li a.is-active:after {
	opacity: 1;
}

/*** hover ***/
@media screen and (min-width: 960px) {
	/* PCでは施設名を1行で表示できる幅を確保する */
	.facility-menu .facility-menu-list {
		grid-template-columns: repeat(3, minmax(max-content, 1fr));
	}

	/* 長い施設名でも hover 背景をリンク全体に合わせる */
	.facility-menu .facility-menu-list li a {
		display: inline-block;
		max-width: 100%;
		white-space: nowrap;
	}

	.facility-menu .facility-menu-list li a:hover,
	.facility-menu .facility-menu-list li a:focus-visible {
		color: #fff;
		background-size: 0 0;
	}

	.facility-menu .facility-menu-list li a:hover:before,
	.facility-menu .facility-menu-list li a:focus-visible:before,
	.facility-menu .facility-menu-list li a:hover:after,
	.facility-menu .facility-menu-list li a:focus-visible:after {
		opacity: 1;
	}
}

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

	.facility-menu {
		padding: 4.5rem 0 6.5rem;
	}

	.facility-menu:after {
		width: 100%;
		height: 3.5rem;
	}

	.facility-menu .facility-menu-item + .facility-menu-item {
		padding-top: 2.5rem;
		margin-top: 2.5rem;
		border-top: .1rem solid #5A9600;
	}

	.facility-menu .facility-menu-title {
		margin-bottom: 1.5rem;
		gap: .5rem;
	}

	.facility-menu .facility-menu-title .facility-menu-title__jp {
		font-size: 2rem;
	}

	.facility-menu .facility-menu-title .facility-menu-title__en {
		font-size: 1rem;
	}

	.facility-menu .facility-menu-list {
		grid-template-columns: repeat(1, 1fr);
		gap: 1rem;
	}

	.facility-menu .facility-menu-list li a {
		font-size: 1.6rem;
	}

	.facility-menu .facility-menu-list li a:before {
		top: .6rem;
	}

	.facility-menu .facility-menu-list li a:after {
		top: .2rem;
		bottom: .2rem;
	}
}

.facility-wrap {
	padding: 9rem 0;
}

.facility-mainimg {
	width: 100%;
	margin-bottom: 12.6rem;
	position: relative;
}

.facility-mainimg .image {
	width: 100%;
	aspect-ratio: 1057 / 634;
	-webkit-mask-image: url(../img/facility/mainimg_mask.svg);
	mask-image: url(../img/facility/mainimg_mask.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.facility-mainimg img {
	width: 100%;
}

.facility-mainimg .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.facility-mainimg .deco01 {
	width: 25.685rem;
	position: absolute;
	left: 1.1rem;
	top: 0;
	z-index: 1;
}

.facility-mainimg .deco02 {
	width: 17.053rem;
	position: absolute;
	right: -.174rem;
	top: -1.649rem;
	z-index: 3;
}

.facility-mainimg .deco03 {
	width: 35.9rem;
	position: absolute;
	right: -.892rem;
	bottom: -2.389rem;
	z-index: 1;
}

.facility-gallery {
	margin-bottom: 10rem;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 4.5rem;
}

.facility-gallery .facility-gallery__image {
	width: 54rem;
	padding-bottom: 2.6rem;
	position: relative;
}

.facility-gallery .facility-gallery__image .swiper-slide {
	align-items: 270 / 177;
	border-radius: 3rem;
	overflow: hidden;
	 -webkit-transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, transform !important;
    transition-property: opacity, transform, -webkit-transform !important;
    pointer-events: none;
}

.facility-gallery .facility-gallery__image .swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.facility-gallery .facility-gallery__image .swiper-pagination {
	bottom: 0;
	top: unset;
	line-height: 1;
	font-size: 1px;
}

.facility-gallery .facility-gallery__image .swiper-pagination .swiper-pagination-bullet {
	width: 1rem;
	height: 1rem;
	margin: 0 1rem;
	background: #C1C1C1;
	opacity: 1;
}

.facility-gallery .facility-gallery__image .swiper-pagination .swiper-pagination-bullet-active {
	background: #4D9762;
}

.facility-gallery .facility-gallery__box {
	width: 47.8rem;
	font-size: 1.6rem;
	line-height: 2.1;
	font-weight: 500;
}

.facility-gallery .facility-gallery__box h3 {
	font-size: 3rem;
	line-height: 1.75;
	font-weight: bold;
	margin-bottom: 2rem;
}


.facility-info {
	padding: 10.6rem 0 0;
}

.facility-info .facility-info__title {
	font-size: 4.4rem;
	font-weight: bold;
	line-height: 1.75;
	margin-bottom: 3.3rem;
	text-align: center;
}

.facility-info .facility-info__map {
	width: 100%;
	border-radius: 3rem;
	aspect-ratio: 173 / 80;
	overflow: hidden;
	margin-top: 4.7rem;
}

.facility-info .facility-info__map iframe {
	width: 100%;
	height: 100%;
}

.facility-voice {
	padding: 16rem 0;
	background: #A0D269;
	position: relative;
	z-index: 2;
}

.facility-voice:before,
.facility-voice:after {
	width: 100%;
	height: 11.4rem;
	content: '';
	position: absolute;
	left: 0;
	content: '';
	background: url(../img/about/bg_value.png) center center no-repeat #E7F0DC;
	background-size: 100% 100%;
}

.facility-voice:before {
	top: 0;
}

.facility-voice:after {
	bottom: 0;
	transform: scaleY(-1);
}

.facility-voice__item {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 5.2rem;
}

.facility-voice__item + .facility-voice__item {
	margin-top: 8.4rem;
}

.facility-voice__item:nth-child(even) {
	flex-direction: row-reverse;
}

.facility-voice-head {
	width: 40.562rem;
}

.facility-voice-image {
	width: 100%;
	position: relative;
}

.facility-voice-image .image {
	width: 100%;
	aspect-ratio: 406 / 253;
	-webkit-mask-image: url(../img/facility/voice_mask.svg);
	mask-image: url(../img/facility/voice_mask.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.facility-voice-image .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.facility-voice-image img {
	width: 100%;
}

.facility-voice-image .deco01 {
	width: 11.028rem;
	position: absolute;
	left: -.755rem;
	bottom: -.606rem;
	z-index: 3;
}

.facility-voice-image .deco02 {
	width: 20.129rem;
	position: absolute;
	right: -3.643rem;
	bottom: .692rem;
	z-index: 1;
}

.facility-voice-box {
	margin-top: 3rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 1.4rem;
}

.facility-voice-box .post {
	font-size: 1.4rem;
	line-height: 1.5;
	padding: .4rem 1.6rem;
	background: #5A9600;
	border-radius: 1.4rem;
	color: #fff;
	font-weight: 500;
	letter-spacing: 3%;
}

.facility-voice-box .name {
	font-size: 3.6rem;
	line-height: 1;
	font-weight: bold;
	letter-spacing: 3%;
}

.facility-voice-box .text {
	font-size: 1.6rem;
	line-height: 1.9;
	letter-spacing: 3%;
	font-weight: 500;
}

.facility-voice-body {
	width: 60.178rem;
	background: #fff;
	border-radius: 2.1rem;
	padding: 7rem 8rem;
	min-height: 41.7rem;
	font-size: 1.6rem;
	line-height: 2.1;
	font-weight: 500;
	position: relative;
}

.facility-voice-body:before {
	width: 2.367rem;
	height: 3.265rem;
	background: url(../img/facility/icon_arrow_white.svg) center center no-repeat;
	background-size: 100% auto;
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translate(-1.5rem, -50%);
	z-index: 2;
}

.facility-voice__item:nth-child(even) .facility-voice-body:before {
	left: unset;
	right: 0;
	transform: translate(1.5rem, -50%) scaleX(-1);
}

.facility-voice-body h3 {
	font-size: 3rem;
	line-height: 1.75;
	font-weight: bold;
	color: #5A9600;
	margin-bottom: 2rem;
}

.facility-wrap .top-news .inner {
	padding: 0 5rem;
    max-width: 116.5rem;
}

.facility-point {
	margin-bottom: 10rem;
}

.facility-heading {
	display: flex;
	align-items: center;
	gap: 2.5rem;
	margin-bottom: 5.6rem;
}

.facility-heading span {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0 6rem;
	height: 6.6rem;
	border-radius: 3.3rem;
	background: #5A9600;
	font-size: 3.2rem;
	line-height: 1;
	color: #fff;
	font-weight: bold;
	word-break: keep-all;
	white-space: nowrap;
}

.facility-heading span img {
	width: 14.24rem;
}

.facility-heading:after {
	content: "";
	height: .2rem;
	width: 100%;
	background: #5A9600;
	border-radius: .1rem;
	clip-path: inset(0 100% 0 0);
	transition: clip-path .35s ease .5s;
}

.facility-heading.animated:after {
	clip-path: inset(0 0 0 0);
}

.facility-point-list {
	width: 100%;
	max-width: 98.4rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	align-items: center;
}

.facility-point-list li {
	flex: 1;
	width: 100%;
	aspect-ratio: 1 / 1;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 2.6rem;
	line-height: 1.61;
	font-weight: bold;
	color: #5A9600;
	position: relative;
	z-index: 2;
	text-align: center;
}

.facility-point-list li:before {
	z-index: -1;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	content: '';
	width: calc(100% + 2.5rem);
	aspect-ratio: 1 / 1;
	border-radius: 100%;
	background: rgba(255, 255, 255, .5);
}

.facility-point-list li:nth-child(even) {
	z-index: 1;
}

.facility-point-list li:nth-child(even):before {
	background: #E6EAA9;
}


.facility-features {
	margin-bottom: 5.5rem;
}

.facility-features .facility-heading {
	max-width: 61.5rem;
	margin-bottom: 0;
}

.facility-features-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 5.5rem 18.8rem;
	margin-top: -10rem;
	position: relative;
}

.facility-features-item {
	font-size: 1.8rem;
	line-height: 1.72;
	font-weight: 500;
}

.facility-features-item:nth-child(odd) {
	transform: translateY(-11rem);
}

.facility-features-image {
	width: 100%;
	margin-bottom: 3.2rem;
}

.facility-features-image .image {
	width: 100%;
	aspect-ratio: 437 / 323;
	-webkit-mask-image: url(../img/facility/features_mask.svg);
	mask-image: url(../img/facility/features_mask.svg);
	-webkit-mask-size: cover;
	mask-size: cover;
	position: relative;
	z-index: 2;
}

.facility-features-image .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.facility-features-list .illust {
	position: absolute;
	left: -6rem;
	top: 16.9rem;
	z-index: -1;
	width: 57.9rem;
}

.facility-features-list .illust img {
	width: 100%;
}

/*** sp ***/
@media screen and (max-width: 767px) {
	.facility-wrap {
		padding: 4rem 0;
	}

	.facility-mainimg {
		margin-bottom: 6.3rem;
	}

	.facility-mainimg .deco01 {
		width: 12.5rem;
		left: 0;
		top: -.5rem;
	}

	.facility-mainimg .deco02 {
		width: 8.5rem;
		right: -.3rem;
		top: -.825rem;
	}

	.facility-mainimg .deco03 {
		width: 18rem;
		right: -.45rem;
		bottom: -1.2rem;
	}

	.facility-gallery {
		margin-bottom: 5rem;
		display: block;
	}

	.facility-gallery .facility-gallery__image {
		margin-top: 2rem;
		width: 100%;
	}

	.facility-gallery .facility-gallery__box {
		width: 100%;
		font-size: 1.4rem;
	}

	.facility-gallery .facility-gallery__box h3 {
		font-size: 2rem;
		margin-bottom: 1rem;
	}


	.facility-info {
		padding: 5.3rem 0 0;
	}

	.facility-info .facility-info__title {
		font-size: 2.8rem;
		margin-bottom: 1.6rem;
	}

	.facility-info .facility-info__map {
		border-radius: 1.5rem;
		aspect-ratio: 3 / 2;
		margin-top: 2rem;
	}

	.facility-voice {
		padding: 8rem 0;
	}

	.facility-voice:before,
	.facility-voice:after {
		height: 5.7rem;
	}

	.facility-voice__item {
		display: block;
	}

	.facility-voice__item + .facility-voice__item {
		margin-top: 4rem;
	}

	.facility-voice-head {
		width: 100%;
		display: flex;
		flex-direction: column-reverse;
		gap: 2rem;
	}

	.facility-voice-image {
		max-width: 33.5rem;
		margin: 0 auto;
	}

	.facility-voice-image .deco01 {
		width: 8rem;
	}

	.facility-voice-image .deco02 {
		width: 15rem;
		right: -2rem;
		bottom: 0;
	}

	.facility-voice-box {
		margin-top: 0;
		gap: 1rem;
	}

	.facility-voice-box .post {
		font-size: 1.2rem;
		line-height: 1.5;
		padding: .3rem 1.2rem;
		background: #5A9600;
		border-radius: 1.2rem;
	}

	.facility-voice-box .name {
		font-size: 2.4rem;
	}

	.facility-voice-box .text {
		font-size: 1.4rem;
	}

	.facility-voice-body {
		width: 100%;
		margin-top: 2.6rem;
		border-radius: 1.5rem;
		padding: 3rem 2rem;
		min-height: 0;
		font-size: 1.4rem;
		line-height: 1.8;
	}

	.facility-voice-body:before {
		left: 50%;
		top: 0;
		transform: translate(-50%, -1.5rem) rotate(90deg);
		z-index: 2;
	}

	.facility-voice__item:nth-child(even) .facility-voice-body:before {
		left: 50%;
		right: unset;
		transform: translate(-50%, -1.5rem) rotate(90deg);
	}

	.facility-voice-body h3 {
		font-size: 2rem;
		margin-bottom: 1rem;
	}

	.facility-wrap .top-news .inner {
		padding: 0 2rem;
	}

	.facility-point {
		margin-bottom: 5rem;
	}

	.facility-heading {
		gap: 1.5rem;
		margin-bottom: 3rem;
	}

	.facility-heading span {
		padding: 0 2rem;
        height: 4.4rem;
        border-radius: 2.2rem;
        background: #5A9600;
        font-size: 2rem;
	}

	.facility-heading span img {
		width: 10rem;
	}

	.facility-heading:after {
		height: .1rem;
	}

	.facility-point-list {
		width: 100%;
		max-width: 33.5rem;
		display: block;
	}

	.facility-point-list li {
		font-size: 2rem;
		line-height: 1.61;
		font-weight: bold;
		color: #5A9600;
		position: relative;
		z-index: 2;
		text-align: center;
	}

	.facility-point-list li + li {
		margin-top: -4rem;
	}

	.facility-point-list li:before {
		width: 100%;
	}


	.facility-features {
		margin-bottom: 0;
	}

	.facility-features .facility-heading {
		max-width: 100%;
		margin-bottom: 3rem;
	}

	.facility-features-list {
		grid-template-columns: repeat(1, 1fr);
		gap: 3rem;
		margin-top: 0;
	}

	.facility-features-list .facility-features-item:first-child {
		display: none;
	}

	.facility-features-item {
		font-size: 1.4rem;
	}

	.facility-features-item:nth-child(odd) {
		transform: translateY(0);
	}

	.facility-features-image {
		width: 100%;
		max-width: 33.5rem;
		margin: 0 auto;
		margin-bottom: 2rem;
	}

	.facility-features-list .illust {
		position: relative;
		left: 0;
		top: 0;
		width: 100%;
		max-width: 33.5rem;
		margin: 0 auto;
	}
}






















/* 個人情報の取り扱い 同意チェック */
.contact-box .smf-item:has(input[type="checkbox"][name^="privacy-agree"]) {
	margin-top: 3rem;
	text-align: center;
}

.contact-box .smf-item:has(input[type="checkbox"][name^="privacy-agree"]) .smf-item__col--controls {
	width: 100%;
}

.contact-box label:has(input[type="checkbox"][name^="privacy-agree"]) {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	font-size: 1.8rem;
	line-height: 1.72;
	font-weight: 500;
	cursor: pointer;
}

.contact-box input[type="checkbox"][name^="privacy-agree"] {
	width: 2.4rem;
	height: 2.4rem;
	margin: 0;
	flex: 0 0 2.4rem;
	border: 1px solid #999;
	border-radius: .4rem;
	background-color: #fff;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.5rem 1.5rem;
	cursor: pointer;
	transform: translateY(.15em);
}

.contact-box input[type="checkbox"][name^="privacy-agree"]:checked {
	border-color: #5A9600;
	background-color: #5A9600;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.2l3.1 3.1L13 4.7' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.contact-box input[type="checkbox"][name^="privacy-agree"]:focus-visible {
	outline: 2px solid #5A9600;
	outline-offset: 3px;
}

@media screen and (max-width: 767px) {
	.contact-box .smf-item:has(input[type="checkbox"][name^="privacy-agree"]) {
		margin-top: 2.5rem;
	}

	.contact-box label:has(input[type="checkbox"][name^="privacy-agree"]) {
		gap: .8rem;
		font-size: 1.6rem;
	}

	.contact-box input[type="checkbox"][name^="privacy-agree"] {
		width: 2.2rem;
		height: 2.2rem;
		flex-basis: 2.2rem;
	}
}

/* 応募フォーム内テキストリンク */
.contact-wrap .contact-head a {
	color: #5A9600;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .25em;
}

@media screen and (min-width: 960px) {
	.contact-wrap .contact-head a:hover,
	.contact-wrap .contact-head a:focus-visible {
		opacity: .7;
	}
}
