@charset "UTF-8";
/*
Theme Name: glorious-japan
Version: 1.0.0
*/

/****************************************
General Setting
*****************************************/

:root {
	--primary-green: #4CAF50;
	--accent-orange: #F57C00;
	--text-dark: #333;
	--text-light: #666;
	--card-shadow: 0 4px 15px rgba(0,0,0,0.08);
	--card-shadow-hover: 0 15px 35px rgba(0,0,0,0.15);
	--color-green: #32b814;
	--color-orange: #FF8823;
	--color-white: #ffffff;
	--transition-speed: 0.5s;
	--transition-curve: cubic-bezier(0.65, 0, 0.35, 1);
}
html,body,h1,h2,h3,h4,h5,h6,div,p,ul,ol,li,dl,dt,dd,table,th,td {box-sizing: border-box;}

html {
	margin: 0px auto;
}

body {
	font-family: "Noto Sans Japanese", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
	font-weight: 300;
	font-size: 16px;
	line-height: 1.8em;
	margin: 0px auto;
	padding: 0px;
	min-width: 1250px;
	color: #2A2A2A;
	position: relative;
	overflow-x: hidden;
}
.fontLato {
	font-family: "Lato";
	letter-spacing: 1px;
	font-weight: 500;
}
img {
	border-style:none;
	max-width: 100%;
	height: auto;
}

/****************************************
Typography
*****************************************/

h1, h2, h3, h4, h5, h6{
	font-weight: normal;
}

/****************************************
List
*****************************************/

ul,ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

li { list-style: none; }


.sp,
.sponly  {display:none}
span.pcbr { display: block; }
strong { font-weight: 500; }
.wp-pagenavi{clear: both;}
.wp-pagenavi a, .wp-pagenavi span {text-decoration: none;border: 1px solid #BFBFBF;padding: 3px 5px;margin: 2px;}
.wp-pagenavi a:hover, .wp-pagenavi span.current {border-color: #000;}
.wp-pagenavi span.current {font-weight: bold;}

/****************************************

Link

*****************************************/

a {
	color: #3E3A39;
	text-decoration: none;
	cursor: pointer;
}

a:hover {
	color: #737272;
}

a:hover img { opacity: 0.7; }

img {
	max-width: 100%;
}

p {
	margin-top: 0px;
}

footer { background: #fff;  }

.alignleft { float: left; }
.alignright { float: right; }
.aligncenter { text-align: center;}
.txtleft { text-align: left; }
.txtright { text-align: right; }
.clearfix:after {
	content: " ";
	display: block;
	clear: both;
}
/****************************************

Navigation

*****************************************/



.font12 { font-size: 12px; }
.font14 { font-size: 14px; }
.font16 { font-size: 16px; }
.font18 { font-size: 18px; }
.font20 { font-size: 20px; }
.font21 { font-size: 21px; }
.font24 { font-size: 24px; }
.font28 { font-size: 28px; }
.font30 { font-size: 30px; }
.font36 { font-size: 36px; }

/****************************************

margin

*****************************************/

.mt0 { 	margin-top: 0px; }
.mt5 { 	margin-top: 5px; }
.mr5 { margin-right: 5px; }
.ml5 { 	margin-left: 5px; }
.mb5 { margin-bottom: 5px; }
.mt10 { margin-top: 10px; }
.mr10 { margin-right: 10px; }
.ml10 { margin-left: 10px; }
.mb10 { margin-bottom: 10px; }
.mt20 { margin-top: 20px; }
.mr20 { margin-right: 20px; }
.ml20 { margin-left: 20px; }
.mb20 { margin-bottom: 20px; }
.mt30 { margin-top: 30px; }
.mr30 { margin-right: 30px; }
.ml30 { margin-left: 30px; }
.mb30 { margin-bottom: 30px; }
.mt40 { margin-top: 40px; }
.mr40 { margin-right: 40px; }
.ml40 { margin-left: 40px; }
.mb40 { margin-bottom: 40px; }
.mt50 { margin-top: 50px; }
.mr50 { margin-right: 50px; }
.mr60 { margin-right: 60px; }
.mr80 { margin-right: 80px; }
.ml50 { margin-left: 50px; }
.ml60 { margin-left: 60px; }
.mb50 { margin-bottom: 50px; }
.mb60 { margin-bottom: 60px; }
.mb70 { margin-bottom: 70px; }
.mb80 { margin-bottom: 80px; }
.mb100 { margin-bottom: 100px; }

/****************************************

padding

*****************************************/
.pt10 { padding-top: 10px; }
.pr10 { padding-right: 10px; }
.pl10 { padding-left: 10px; }
.pb10 { padding-bottom: 10px; }
.pt20 { padding-top: 20px; }
.pr20 { padding-right: 20px; }
.pl20 { padding-left: 20px; }
.pb20 { padding-bottom: 20px; }
.pt30 { padding-top: 30px; }
.pr30 { padding-right: 30px; }
.pl30 { padding-left: 30px; }
.pb30 { padding-bottom: 30px; }
.pt40 { padding-top: 40px; }
.pr40 { padding-right: 40px; }
.pl40 { padding-left: 40px; }
.pb40 { padding-bottom: 40px; }
.pt50 { padding-top: 50px; }
.pr50 { padding-right: 50px; }
.pl50 { padding-left: 50px; }
.pb50 { padding-bottom: 50px; }
.pb60 { padding-bottom: 60px; }
.pb70 { padding-bottom: 70px; }
.pt70 { padding-top: 70px; }
.pb80 { padding-bottom: 80px; }
.pb100 { padding-bottom: 100px; }

span.pcbr { display: block; }
/****************************************
header
*****************************************/
header #headerL.fixed {
	position:  fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	width: 100%;
	background-color: rgba(255,255,255,1);
	box-shadow: 0 3px 5px -1px rgb(0,0,0,6%);
}
header #headerL.fixed #header { transition: .3s; }

#header {
	display: flex;
	justify-content: space-around;
	align-items: center;
	gap: 10px;
	padding: 10px 0px;
}
#header .toptoi {
	display: inline-flex;
	gap: 20px;
}
#header .toplogo img,
#header .toptoi img { display: block; }
#header .toptoi .toibtn {
	display: flex;
	gap: 20px;

}

.menu {
	padding: 10px 0px 10px;
	height: auto;
}
.menu ul{
	list-style-type: none;
	margin: 0px 2vw 0px 2vw;
	padding: 0px 0;
	display: flex;
}
.menu li{
	display: inline-block;
	margin: 0;
	padding: 0px 0px;
	vertical-align: middle;
	position: relative;
	text-align: center;
	font-size: 15px;
}

.menu span.wrap,
.menu a{
	text-align: center;
	padding: 0px 1vw;
	position: relative;
	color: #000;
	font-size: 16px;
	display: block;
	box-sizing: border-box;	
	font-weight: 400;
	position: relative;
	cursor: pointer;
}

.menu span.wrap::after,
.menu a:after{
	content: "";
	display: block;
	width: 100%;
	height: 3px;
	background: #007200;
	opacity: 0;
	transition: .5s;
	position: absolute;
	left: 2px;
}
.menu a:hover:after {
	opacity: 1;
}
.menu ul.child {
	display: none;
	position: absolute;
	z-index: 1000;
	height: auto;
	background: #fff;
	border:1px #ddd solid;
	border-top:2px #01B38F solid;
	width: 230px;
	margin: 0px;
	left: 0px;
}

.menu ul.child li {
	padding: 0;
	background: #fff;
	border-bottom: 0px #ddd solid;
	display: block;
	margin: 0px;
	text-align: left;
	line-height: 1.5em;
	font-size: 14px;
	width: 100%;
}
.menu ul.child li span {
	padding: 20px 20px 0px ;
	display: block;
}
.menu ul.child a {
	display: block;
	width: 100%;
	height: auto;
	padding: 10px 8px 10px 10px;
	color:#000;
	background: #fff;
	text-indent: 0em;
	background: none;
	position: relative;
	overflow: hidden;
	box-sizing:border-box;
	font-size: 13px;
	line-height: 1.2em;
	margin: 0px 0px; 
	text-align: left;
	border: 1px solid #fff;
	border-bottom: 1px #ddd solid;

}
.menu ul.child a:hover {
	background: #eee;
}
.menu ul.child a:after { display: none; }

/* menunavi */
.menu-nav {
	margin-left: auto;
	cursor: pointer;
	position: relative;
	z-index: 400;
	text-align: center;
	width: 54px;
	height: 54px;
	background: #335463;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-moz-justify-content: center;
	-ms-justify-content: center;
	-webkit-box-pack: center;
	justify-content: center;
	-ms-flex-pack: center;
	-moz-align-items: center;
	-ms-align-items: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-transition: .3s;
	transition: .3s;
}
#menu-trigger,
#menu-trigger span {
	display: inline-block;
	-webkit-transition: all .4s;
	transition: all .4s;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

#menu-trigger {
	display: block;
	position: relative;
	width: 35px;
	height: 30px;
	margin: 0px auto;
}

#menu-trigger span {
	position: absolute;
	left: 0px;
	width: 100%;
	height: 2px;
	background-color: #fff;
}

#menu-trigger span:not(:first-child) {
	width: 80%;
}

#menu-trigger span:nth-of-type(2)::after {
	position: absolute;
	top: 0;
	left: 0;
	content: '';
	width: 100%;
	height: 2px;
	background-color: #fff;
	-webkit-transition: all .4s;
	transition: all .4s;
}

#menu-trigger span:nth-of-type(1) {
	top: 0px;
}

#menu-trigger span:nth-of-type(2) {
	top: 13px;
}

#menu-trigger span:nth-of-type(3) {
	bottom: 0px;
}

#menu-trigger.active span:nth-of-type(1) {
	-webkit-transform: translateY(20px) scale(0);
	transform: translateY(20px) scale(0);
}

#menu-trigger.active span:nth-of-type(2) {
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	left: 3px;
}

#menu-trigger.active span:nth-of-type(2)::after {
	-webkit-transform: rotate(90deg);
	transform: rotate(90deg);
}

#menu-trigger.active span:nth-of-type(3) {
	-webkit-transform: translateY(-20px) scale(0);
	transform: translateY(-20px) scale(0);
}

#pcnavi {
	display: none;
	position: fixed;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
	z-index: 300;
	padding: 100px 0px;
	background: #F1FBF7;
	overflow-y: scroll;
}

#pcnavi::-webkit-scrollbar {
	display: none;
}
#pcnavi .fbox02 { padding-top: 200px; }

/* menunavi */

/* TOP */
#maincon {
	padding: 0px 0px 0px;
}

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

.wrapper {
	margin-left: auto;
	margin-right: auto;
	width: 1150px;
	position: relative;

}

.bg-content .wrapper {
	margin-left: auto;
	margin-right: auto;
	width: 1050px;
	position: relative;

}


#maincon { margin-bottom: 100px; }
#top-service { background: #F1FBF7; }

.service-header {  padding-top: 10px; margin-bottom: 40px; }
.service-header h2 { color: var(--primary-green); font-size: 2em; border-bottom: 1px solid var(--primary-green); line-height: 2em; margin-bottom: 1em; font-weight: 500; }
.main-title { font-size: 3.5em; color: var(--primary-green); font-weight: bold; margin-bottom: 0.7em; opacity: 0.5; }
.service-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
	gap: 25px;
}
.service-description { font-size: 20px; color: #335463; line-height: 1.8em; font-weight: 500;  }
.top-concept-wrap .service-description { color: #fff; }
.service-card {
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: 
		transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), 
		box-shadow 0.5s cubic-bezier(0.16, 1, 0.3, 1);

	will-change: transform;
}

.service-card:hover {
	transform: translateY(-10px);
	box-shadow: 0 20px 40px rgba(0,0,0,0.12);
}

.card-image-wrapper {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.card-image-wrapper img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--transition-curve);
}

.service-card:hover .card-image-wrapper img {
	transform: scale(1.1); /* 画像を10%拡大 */
}

.card-overlay {
	position: absolute;
	top: 0; left: 0; width: 100%; height: 100%;
	background: rgba(0, 0, 0, 0.45);
	display: flex; align-items: center; justify-content: center;
	transition: background var(--speed) var(--transition-curve);
	z-index: 1;
}

.service-card:hover .card-overlay {
	background: rgba(0, 0, 0, 0.3); /* 少し明るくして視認性を高める */
}

.card-overlay h3 {
	color: #fff;
	font-size: 1.6em;
	text-align: center;
	line-height: 1.5em;
	font-weight: 500;
	transition: transform var(--speed) var(--transition-curve);
}

.service-card:hover .card-overlay h3 {
	transform: scale(1.05);
}

.card-content { padding: 25px 10px; }

.tag-container { display: flex; gap: 8px; margin-bottom: 15px; }
.tag { background: #455a64; color: #fff; font-size: 13px; padding: 3px 10px; border-radius: 20px; }

.card-content h4 {
	color: var(--accent-orange);
	font-size: 1.2em;
	margin: 0px 0px 10px;
	position: relative;
	display: block;
	text-align: center;
	font-weight: 500;
	transition: transform var(--speed) var(--transition-curve);
}

.service-card:hover .card-content h4 {
	transform: translateX(5px);
}

.card-content p {
	font-size: 0.9rem;
	max-width: 400px;
	color: var(--text-light);
	margin: auto;	
}

/* --- Footer Button --- */
.card-footer { padding: 0 20px 25px; display: flex; justify-content: center; }
.btn-more {
	display: flex; align-items: center;
}

.icon-arrow {
	width: 28px; height: 28px;
	background: var(--primary-green);
	color: #fff;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	margin-left: 10px;
	transition: transform var(--speed) var(--transition-curve), background var(--speed);
}

.service-card:hover .icon-arrow {
	transform: translateX(8px);
	background: #388E3C; /* 少し濃い緑に */
}

.top-work {
	list-style: none;
	padding: 0;
	margin: 0 auto;
	max-width: 1200px;
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
}

.top-work li {
	flex: 1 1 calc(33.333% - 20px);
	max-width: calc(33.333% - 20px);
	display: flex;
	flex-direction: column;
}


#top-vacant {
	background: url(/images/map-bg.png) no-repeat top center;
	padding: 70px 0px;
	color: #ffffff;
	background-size: cover;
}
.vacant-category {
	font-size: 2em;
	font-weight: 500;
	letter-spacing: 0.1em;
	margin-bottom: 1em;
}

.vacant-title {
	font-size: 3.5em;
	font-weight: 500;
	line-height: 1;
	margin-bottom: 30px;
	letter-spacing: 0.05em;
	color: #fff;
	opacity: 0.7;
}

.vacant-description {
	font-size: 1.8em;
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 0.02em;
	margin-bottom: 2em;
}

@media (max-width: 768px) {
	.top-work li {
		flex: 1 1 100%;
	}
}

.work-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
}

.work-image-wrapper {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.work-image-wrapper img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.work-card:hover .work-image-wrapper img {
	transform: scale(1.05);
}

.work-label {
	position: absolute;
	top: 15px;
	left: 15px;
	background-color: #455a64;
	color: #fff;
	padding: 3px 18px;
	border-radius: 20px;
	font-size: 0.8em;
	font-weight: 500;
	z-index: 1;
}

.work-content {
	padding: 20px 0;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.work-description {
	font-size: 1em;
	line-height: 1.6;
	margin: 0 0 20px 0;
	flex-grow: 1;
}

.work-link-area {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

.work-more-btn {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 1em;
	text-decoration: none;
	transition: opacity 0.2s;
}

.work-more-btn::after {
	content: "→";
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	background-color: var(--primary-green);
	color: #fff;
	border-radius: 50%;
	font-size: 0.7em;
	transition: transform 0.3s ease;
}

.work-card:hover .work-more-btn::after {
	transform: translateX(4px);
}

.work-card:hover .work-more-btn {
	opacity: 0.7;
}

#top-vacancy {
	padding: 60px 20px;
	background-image: url('/images/current-bg.png');
	background-size: 100% 250px;
	background-position: top;
	background-repeat: no-repeat;
}

.top-vacancy-wrap {
	background-color: #fff;
	border-radius: 24px;
	padding: 50px 40px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
	text-align: center;
}

.vacancy-header {
	margin-bottom: 40px;
}

.vacancy-title-ja {
	display: block;
	color: #32b11e;
	font-size: 2em;
	font-weight: bold;
	letter-spacing: 0.05em;
	margin-bottom: 8px;
}

.vacancy-title-en {
	display: block;
	color: #b8e9af;
	font-size: 2.5em;
	font-weight: bold;
	line-height: 1;
}

.vacancy-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.vacancy-item {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px 30px;
	text-decoration: none;
	border: 1px solid #32b11e;
	border-radius: 50px;
	background-color: #fff;
	transition: all 0.25s ease-out;
}

.vacancy-item span {
	color: #333;
	font-weight: 500;
	font-size: 18px;
	display: block;
	width: 90%;
}

.arrow-icon {
	width: 10px;
	height: 10px;
	border-top: 2px solid #32b11e;
	border-right: 2px solid #32b11e;
	transform: rotate(45deg);
}

.vacancy-item:hover .arrow-icon {
	border-color: #fff;
}

.vacancy-item:hover {
	opacity: 0.7;
	transform: translateY(-2px);
	background-color: #32b11e;
	color: #fff;
}

.vacancy-item:hover span {
	color: #fff;	
}

.topcompnay {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 20px;
	justify-content: center;
}

.topcompnay li {
	flex: 1;
	position: relative;
	height: 240px;
	border-radius: 20px;
	overflow: hidden;
}

.topcompnay li a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	text-decoration: none;
	color: #ffffff;
	font-size: 22px;
	font-weight: bold;
	letter-spacing: 0.1em;
	position: relative;
	z-index: 10;
}

.topcompnay li .bg-img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	z-index: 1;
}

.topcompnay li::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(50, 50, 50, 0.5);
	z-index: 5;
	pointer-events: none;
}

.topcompnay li:hover:after {
	background-color: rgba(0, 0, 0, 0.7);	
}
#top-concept { background: url(/images/concept-bg.png) no-repeat top left; background-size: cover; position: sticky; color: #fff; padding: 80px 0px 30px; }
.top-concept-bg  { background: url(/images/concept-bg-2.png) no-repeat right top; background-size: calc(50% - 100px); position: sticky; }
.top-concept-wrap { max-width: 650px; }
#top-concept .service-header h2 { color: #fff; border-color: #fff; margin: 0px 0px 1em; }
#top-concept .service-header .main-title  { color: #fff;}
.metaslider .flexslider { margin-bottom: 0px!important;}

.topnews {
	list-style: none;
	padding: 0;
	margin: 0;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}

.topnews li {
	border-bottom: 1px solid #f2f2f2;
}

.topnews li:first-child {
	border-top: 1px solid #f2f2f2;
}

.topnews li a {
	display: flex;
	align-items: center;
	padding: 18px 45px 18px 15px;
	text-decoration: none;
	color: #333;
	position: relative;
	transition: background-color 0.2s ease;
}

.topnews li a:hover {
	background-color: #f9f9f9;
}

.topnews .date {
	color: #666;
	font-size: 15px;
	margin-right: 25px;
	flex-shrink: 0;
	letter-spacing: 0.05em;
}

.topnews .label {
	display: inline-block;
	border: 1px solid #ff9d3b;
	color: #ff9d3b;
	font-size: 12px;
	padding: 2px 15px;
	border-radius: 20px;
	margin-right: 25px;
	margin-left: 25px;	
	flex-shrink: 0;
	line-height: 1.4;
}

.topnews h3 {
	margin: 0;
	font-size: 16px;
	font-weight: normal;
	flex-grow: 1;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.topnews li a::after {
	content: '';
	position: absolute;
	right: 20px;
	top: 50%;
	width: 8px;
	height: 8px;
	border-top: 2px solid #32b11e;
	border-right: 2px solid #32b11e;
	transform: translateY(-50%) rotate(45deg);
}

@media (max-width: 960px) {
	.vacancy-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.morebutton {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 260px;
	padding: 16px 45px;
	background-color: var(--color-green);
	color: var(--color-white);
	border-radius: 100px;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-decoration: none;
	overflow: hidden;
	z-index: 1;
	transition: 
		background-color var(--transition-speed) var(--transition-curve),
		border-color var(--transition-speed) var(--transition-curve),
		transform 0.2s ease;
}

.morebutton::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background-color: var(--color-orange);
	transition: left var(--transition-speed) var(--transition-curve);
	z-index: -1;
}
.morebutton:hover {
	border-color: var(--color-orange);
	color: #fff;
}
.morebutton:hover::before {
	left: 0;
}

.morebutton:active {
	transform: scale(0.96);
}

.morebutton02 {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 260px;
	padding: 16px 45px;
	background-color: #335463;
	color: var(--color-white);
	border: #335463;
	border-radius: 100px;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-decoration: none;
	overflow: hidden;
	z-index: 1;
	transition: 
		background-color var(--transition-speed) var(--transition-curve),
		border-color var(--transition-speed) var(--transition-curve),
		transform 0.2s ease;
}

.morebutton02::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background-color: var(--color-orange);
	transition: left var(--transition-speed) var(--transition-curve);
	z-index: -1;
}
.morebutton02:hover {
	border-color: var(--color-orange);
	color: #fff;
}
.morebutton02:hover::before {
	left: 0;
}

.morebutton02:active {
	transform: scale(0.96);
}

.footnavi { 
	display: flex;
	direction: rtl;
	background: #fff;
	border-radius: 24px;
	padding: 20px;
	gap: 30px;
	justify-content: space-between;
}
.footnavi .fcom { text-align: left; font-size: 13px; direction: ltr; width: 370px; }
.footnavi .fcom h1 { margin: 0px; line-height: 1.3em; }
.footermenu {
	background: #F1FBF7;
	padding: 30px 0px;
}
#pcnavi .menuf {
	font-size: 15px;
	gap: 30px;
	padding-top: 100px;
}
#pcnavi .menuf .fbox {
	width: 24%;
}
.menuf {
	font-size: 12px;
	padding: 0;
	text-align: left;
	color: #555;
	display: flex;
	direction: ltr;
	gap: 30px;
}

.menuf .fbox {
	list-style-type: none;
	padding: 0px 10px 0px 10px;
	padding: 0;
	margin-top: 10px;
	display: table-cell;
}

.menuf a {
	padding: 3px 10px 0px 0px;
	text-decoration:none;
	color: #555;
	display: block;
	line-height: 2em;
}

.footcopy { background: #33BA14; }
.footcopy #copyright { color: #fff; font-size: 12px; margin: 0px; }

#footer_fixed_top.fixed {
	display: block;	
}
#footer_fixed_top {
	display: none;	
}

#footer_fixed_pc {
	position: fixed;
	bottom: 10px;
	right: 0px;
	z-index: 900;
	padding-top: 0px;
	text-align: center;
	width: 80px;
}
#footer_fixed_pc.fixed {
	position: fixed;
	display: block;
}
#footer_fixed_pc img {
	display: block;
	filter: invert(1);
}

/****************************************

Breadcrumb

*****************************************/
.subHeader { background-color: #F6F5F1; padding: 40px 0px; }

.breadcrumbs {
	margin-left: 0px;
	margin-bottom: 35px;
	color: #aaa;
	/* padding: 5px 0px; */
	font-size: 14px;
	padding-top: 18px;
	padding-bottom: 20px;
}
.mB {
	font-size: 1.8em;
	margin: 10px 0px 10px;
	position: relative;
	display: inline-block;
	line-height: 1em;
}
.gaiyou {
	margin:10px 0px 50px 0px;
	border: solid 0px #c99269;
	border-collapse:collapse;
	text-align: left;
	line-height: 1.5em;
	width: 100%;
}

.gaiyou th { 
	position: relative;
	padding: 1.2rem 1rem;
	vertical-align: top;
	border-bottom: 1px solid #555;
	padding: 1em;
	font-weight: 400;
}
.gaiyou td {border-bottom: 1px solid #ddd; padding: 1em; }

.history {
    width: 100%;
    margin: 40px auto;
    border-collapse: separate;
    border-spacing: 0;
}

.history tr {
    transition: background-color 0.3s ease;
}

.history tr:nth-child(even) {
    background-color: #fcfcfc;
}

.history tr:hover {
    background-color: #F1FBF7;
}

.history th {
    width: 180px;
    padding: 30px 40px 30px 20px;
    text-align: right;
    vertical-align: top;
    font-weight: 400;
    color: #777;
    position: relative;
    border-right: 2px solid #e0e0e0;
}

.history th::after {
    content: "";
    position: absolute;
    top: 35px;
    right: -9px;
    width: 12px;
    height: 12px;
    background-color: #ffffff;
    border: 2px solid #70CF5A;
    border-radius: 50%;
    z-index: 1;
}

.history tr:last-child th {
    border-right: 2px solid transparent;
}

.history tr:last-child th::before {
    content: "";
    position: absolute;
    top: 0;
    right: -2px;
    width: 2px;
    height: 35px;
    background-color: #e0e0e0;
}

.history td {
    padding: 30px 20px 30px 40px;
    vertical-align: top;
    line-height: 1.8;
}

.bloc {
	padding: 10px 20px 10px 20px;
	border: 1px solid #ddd;
	border-radius: 5px;
}
.midashi {
	border-bottom: 1px solid #333;
	padding-bottom: 10px;
	margin-bottom: 1em;
	font-size: 36px;
	line-height: 1.5em;
}

.saiyoudetail dl {
	width: 100%;
	border-top: 1px solid #ccc;
	padding: 0px;
	margin: 0px;
	display: table;
}

.saiyoudetail dl:last-child {
	border-bottom: 1px solid #ccc;
}

.saiyoudetail dl dd,
.saiyoudetail dl dt {
/*	float: left; */
	display: table-cell;
	padding: 10px 10px 2px;
}

.saiyoudetail dl dt {
	font-weight: bold;
	width: 12em;
	border-right: 1px solid #ddd;
}

.saiyoudetail dl dd {
	padding-left: 20px;
}


ul.arealist li {
	background: #F1FBF7;
}

ul.arealist li.level01 {
	padding: 10px;
	margin-bottom: 50px;
	
}

ul.arealist ol.children li {
	display: inline-block;
	width: 23%;
	width: 30%;		/* 2022/06/10「柏第一センター、柏第二センター」対応 */
	margin: 5px 0.8% 5px 0.2%;
	text-align: center;
	border: 1px solid #69BD27;
	background: #fff;
	padding: 0px;
	padding-right: 0.8%;
}

ul.arealist ol.children li:nth-child(4n + 4) {
	margin-right: 0px;
}

ul.arealist ol.children li:hover {
	background: #69BD27;
}

ul.arealist ol.children li a:hover {
	color: #005B42;
}

ul.arealist ol.children li a {
	display: block;
	text-decoration: none;
	padding: 10px 10px;
	background: url(/images/yaji-01.png) no-repeat right center;
	background-size: 10px;
}

ul.arealist ol.children li h2 {
	font-size: 16px;
}

ul.arealist div.areattl {
	font-size: 22px;
	font-weight: 500;
	margin: 20px 10px;
	padding-left: 1px;
}

ul.arealist div.areattl:before {
	content: "▼";
	color: #69BD27;
	padding-right: 10px;
}

div.arealistlink {
	text-align: right;
}

div.arealistlink a {
	display: inline-block;
	width: 220px;
	background: #69BD27;
	color: #fff;
	text-decoration: none;
	text-align: right;
	padding: 8px 10px 8px 0px;
	font-size: 15px;
}

div.arealistlink a:after {
	content: "▶";
	color: #fff;
	padding-left: 5px;
}

ul.saiyoulist li {
	padding-bottom: 30px;
	border-bottom: 1px dashed #555;
}

ul.saiyoulist li img {
	float: left;
	width: 265px;
	margin-right: 20px;
	margin-left: 15px;
	
}

ul.saiyoulist li .ttl {
	text-decoration: none;
	color: #005C41;
	padding: 5px 0px;
	display: block;
	margin: 20px 0px;
	font-size: 22px;
}

div.newsaiyou {
	background: url(/wp-content/uploads/icon-saiyou.gif) no-repeat left center;
	border: 1px solid #68BE29;
	height: 46px;
	line-height: 46px;
	padding-left: 60px;
	font-size: 24px;
	font-weight: 400;
}

/* --- コンタクトフォーム全体 --- */
.wpcf7-form {
    margin: 40px auto;
    padding: 0 20px;
    color: #333;
    line-height: 1.6;
}

/* テーブル構造のリセット */
.contactform {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 30px;
}

.contactform tr {
    border-bottom: 1px solid #eee;
}
.contactform tr:first-child {
    border-top: 1px solid #eee;
}

/* --- ラベル部分 (TH) --- */
.contactform th {
    width: 15em;
    text-align: left;
    padding: 24px 16px;
    vertical-align: top;
    background-color: #f9f9f9;
    font-weight: 500;
}

.contactform th .spw {
	font-weight: 500;
}

.contactform th .spr {
	color: #fff;
	display: inline-block;
	background: #ee0000;
	padding: 1px 10px;
	float: right;
	font-size: 14px;
	font-weight: 300;
}
.red {
	color: #ee0000;
}
/* --- 入力エリア部分 (TD) --- */
.contactform td {
    padding: 20px 16px;
}

/* 入力フィールド共通 */
.wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.wpcf7-text, 
.wpcf7-email, 
.wpcf7-tel, 
.wpcf7-textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 16px;
    box-sizing: border-box;
    transition: all 0.2s ease;
    background-color: #fff;
    appearance: none;
}

/* フォーカス時の演出 */
.wpcf7-text:focus, 
.wpcf7-email:focus, 
.wpcf7-tel:focus, 
.wpcf7-textarea:focus {
    outline: none;
    border-color: #0066ff;
    box-shadow: 0 0 0 4px rgba(0, 102, 255, 0.1);
    background-color: #fff;
}

/* プレースホルダーのカラー */
::placeholder {
    color: #bbb;
}

/* --- ラジオボタン・チェックボックス --- */
.wpcf7-radio .wpcf7-list-item,
.wpcf7-acceptance .wpcf7-list-item {
    display: inline-block;
    margin-right: 20px;
    margin-bottom: 10px;
    cursor: pointer;
}

.wpcf7-list-item label {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.wpcf7-list-item input {
    margin-right: 8px;
    width: 18px;
    height: 18px;
}

.contactform td p {
    margin: 0 0 15px 0;
}

.contactform td p:last-child {
    margin-bottom: 0;
}

.sps {
    display: block;
    font-size: 12px;
    color: #666;
    margin: 5px 0 10px;
}
.addrs {
    padding: 15px 16px !important;
}

.addrs .spw {
    display: inline-flex;
    align-items: center;
    width: 100px; /* ラベルの幅を固定 */
    font-weight: 500;
    color: #444;
    padding-right: 0 !important; /* インラインスタイルを上書き */
}

.addrs .wpcf7-form-control-wrap {
    display: inline-block;
    vertical-align: middle;
    width: calc(100% - 110px); /* ラベル幅を引いた残りを当てる */
    margin-bottom: 10px;
}

.addrs #zip {
    max-width: 140px;
}

.addrs p {
    margin: -5px 0 15px 0 !important;
    padding: 0 !important;
}

.addrs .sps {
    display: block;
    margin-left: 100px; /* ラベル幅分ずらす */
    font-size: 11px;
    color: #888;
}

.addrs #pref,
.addrs #addr,
.addrs #addr2 {
    width: 100%;
}

.addrs br {
    display: none; /* 余計な改行を消去してCSSで制御 */
}

.wpcf7-submit {
    appearance: none;
    background-color: #33BA14;
    color: #fff;
    padding: 18px 80px;
    border: none;
    border-radius: 50px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.wpcf7-submit:hover {
    background-color: #33BA14;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}

.wpcf7-submit:disabled {
    background-color: #ccc;
    cursor: not-allowed;
    transform: none;
}

/* --- レスポンシブ (スマホ対応) --- */
@media screen and (max-width: 640px) {
    .contactform, 
    .contactform tbody, 
    .contactform tr, 
    .contactform th, 
    .contactform td {
        display: block;
        width: 100%;
    }

    .contactform th {
        background-color: transparent;
        padding: 20px 0 5px;
        border: none;
    }

    .contactform td {
        padding: 0 0 20px;
    }

    .contactform tr {
        padding-bottom: 10px;
    }

    .wpcf7-submit {
        width: 100%;
        padding: 16px;
    }
}

.midashis {
	font-size: 18px;
	font-weight: 400;
	border-left: 6px solid #69BD27;
	padding: 3px 20px;
}

div.detail {
	text-align: right;
}

div.detail a.link_s {
	display: inline-block;
	width: 180px;
	text-decoration: none;
	text-align: right;
	font-size: 15px;
	background-size: 10px;
	color: #000;
	border: 1px solid #005D42;
	padding-left: 10px;
	background: #fff;
	padding: 10px;
}

div.detail a.link_s span {
	background: url(/images/yaji-01.png) no-repeat right center;
	padding: 8px 20px 8px 0px;
}
.worktagsre li { display: inline-block; }

.worktagsre li a {
	display: block;
	padding: 5px 15px 5px 15px;
	text-decoration: none !important;
	width: auto;
	margin: 8px 10px 0px 0px;
	text-align: center;
	font-size: 14px;
	line-height: 1.2em;
	color: #fff;
	background: #5F9EA0;
	border-radius: 10px;
}

.worktagsre li.active a { 
	color: #fff;
	background: #34a872;
}

.worktagsre li a:hover { background: #f2f2ed; color: #333; border-radius: 0px; }


/* css追加をここの上に記載 */

@media (max-width: 1740px) {
}

@media (max-width: 1640px) {
}

@media (max-width: 1520px) {
	.menu span.wrap, .menu a { font-size: 15px; }
	#header .toptoi,
	#header .toptoi .toibtn { gap: 10px; }
}

@media (max-width: 1440px) {
	.menu span.wrap, .menu a { font-size: 14px; padding: 0px 0.3vw; }
}
@media (max-width: 1250px) {
}
@media (max-width: 1100px) {
	.flex-direction-nav .flex-next { right: 0px!important; }
	.flex-direction-nav .flex-prev { left: 0px!important; }
}
/****************************************************
* 端末ごとの調整で、PCのcssはここ以下に追加しない
*****************************************************/