@charset "utf-8";

/* ヘッダー
-------------------------------------*/
header {
	width: 100%;
	background-color: var(--white);
}

header.scrolled {
	position: fixed; left: 0; top: 0; z-index: 10;
	border-radius: 0 0 var(--rounded-20-40) var(--rounded-20-40);
	box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
	transform: translateY(-36px);
	opacity: 0; transition: none;
}
header.scrolled.is-show {
	opacity: 1;
	transform: translateY(0);
	transition: opacity .6s ease-out, transform .75s cubic-bezier(.22, .61, .36, 1);
}
header.scrolled.is-hide {
	opacity: 0; pointer-events: none;
	transform: translateY(0);
	transition: opacity .38s ease;
}

.head-logo {max-width: clamp(210px,36vw,450px);}

.nav-area ul li { padding: 0 1.5rem; }

.head-contact-btn {
	max-width: 250px;
	display: flex; justify-content: center; align-items: center; flex-direction: column; gap: .2rem;
	background-color: var(--main-color);
	border-radius: var(--rounded-200);
	color: var(--white);
	padding: .5rem 2rem;
}

.head-contact-btn p { white-space: nowrap; }
.head-contact-btn:hover { color: var(--white); opacity: .8; }
.head-contact-btn img:hover {opacity: 1;}

/*
.nav-area ul li.has-child {position: relative;}
.nav-area ul li.has-child ul {
	position: absolute;left: 0;top: 100%;
	display: block;
	font-size: .75em;
	padding: 1rem;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s;
}
header.scrolled li.has-child ul {
	background-color: var(--sub-color_01);
	color: var(--white);
}
.nav-area ul li.has-child > a {display: flex;align-items: center;}
.nav-area ul li.has-child > a::after {
	content: "";
	display: inline-block;
    width: 12px;
    height: 12px;
    border-top: 1px solid var(--white);
    border-right: 1px solid var(--white);
    transform: rotate(135deg);
    margin-left: 0.5rem;
}
header.scrolled .nav-area ul li.has-child > a::after {
	border-color: var(--black);
}
.nav-area ul li.has-child:hover ul {opacity: 1;visibility: visible;}
.nav-area ul li.has-child ul li {padding: .3rem 1rem;}
*/

.head-contact-btn .is-scroll {display: none;}
/* ハンバーガーボタン */
.hamburger,.nav-close {display: none;}

/* オーバーレイ */
.overlay {display: none;}

@media screen and (min-width: 1401px) {
	header.scrolled .head-contact-btn {
		background-color: var(--sub-color_01); color: var(--black);
	}
	.head-contact-btn .is-normal {display: block;}
	header.scrolled .head-contact-btn .is-normal {display: none;}
	header.scrolled .head-contact-btn .is-scroll {display: block;}
}

@media screen and (max-width: 1400px) {
	
	header {border-radius: 0 0 var(--rounded-10-25) var(--rounded-10-25);}
	
	.nav-logo {max-width: 240px;}
		
	.nav-area {
		display: block;
		position: fixed;
		right: 0; top: 0;
		width: 100%; max-width: 300px;
		padding: 0;
		background-color: var(--white);
		opacity: 0; visibility: hidden; pointer-events: none;
		transition: opacity .25s ease, visibility .25s ease;
		z-index: 9;
		filter: drop-shadow(0 0 6px var(--gray));
		height: 100vh;
		overflow-y: scroll;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}
	.nav-area.is-open {
		opacity: 1; visibility: visible; pointer-events: all;
	}
			
	.nav-area ul li {
		display: flex; align-items: center;
		padding: 1rem;
	}
	.nav-area ul li::before {
		content: "";
		display: inline-block; width: 26px; aspect-ratio: 1 / 1;
		background: url("../img/common/ico-list-pi.svg") no-repeat center / cover;
		margin-right: .5rem;
	}
	
	/* ハンバーガーボタン */
	.hamburger {
		display: block;
		position: absolute; right: 2%; top: 54%;
		transform: translateY(-50%);
		cursor: pointer;
		opacity: 1;
		transition: opacity .25s ease .1s;
	}
	
	.hamburger span {
		display: inline-block;
		transition: transform .3s ease .1s, opacity .15s ease .25s;
	}
	.hamburger span.bar,
	.nav-close span.bar {
		display: block;
		width: clamp(34px,7vw,62px); aspect-ratio: 31 / 5;
		
	}
	.hamburger span.bar {
		background: url(../img/common/toggle-op.svg) no-repeat center / cover;
		margin: 0 auto .3rem;
	}
	
	.nav-close {
		display: block;
		position: absolute; right: 8%; top: 26px;
		aspect-ratio: 12 / 11;
		opacity: 0; pointer-events: none;
		transition: opacity .25s ease 0s;
	} 
	.nav-close span.bar {
		background: url("../img/common/toggle-cl.svg") no-repeat center / cover;
		margin: 0 auto;
	}
	.nav-close span.bar:nth-child(1) {
		transform: translateY(clamp(10px,1.75vw,12px)) rotate(45deg);
	}
	.nav-close span.bar:nth-child(2) {
		transform: translateY(clamp(2px, calc(8px - 0.5vw), 5px)) rotate(-45deg);
	}
	
	/* ハンバーガー開閉動作 */
	body.menu-open .hamburger {
		opacity: 0; pointer-events: none;
		transition: opacity .25s ease .15s;
	}
	body.menu-open .hamburger span.bar {
		transition: transform .3s ease 0s, opacity .15s ease 0s;
	}
	body.menu-open .hamburger span.bar:nth-child(1) {
		transform: translateY(16px) rotate(45deg);
	}
	body.menu-open .hamburger span.bar:nth-child(2) {opacity: 0;}
	body.menu-open .hamburger span.bar:nth-child(3) {
		transform: translateY(-14px) rotate(-45deg);
	}
	
	body.menu-open .nav-close {
		opacity: 1;
		pointer-events: auto;
		transition: opacity .25s ease .35s;
	}
		
	/* オーバーレイ */
	.overlay {
		display: block;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(31, 41, 55, 0.5);
		backdrop-filter: blur(4px);
		-webkit-backdrop-filter: blur(4px);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
		z-index: 8;
        }
	.overlay.active {
		opacity: 1;
		visibility: visible;
        }
	body.menu-open {overflow: hidden;}
}

@media screen and (max-width: 560px) {
	.nav-area {max-width: 100%;}
	.nav-area ul {width: auto;}
}

/* 制御用 */
body.resize-stop header,
body.resize-stop .nav-area,
body.resize-stop .overlay,
body.resize-stop .hamburger,
body.resize-stop .hamburger span.bar,
body.resize-stop .nav-close {
	transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
	header.scrolled {
		transform: none;
	}
	header.scrolled.is-show,
	header.scrolled.is-hide {
		transition: opacity .2s linear;
	}
	.nav-area,
	.overlay,
	.hamburger,
	.hamburger span.bar,
	.nav-close {
		transition: none;
	}
}

/* フッター
-------------------------------------*/
footer {
	--curve-size: 220vw;
	--curve-depth: 12.05vw;
	--curve-line: clamp(6px,1.25vw,10px);
	
	--foot-content-space: 0;
	--foot-content-up: clamp(100px,19vw,280px);
	
	margin-top: calc(var(--curve-depth) + var(--curve-line));
}
.foot-curve {
	position: absolute; left: 0; bottom: 99.9%;
	width: 100%; height: calc(var(--curve-depth) + var(--curve-line));
	overflow: hidden; pointer-events: none;
}
.foot-curve::before {
	content: "";
	position: absolute; left: 50%; top: 0; transform: translateX(-50%);
	width: var(--curve-size);
	aspect-ratio: 1 / 1;
	border: var(--curve-line) solid var(--sub-color_01);
	border-radius: 50%;
	background-color: var(--white);
}
.foot-inner {
	margin-top: calc(var(--foot-content-up) * -1);
	padding-top: var(--foot-content-space);
}

.foot-logo {max-width: clamp(230px,40vw,456px);}

footer .map-container {padding-top: 66.6666%;}
footer .map-container iframe {border-radius: var(--rounded-10-20);}

.copyright {font-size: 14px;text-align: center;margin: 0;}

@media screen and (min-width: 1921px) {
	footer {--foot-content-space: 0; --foot-content-up: 500px;}
}

@media screen and (max-width: 560px) {
	footer { --foot-content-space: 2rem; --foot-content-up: 5rem; }
}

/* 汎用
-------------------------------------*/
/* 背景 */
.bg__noise-green {background: url("../img/common/bg-green.jpg") repeat-y center top / cover;}

.bg-after-yellow::before {
	content: "";
	width: 100%; height: 60%;
	position: absolute; left: 0; right: 0; top: -2px;
	background-color: var(--yellow); z-index: -1;
}

[class^="bg-wave-b__"]::after,
[class*=" bg-wave-b__"]::after {
	content: "";
	position: absolute; left: 50%; transform: translateX(-50%); top: 99.9%;
	width: 100%; height: clamp(40px, 4.84vw, 93px);
	background: no-repeat center top / 100% 100%;
	z-index: 1; pointer-events: none;
}
.bg-wave-b__yellow::after {
	background-image: url(../img/common/bg-wave-b-yellow.png);
}
.bg-wave-b__white::after {
	background-image: url(../img/common/bg-wave-b-white.png);
}

[class^="bg-wave-t__"]::before,
[class*=" bg-wave-t__"]::before {
	content: "";
	position: absolute; left: 50%; transform: translateX(-50%); bottom: 99.9%;
	width: 100%; height: clamp(40px, 4.84vw, 93px);
	background: no-repeat center bottom / 100% 100%;
	z-index: 1; pointer-events: none;
}
.bg-wave-t__white::before {background-image: url(../img/common/bg-wave-t-white.png);}

/* リンクボタン - 横幅 */
.link-w35 {width: 35px;}
.link-w220 {width: 220px;}
.link-w240 {width: min(240px, 100%);}
.link-w260 {width: min(260px, 100%);}

/* トップページ
-------------------------------------*/
/* FV */
.fv {
    text-align: center;
    position: relative;
	min-height: 840px;
}
.fv::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
	background-image:
		url("../img/common/bg-acc-01.svg"),
		url("../img/common/bg-acc-04.svg"),
		url("../img/common/bg-acc-03.svg"),
		url("../img/common/bg-acc-06.svg"),
		url("../img/common/bg-acc-02.svg"),
		url("../img/common/bg-acc-05.svg");
	background-position:
		clamp(815px, 86.77vw, 1486px) clamp(66px, 6.98vw, 134px),
		clamp(820px, 87.34vw, 1447px) clamp(302px, 32.19vw, 618px),
		clamp(456px, 48.59vw, 933px) clamp(332px, 35.36vw, 642px),
		clamp(763px, 81.30vw, 1461px) clamp(505px, 53.75vw, 1032px),
		clamp(21px, 2.19vw, 42px) clamp(448px, 47.76vw, 917px),
		clamp(85px, 12.29vw, 106px) calc(100% - clamp(56px, 5.78vw, 111px)); /* 下端基準：FV高さとminの底止まりがズレても波エリアで切れない（施設一覧の背景下端処理と同じ発想） */
	background-size:
		clamp(93px, 9.90vw, 190px) auto,
		clamp(117px, 12.50vw, 240px) auto,
		clamp(93px, 9.90vw, 190px) auto,
		clamp(88px, 9.32vw, 179px) auto,
		clamp(67px, 7.08vw, 136px) auto,
		clamp(147px, 15.63vw, 300px) auto;
}

.fv-ttl {
	left: clamp(20%,28vw,32%); 
	/*top: clamp(6%, calc(15% - 0.6vw), 14%); */
	top: 2%;
	font-size: clamp(35px, 5.5vw, 70px);
}
.fv-ttl__line rt {font-size: .3em;}
.fv-ttl__line::after {
	content: "";
	position: absolute; left: 50%; transform: translateX(-50%); top: 82%;
	width: 100%; aspect-ratio: 430 / 33;
	background: url(../img/top/underline.svg) no-repeat center / cover; z-index: -1;
}


.fv-photo-01 {
	/*right: clamp(2%, calc(12% - 6.2vw), 10%);*/ right: clamp(1%, calc(15vw - 134.4px), 8%); top: 0;
	max-width: clamp(184px, 37.21vw, 376px);
}
.fv-photo-02 {
	left: 2%; /*top: clamp(0%, calc(15% - 0.6vw), 2%);*/ top: 0;
	max-width: clamp(114px, 16.5vw, 266px);
}
.fv-photo-03 {
	left: clamp(8%, calc(24vw - 153.6px), 16%); bottom: calc(55% - 2% * clamp(0, (1600px - 100vw) / 960px, 1));
	max-width: clamp(143px, 11.13vw, 202px);
}

/* お知らせ */
.top-news {
	width: 94%;
	left: 50%; transform: translateX(-50%); bottom: clamp(12%,10vw,14%);
}
.top-news .bg__yellow {border-radius: var(--rounded-25-50) 0 0 var(--rounded-25-50);}

.top-news__thumb {aspect-ratio: 5 / 4; width: 120px; flex: 0 0 auto;}

.top-news .link-tri-frame {flex: 0 0 auto; min-width: 0;}

/* 会社概要 */
.top-about__abs-img {
	width: clamp(195px, 28.31vw, 400px);
    bottom: clamp(90%, calc(98% - 3.8vw), 98%);
}

/* テキストアニメーション */
.marquee {
	overflow: hidden;
	height: clamp(90px, 9.375vw, 150px);
	display: flex;
	align-items: center;
}
.marquee__track {
	display: flex;
	width: max-content;
	animation: marquee-flow 90s linear infinite;
}
.marquee__list {
	display: flex;
	flex-wrap: nowrap;
	gap: clamp(45px, 4.69vw, 90px);
	padding-right: clamp(45px, 4.69vw, 90px);
}
.marquee__unit {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	gap: clamp(45px, 4.69vw, 90px);
}
.marquee__word {
	font-size: clamp(42px, 4.5vw, 72px);
	font-weight: 800;
	color: #231815;
	white-space: nowrap;
}
.marquee__logo {
	width: clamp(125px, 16.85vw, 220px);
	flex-shrink: 0;
}

@keyframes marquee-flow {
	to { transform: translateX(-50%); } /* リスト1周分（0→-50%）で右→左に流れる */
}

/* アニメ抑制設定（prefers-reduced-motion）：header-trial.cssの前例と同じ配慮 */
@media (prefers-reduced-motion: reduce) {
	.marquee__track { animation: none; }
}

/* カルーセルスライダー */
.top-office {isolation: isolate; overflow: hidden;}

.top-office [class^="office-bg__img"] {
	position: absolute;
	z-index: -1;
	pointer-events: none;
}
/* bg-acc-07 */
.office-bg__img01 {
	width: clamp(81px, 13.02vw, 250px);
	left: 60%; transform: translateX(-50%);
	top: clamp(17px, 2.71vw, 30px);
}
/* bg-acc-08：下の見出しに被らないよう狭幅で強めに縮む */
.office-bg__img02 {
	width: clamp(59px, 15.26vw, 293px);
	left: 26%; transform: translateX(-50%);
	top: clamp(122px, 14.32vw, 227px);
}
/* bg-acc-03 */
.office-bg__img03 {
	width: clamp(49px, 10.89vw, 209px);
	left: 73%; transform: translateX(-50%);
	top: clamp(118px, 14.75vw, 216px);
}
.office-collage-loop {overflow: hidden;}

.office-collage__track {
	display: flex;
	width: max-content;
	animation: marquee-flow 50s linear infinite reverse;
}

.office-collage {
	/* 1ユニット幅：写真右端103.96vw＋左はみ出し11.3vwが重ならない118vw。
	   座標clampの固定域（960px以下・1920px以上）と同期して両端も固定 */
	width: clamp(737px, 118vw, 2266px);
	flex-shrink: 0;
	height: clamp(122px, 17.48vw, 314px);
}
/* fun-01：角丸の台形風（clip-fun01）。左に見切れ（左端がマイナス値） */
.office-collage__photo--01 {
	width: clamp(148px, 19.75vw, 366px);
	aspect-ratio: 456 / 330;
	left: clamp(-217px, -11.30vw, -71px);
	top: clamp(7px, 1.15vw, 22px);
	clip-path: url(#clip-fun01);
}
/* fun-02：傾いた楕円（clip-fun02） */
.office-collage__photo--02 {
	width: clamp(151px, 20.17vw, 364px);
	aspect-ratio: 464 / 367;
	left: clamp(90px, 14.43vw, 277px);
	top: clamp(1px, 0.16vw, 3px);
	clip-path: url(#clip-fun02);
}
/* fun-03：角丸三角（clip-fun03） */
.office-collage__photo--03 {
	width: clamp(127px, 17.36vw, 321px);
	aspect-ratio: 391 / 347;
	left: clamp(249px, 39.84vw, 765px);
	top: clamp(5px, 0.68vw, 13px);
	clip-path: url(#clip-fun03);
}
/* fun-05：角丸四角(r30)。右に見切れ */
.office-collage__photo--05 {
	width: clamp(109px, 14.45vw, 265px);
	aspect-ratio: 1 / 1;
	left: clamp(540px, 86.51vw, 1661px);
	top: clamp(7px, 1.04vw, 20px);
	border-radius: clamp(15px, 1.56vw, 30px);
}
/* fun-04：フラワー型（ベクター無しのためclip-path対象外）。中心指定なのでtransformで自身の半分を戻して中央合わせ */
.office-collage__photo--04 {
	width: clamp(121px, 15.32vw, 302px);
	aspect-ratio: 1 / 1;
	left: clamp(454px, 72.81vw, 1398px);
	top: clamp(61px, 8.74vw, 157px);
	transform: translate(-50%, -50%);
}

/* 採用タグアニメーション */
.recruit-tags .marquee__track {
	animation-duration: 90s;
}
.recruit-tags .marquee__list {
	gap: clamp(13px, 1.41vw, 27px);
	padding-right: clamp(13px, 1.41vw, 27px);
}
.recruit-tags__pill {
	min-height: clamp(26px, 2.71vw, 52px);
	padding: 0 clamp(12px, 1.25vw, 24px);
	flex-shrink: 0;
	white-space: nowrap;
}

@media screen and (min-width: 561px) and (max-width: 960px) {
	/* FV */
	
}

@media screen and (max-width: 960px) {
	/* FV */
	.fv {min-height: clamp(1050px, min(166.25vw, calc(1080px + 42.25vw)), 1360px);}
	.fv-photo-03 {/*left: auto; right: 3%;*/ top: 15%; bottom: auto; transform: none;}

	/* お知らせ */
	.top-news .bg__yellow {border-radius: var(--rounded-25-50) var(--rounded-25-50) 0 0;}
	.top-news__thumb {width: clamp(150px,26vw,200px);}
}

@media screen and (max-width: 768px) {
	/* FV */
	.fv-photo-01 {right: -6%;}
}

@media screen and (max-width: 560px) {
	/* FV */
	.fv {min-height: 1180px;}
	.fv-ttl {left: clamp(5%, calc((-10rem + 100vw) / 12.2), 28%); top: clamp(14.25%,38.25vw,18%); font-size: clamp(44px, 9.5vw, 90px);}
	.fv-photo-01 { max-width: clamp(184px, 49.21vw, 440px);}
	.fv-photo-02 {left: 1%; top: 2%; max-width: clamp(116px, 32.5vw, 266px);}
	.fv-photo-03 {left: clamp(50%,80vw,80%); transform: translateX(-50%); top: auto; bottom: 58%;}
}

/* 下層ページ
-------------------------------------*/
/* FV */
.sub-ttl {
	display: inline-flex; justify-content: center; align-items: center;
	position: relative; width: 100%;
}
.sub-ttl::before, .sub-ttl::after {
	content: "";
	display: block; width: 26px; aspect-ratio: 13 / 53;
	background: url("../img/sub/ttl-line.svg") no-repeat center / contain;
}
.sub-ttl::after {transform: scale(-1, 1);}

/* 事業所一覧
-------------------------------------*/
/* 絞り込み */
.ico-facility-overview-01 {width: clamp(88px,16vw,128px);}
.ico-facility-overview-02 {width: clamp(54px,9vw,92px);}
.ico-facility-overview-03 {width: clamp(52px,9vw,86px);}
.ico-facility-overview-04 {width: clamp(70px,14vw,130px);}
.ico-facility-overview-05 {width: clamp(72px,12vw,126px);}

.fac-area-btn {min-height: clamp(70px,11vw,90px);}
.fac-area-btn .bg__pink {
	/*height: -webkit-fill-available; height: -moz-available; height: stretch;*/
	border-radius: var(--rounded-10-25) 0 0 var(--rounded-10-25);
}

.fac-cat-btn:hover, a:has(.fac-area-btn):hover {opacity: 1;}
.fac-cat-btn:has( > .flex),.fac-area-btn {transition: outline .2s ease;}
.fac-cat-btn:has( > .is-active),
.fac-area-btn.is-active {outline: 5px solid var(--light-green); }
.fac-area-btn.is-active .bg__pink {border-radius: var(--rounded-10-20) 0 0 var(--rounded-10-20);}

.link-search {width: clamp(224px, 30vw, 280px);}
.link-reset::before {
	content: "";
	display: block; width: clamp(32px,4vw,42px); aspect-ratio: 1 / 1;
	background: url(../img/facility/ico-reset.svg) no-repeat center / contain;
}

/* 一覧 */
.fac-arc-bg {background: url("../img/facility/bg-archive.png") repeat-y center top / 120%;}

.ttl-line-x::before, .ttl-line-x::after {
	content: "";
	display: block; width: 100%; height: 8px;
	background: url(../img/facility/ttl-line-x.svg) repeat-x center / contain;
}
.ttl-line-x::before {background-position-x: right; margin-right: 1rem;}
.ttl-line-x::after {background-position-x: left; margin-left: 1rem;}

.fac-arc-txt .bg__yellow {border-radius: clamp(9px, 3.25vw,18px) 0 0 clamp(6px, 2vw,16px);}

.fac-arc-img__acc {
	position: absolute; left: calc(-1 * clamp(20px,5vw,40px)); top: calc(-1 * clamp(30px,4.25vw,50px)); z-index: -1;
	max-width: clamp(112px,18vw,148px);
}

.ico-add::before {
	content: "";
	display: block; width: 14px; aspect-ratio: 7 / 10;
	background: url(../img/common/ico-add.svg) no-repeat center / cover;
	margin-right: .25rem; margin-bottom: .1rem;
}

@media screen and (max-width: 768px) {
	/* 一覧 */
	.fac-arc-txt .bg__yellow {border-radius: clamp(9px, 2.25vw,18px) clamp(9px, 2.25vw,18px) 0 0;}
}

@media screen and (max-width: 560px) {
	/* 絞り込み */
	.fac-area-btn .bg__pink {display: none;}
}

/* 施設詳細
-------------------------------------*/
/* コンテンツ1 */
.fac-page-bg [class^="fac-page-bg__img"],
.fac-page-bg [class*=" fac-page-bg__img"] {
	position: absolute; z-index: -1;
}
.fac-page-bg__img01 {
	width: clamp(120px,18vw,272px);
	left: 0; bottom: 90%;
}
.fac-page-bg__img02 {
	width: clamp(80px,14vw,220px);
	left: clamp(68%, calc(50% + 216px), 86%); transform: translateX(-50%); top: -6%;
}
.fac-page-bg__img03 {
	width: clamp(96px,18vw,192px);
	right: 0; bottom: 14%;
}

[class^="fac-con-ttl-"],
[class*=" fac-con-ttl-"] {
	background: no-repeat center / min(400px, 90%);
	min-height: 60px; padding-top: 2rem; padding-bottom: 2rem;
}
.fac-con-ttl-1 {
	background-image: url(../img/facility/ttl-01.svg);
	background-position: left 60% center;
}
.fac-con-ttl-2 {
	background-image: url(../img/facility/ttl-02.svg);
}
.fac-con-ttl-3 {
	background-image: url(../img/facility/ttl-03.svg);
}
.fac-con-ttl-1.bg-pos-l55 {background-position: left 55% center;}

[class^="fac-con-line-"]::after,
[class*=" fac-con-line-"]::after {
	content: "";
	display: block; width: 100%; height: 10px;
	background: repeat-x left center / contain;
}

.fac-con-line-1::after {
	background-image: url("../img/facility/line-01.svg");
}
.fac-con-line-2::after {
	background-image: url("../img/facility/line-02.svg");
}
.fac-con-line-3::after {
	background-image: url("../img/facility/line-03.svg");
}

/* サービス */
.fac-service__box {min-height: 80px;}

/* ご利用の一日の流れ */
.box-ico__arrow-b::after {
	content: "";
	position: absolute; left: 50%; top: 99.5%; transform: translateX(-50%);
	width: clamp(40px,7vw,60px); aspect-ratio: 3 / 1;
	background-color: var(--yellow);
	clip-path: polygon(0 0, 50% 100%, 100% 0);
}
.fac-schedule .box-ico__arrow-b:last-of-type::after {display: none;}

/* FAQ */
.fac-faq__list::details-content {
	display: block;
	block-size: 0; overflow: clip; 
	transition: block-size .45s ease, content-visibility .45s allow-discrete;
}
.fac-faq__list[open]::details-content { block-size: auto; }
.fac-faq__list summary { display: flex; align-items: center; cursor: pointer; }
.fac-faq__list summary::before {
	content: "Q.";
	display: block; flex: 0 0 auto;
	font-size: 2em;
}
.fac-faq__list summary span {
	flex: 1 1 auto;
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	margin-left: 1rem; margin-right: 1rem;
}
.fac-faq__list summary span::after {
	content: "";
	display: inline-block; width: 18px; aspect-ratio: 7 / 9;
	background-color: currentColor;
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	transition: rotate .3s ease;
}
.fac-faq__list[open] summary span::after {rotate: 90deg;}
.fac-faq__list-box {transform: translateY(-10px); opacity: 0; transition: transform .5s, opacity .5s;}
.fac-faq__list[open] .fac-faq__list-box {transform: none; opacity: 1;}

/* ご利用の流れ */
.fac-flow__ttl {min-height: 100px;}

/* ご利用料金 */
.fac-fee__tbl-1 > thead > tr > th:first-child,
.fac-fee__tbl-1:not(:has( > thead)) > tbody > tr:first-child > th {border-top-left-radius: var(--rounded-10-20);}
.fac-fee__tbl-1 > thead > tr > th:last-child {border-top-right-radius: var(--rounded-10-20);}
.fac-fee__tbl-1 > tfoot > tr:last-child > th {border-bottom-left-radius: var(--rounded-10-20);}
.fac-fee__tbl-1 > thead > tr > th:not(:first-child) {--tbl-th-bg: var(--white); text-align: center;}
.fac-fee__tbl-1 > thead > tr > th,
.fac-fee__tbl-1 > tbody > tr:last-child :is(th,td) {--tbl-bdc: var(--black); border-bottom: var(--tbl-bdw) solid var(--tbl-bdc);}
.fac-fee__tbl-1:has(> tfoot) > tbody > tr:last-child :is(th,td) {--tbl-bdw: 2px;}

.fac-fee__tbl-1 th {padding-left: 1rem; padding-right: 1rem;}
.fac-fee__tbl-1 td > div {max-width: 80%; text-align: right; font-size: 1.15em; margin-left: auto; margin-right: auto;}

.fac-fee__tbl-1 tr > :is(th,td):last-child {border-left: 1px solid var(--tbl-bdc);}


.fac-fee__tbl-1:not(:has(> thead)) > tbody > tr:first-child > th {border-top-left-radius: var(--rounded-10-20);}
.fac-fee__tbl-1:not(:has(> tfoot)) > tbody > tr:last-child > th {border-bottom-left-radius: var(--rounded-10-20);}
/*.fac-fee__tbl-1:not(:has(> thead, > tfoot)) > tbody > tr > :is(th,td) {border-bottom: var(--tbl-bdw) solid var(--tbl-bdc);}*/
.fac-fee__tbl-1:not(:has(> tfoot)) > tbody > tr:last-child > :is(th,td) {border-bottom: none;}

.fac-fee__tbl-1:not(:has(> thead)):not(:has(> tfoot)) > tbody > tr > th {
	width: auto; text-align: left; 
}
.fac-fee__tbl-1:not(:has(> thead)):not(:has(> tfoot)) > tbody > tr > :is(th,td):last-child {border-left: none;}

.fac-fee__tbl-2 th {width: auto;}
.fac-fee__tbl-2 :is(th, td) {
	--tbl-bdc: var(--black);
	border-right: var(--tbl-bdw) solid var(--tbl-bdc);
	border-bottom: var(--tbl-bdw) solid var(--tbl-bdc);
}
.fac-fee__tbl-2 tr:not(:nth-child(2)) :is(th, td):last-child {border-right: none;}

.fac-fee__tbl-2 > tbody > tr:last-child :is(th, td),
.fac-fee__tbl-2 > tbody > tr:first-child td:nth-of-type(n+2) {border-bottom: none;}
.fac-fee__tbl-2 > thead > tr:first-child th:first-child {border-top-left-radius: var(--rounded-10-20);}
.fac-fee__tbl-2 > thead > tr:first-child th:last-child {border-top-right-radius: var(--rounded-10-20);}
.fac-fee__tbl-2 > :not(thead) th {--tbl-th-bg: transparent;}

.fac-fee__tbl-2 > tbody td > div {max-width: 80%; text-align: right; font-size: 1.15em; margin-left: auto; margin-right: auto;}

/* 協力医療機関等 */
.fac-medical > div {--med-line-width: 18px;}

.fac-medical > div::after {
	content: ""; display: block; width: var(--med-line-width); aspect-ratio: 8 / 103;
	background: url(../img/facility/medi-line.svg) no-repeat center / contain;
	position: absolute; right: calc(-1 * calc(var(--med-line-width) / 2)); top: 50%; transform: translateY(-50%);
}
.fac-medical > div:last-of-type::after {display: none;}

/* 評価 */
.fac-evaluation > div {flex-basis: 300px;}

/* お問い合わせ */
[class^="fac-contact__"]::before,
[class*=" fac-contact__"]::before {
	content: "";
	display: block; width: clamp(30px,6.5vw,44px); aspect-ratio: 1 / 1;
	background: no-repeat center / cover;
}
.fac-contact__tel::before {background-image: url(../img/facility/contact-tel.svg);}
.fac-contact__fax::before {background-image: url(../img/facility/contact-fax.svg);}
.fac-contact__mail::before {background-image: url(../img/facility/contact-mail.svg);}

/* 施設情報 */
[class^="fac-info__"]::before,
[class*=" fac-info__"]::before {
	content: "";
	display: block; width: 22px; aspect-ratio: 1 / 1;
	background: no-repeat center / cover;
}
.fac-info__home::before {background-image: url(../img/facility/ico-facility-01.svg);}
.fac-info__add::before {background-image: url(../img/facility/ico-facility-02.svg);}
.fac-info__tel::before {background-image: url(../img/facility/ico-facility-03.svg);}
.fac-info__fax::before {background-image: url(../img/facility/ico-facility-04.svg);}
.fac-info__mail::before {background-image: url(../img/facility/ico-facility-05.svg);}
.fac-info__manager::before {background-image: url(../img/facility/ico-facility-06.svg);}
.fac-info__days::before {background-image: url(../img/facility/ico-facility-07.svg);}
.fac-info__time::before {background-image: url(../img/facility/ico-facility-08.svg);}
.fac-info__access::before {background-image: url(../img/facility/ico-facility-09.svg);}

.fac-info-tbl__acc th,
.fac-info-srv-2 th {padding-left: 2.5rem;}

.fac-info-srv-1 :is(th,td) {padding-bottom: 0;}
.fac-info-srv-2 :is(th,td) {padding-top: 0;}

/* フッター */
body.single-facility .foot-curve::before {
	border-color: transparent;
}

@media screen and (max-width: 960px) {
	/* 協力医療機関等 */
	.fac-medical > div::after {display: none;}
}

@media screen and (max-width: 768px) {
	/* ご利用料金 */
	.fac-fee__tbl-1,
	.fac-fee__tbl-1 tr > :is(th,td):last-child,
	.fac-fee__tbl-1 > tbody > tr:last-child :is(th,td) {border: none;}
	.fac-fee__tbl-1 :is(th,td) {display: block; width: 100%;}
	.fac-fee__tbl-1 > thead > tr > th {display: none;}
	.fac-fee__tbl-1 > tfoot > tr:last-child > th {
		border-radius: 0;
	}
	
	.fac-fee__tbl-1 td {display: flex; justify-content: space-between; align-items: flex-start; flex-direction: column; gap: .25rem;}
	.fac-fee__tbl-1 td::before {
		content: attr(data-label);
        display: block;
	}
	.fac-fee__tbl-1 > tbody td > div,
	.fac-fee__tbl-1 > tfoot td > div {width: 100%; max-width: 100%;}
	
	.fac-fee__tbl-1 th {text-align: center;}


	.fac-fee__tbl-1:not(:has(> thead)):not(:has(> tfoot)) > tbody > tr:first-child > th,
	.fac-fee__tbl-1:not(:has(> tfoot)) > tbody > tr:last-child > th,
	.fac-fee__tbl-1:not(:has( > thead)) > tbody > tr:first-child > th {border-radius: 0;}
	.fac-fee__tbl-1:not(:has(> thead)):not(:has(> tfoot)) > tbody > tr > :is(th,td) {border-bottom: none;}
	.fac-fee__tbl-1:not(:has(> thead)):not(:has(> tfoot)) > tbody > tr > th {text-align: center;}
	
	
	.fac-fee__tbl-2 {max-width: 600px;}
	.fac-fee__tbl-2 :is(th,td) {display: block; width: 100%;}
	.fac-fee__tbl-2,
	.fac-fee__tbl-2 :is(th, td) {border: none; border-radius: 0;}
	.fac-fee__tbl-2 > thead > tr > th {display: none;}
	
	.fac-fee__tbl-2 > :not(thead) th {--tbl-th-bg: var(--yellow);}
	.fac-fee__tbl-2 td {
		display: flex; justify-content: space-between; align-items: flex-start; flex-direction: column; gap: .25rem;
	}
	.fac-fee__tbl-2 td::before {
		content: attr(data-label);
        display: block;
	}
	.fac-fee__tbl-2 > tbody td > div {width: 100%; max-width: 100%;}
}

@media screen and (max-width: 560px) {
	/* コンテンツ1 */
	.fac-page-bg__img03 {bottom: auto; top: 100%;}

	/* サービス */
	.fac-srv__tbl {
		--tbl-th-pb: 0; --tbl-td-pt: 0;
	}
	
	/* ご利用の流れ */
	.fac-flow__ttl {min-height: auto;}
	
	/* お問い合わせ */
	.tbl_sm.fac-contact > tbody > tr > th {display: flex; align-items: center; justify-content: center;}
	.tbl_sm.fac-contact > tbody > tr > td {padding-top: 0; margin-bottom: .5rem;}
	
	.fac-contact.tbl-th-slash th::after {display: none;}

	/* 施設情報 */
	.fac-info,
	.fac-info-tbl__acc {
		--tbl-th-pt: 0; --tbl-th-pb: 0; --tbl-td-pb: 0;
	}
	.fac-info-tbl__acc {
		--tbl-th-pb: 0; --tbl-td-pt: 0;
	}
	.fac-info td,
	.fac-info-tbl__acc td {margin-bottom: .5rem;}
	.fac-info-tbl__acc th,
	.fac-info-srv-2 th {padding-left: .5rem;}

	.fac-info.tbl_sm > tbody > tr >  th,
	.fac-info-tbl__acc.tbl_sm > tbody > tr >  th,
	.fac-info-srv-1.tbl_sm > tbody > tr >  th,
	.fac-info-srv-2.tbl_sm > tbody > tr >  th {display: flex; align-items: center;}

}


/* 会社概要
-------------------------------------*/
/* 企業理念 */
.about-idea__logo {
	top: calc(-1 * clamp(60px, 6.5vw, 100px));
	width: clamp(150px, 23.75vw, 234px);
}
.about-idea__logo img {width: 60%;}

/* 事業所理念 */
.about-phil {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(auto, clamp(460px,44vw,700px)) minmax(0, 1fr);
	align-items: start;
}

.about-phil__img--01 {width: clamp(240px, 24.75vw, 300px);}
.about-phil__img--02 {width: clamp(260px, 25.25vw, 350px);}
.about-phil__img--03 {width: clamp(230px, 24vw, 316px);}
.about-phil__img--04 {width: clamp(250px, 25vw, 300px);}

.about-phil__ttl { width: clamp(280px, 29vw, 446px); }

.about-phil__blob { width: clamp(380px, 40.5vw, 520px); }

/* 沿革 */
.about-history__reel {
	height: clamp(380px, 38.75vw, 454px);
	overflow-y: auto;
	scrollbar-color: var(--main-color) transparent; /* Firefox用 */
}
.about-history__reel::-webkit-scrollbar {width: 14px;}
.about-history__reel::-webkit-scrollbar-thumb {
	background-color: var(--main-color);
	border-radius: 7px;
}
.about-history__reel::-webkit-scrollbar-track {
	background: transparent;
	margin-block: 2rem;
}

.about-history__list li:not(:last-child) {margin-bottom: 3rem;}

.about-history__date {width: 160px; max-width: 100%; min-height: 88px;}
.about-history__date::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 99.9%;
	width: 0;
	height: 0;
	border-top: 13px solid transparent;
	border-bottom: 13px solid transparent;
	border-left: 21px solid var(--main-color);
	transform: translateY(-50%);
}

.about-history__dot {width: clamp(14px, 2vw, 20px); margin-top: 2.2rem;}

.about-history__list li > p {min-width: 0; margin-top: 2.2rem;}

.js-history .about-history__date,
.js-history .about-history__dot,
.js-history .about-history__txt {
	opacity: 0;
	filter: blur(8px);
}
.js-history .about-history__date {
	transform: translateX(-24px) scale(.74);
	transform-origin: right center;
}
.js-history .about-history__dot {transform: scale(.3);}
.js-history .about-history__txt {transform: translateX(34px);}

.js-history__item.is-inview .about-history__date {
	animation: historyBubble .78s cubic-bezier(.18, .9, .22, 1.18) both;
}
.js-history__item.is-inview .about-history__dot {
	animation: historyDot .68s cubic-bezier(.18, .9, .22, 1.18) .08s both;
}
.js-history__item.is-inview .about-history__txt {
	animation: historyText .72s cubic-bezier(.2, .82, .22, 1) .16s both;
}

@keyframes historyBubble {
	0% {
		opacity: 0;
		filter: blur(8px);
		transform: translateX(-24px) scale(.74);
	}
	68% {
		opacity: 1;
		filter: blur(0);
		transform: translateX(0) scale(1.06);
	}
	100% {
		opacity: 1;
		filter: blur(0);
		transform: translateX(0) scale(1);
	}
}

@keyframes historyDot {
	0% {
		opacity: 0;
		filter: blur(8px);
		transform: scale(.3);
	}
	72% {
		opacity: 1;
		filter: blur(0);
		transform: scale(1.22);
	}
	100% {
		opacity: 1;
		filter: blur(0);
		transform: scale(1);
	}
}

@keyframes historyText {
	0% {
		opacity: 0;
		filter: blur(8px);
		transform: translateX(34px);
	}
	100% {
		opacity: 1;
		filter: blur(0);
		transform: translateX(0);
	}
}

@media screen and (max-width: 960px) {
	/* 事業所理念 */
	.about-phil {grid-template-columns: minmax(0, 1fr);}
	.about-phil__center {order: -1;}
	.about-phil__side {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		gap: 1rem;
	}
	.about-phil__side .about-phil__img {width: calc(44% - 4% * clamp(0, (100vw - 360px) / 420px, 1)); margin: 0;}
}

@media screen and (max-width: 768px) {
	/* 沿革 */
	.about-history__date::after {
		left: 50%; transform: translateX(-50%); top: 92%;
		border-top: 21px solid var(--main-color);
		border-right: 13px solid transparent;
		border-left: 13px solid transparent;
		border-bottom: 0;
	}
	
	.about-history__dot,
	.about-history__list li > p {margin-top: 0;}

	.js-history .about-history__date {
		transform: translateY(18px) scale(.78);
		transform-origin: center bottom;
	}

	.js-history .about-history__txt {transform: translateY(18px);}

	@keyframes historyBubble {
		0% {
			opacity: 0;
			filter: blur(8px);
			transform: translateY(18px) scale(.78);
		}
		68% {
			opacity: 1;
			filter: blur(0);
			transform: translateY(0) scale(1.06);
		}
		100% {
			opacity: 1;
			filter: blur(0);
			transform: translateY(0) scale(1);
		}
	}

	@keyframes historyText {
		0% {
			opacity: 0;
			filter: blur(8px);
			transform: translateY(18px);
		}
		100% {
			opacity: 1;
			filter: blur(0);
			transform: translateY(0);
		}
	}
}

@media (prefers-reduced-motion: reduce) {
	.js-history .about-history__date,
	.js-history .about-history__dot,
	.js-history .about-history__txt {
		opacity: 1;
		filter: none;
		transform: none;
		animation: none;
	}
}


/* 防災
-------------------------------------*/
/* カルーセルスライダー */
.path-carousel{--side-scale: 1.28;--side-y-extra: 1.18;--slide-offset-y: 0px;--rail-gap: 40px;}
.path-carousel li {top: var(--slide-offset-y); padding: 1rem;}
.path-carousel li img {aspect-ratio: 23 / 16; object-fit: cover;}

/* 3 枚表示時のポジション */
.carousel-pos-0{left:-33.333%;transform:scale(1.15) perspective(600px) rotateY(50deg);opacity:0}
.carousel-pos-1{left:4%;transform:scale(var(--side-scale)) perspective(600px) rotateY(42deg);transform-origin:right center;opacity:1}
.carousel-pos-2{left:33.333%;transform:scale(1);transform-origin:center;opacity:1;z-index:2}
.carousel-pos-3{left:62.666%;transform:scale(var(--side-scale)) perspective(600px) rotateY(-42deg);transform-origin:left center;opacity:1}
.carousel-pos-4{left:100%;transform:scale(1.15) perspective(600px) rotateY(-50deg);opacity:0}

.carousel-caption {
	top: 68%;
	bottom: auto;
	background-color: transparent; border-radius: 0;
	color: var(--black);
	margin-top: 0;
	font-size: clamp(16px, 2vw, 18px); white-space: pre-line;
}
.carousel-viewport:has(.single-mode) .carousel-caption {
	top: calc(var(--rail-h, 60%) + 0px);
	bottom: auto;
}

button.carousel-nav {
	top: 92%;
	background-color: var(--main-color); border-color: var(--main-color);
	width: clamp(28px, 5vw, 60px);
    height: clamp(28px, 5vw, 60px);
	z-index: 0;
}
button.carousel-nav:hover .arrow-icon {background: var(--main-color);}
button.carousel-nav.prev {left: 44%;}
button.carousel-nav.next {right: 44%;}

@media screen and (max-width: 960px) {
	.path-carousel {--side-scale: 1.13;}
}

@media screen and (max-width: 560px) {
	.path-carousel { --rail-gap: 80px; }
	
	button.carousel-nav.prev {left: 40%;}
	button.carousel-nav.next {right: 40%;}
	
	button.carousel-nav .arrow-icon {width: 9px;}
}

/* 年間イベント
-------------------------------------*/
.annual-gallery.wp-block-gallery.has-nested-images {
	display: grid;
}
.annual-gallery > *,
.annual-gallery.wp-block-gallery.has-nested-images figure.wp-block-image,
.annual-gallery.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image) {width: 100%; margin-bottom: 2rem;}
.annual-gallery img {border-radius: var(--rounded-10-20);}
.annual-gallery figcaption,
.annual-gallery.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	top: 100%; bottom: auto;
    text-shadow: none; background: transparent;
	color: var(--black); text-align: left;
    font-size: clamp(16px, 2vw, 18px); font-weight: 600;
    padding: 0; margin-top: .5rem;
}

@media screen and (min-width: 561px) {
	.annual-box .pc-view_sm { display: revert; }
}

/* 採用情報
-------------------------------------*/
/* FV */
.rec-top-hero__arch {
	width: min(100%, clamp(420px, 45vw, 600px));
	border-radius: var(--rounded-200) var(--rounded-200) 0 0;
}

.rec-top-hero__bubble {
	position: absolute;
	top: calc(-1 * clamp(6px,.8vw,12px));
	left: 0;
	width: clamp(160px, 19vw, 250px);
}

.rec-top-hero__phot,
.rec-top-hero__acc {position: absolute;}

.rec-top-hero__phot--lt {top: calc(20% - 15% * clamp(0, (100vw - 768px) / 830px, 1)); left: calc(5.6% + 5% * clamp(0, (100vw - 768px) / 816px, 1)); width: clamp(120px, 15.5vw, 256px);}
.rec-top-hero__phot--rt {top: clamp(4%, calc(30.5% - 9.2vw), 24%); right: clamp(3.9%, calc(13.5% - 6.2vw), 6.9%); width: clamp(135px, 17vw, 272px);}
.rec-top-hero__phot--lb {bottom: calc(-1 * (clamp(6%,8.25vw,8%))); left: calc(1.8% - 1% * clamp(0, (100vw - 768px) / 874px, 1)); width: clamp(130px, 15vw, 248px);}
.rec-top-hero__phot--rb {bottom: calc(-1 * clamp(6%,10vw,8%)); right: calc(6.6% + 10% * clamp(0, (100vw - 768px) / 840px, 1)); width: clamp(145px, 17vw, 254px);}

.rec-top-hero__acc--01 {top: clamp(11%, calc(30% - 9.2vw), 22%); left: clamp(2.5%, calc(80% - 77.2vw), 5.5%); width: clamp(60px, 8.25vw, 124px);}
.rec-top-hero__acc--02 {bottom: clamp(6%, calc(67% - 23.5vw), 30%); left: calc(1.8% + 17% * clamp(0, (100vw - 768px) / 820px, 1)); width: clamp(60px, 9vw, 134px);}
.rec-top-hero__acc--03 {top: 12%; right: calc(6% + 20% * clamp(0, (100vw - 768px) / 570px, 1)); width: clamp(55px, 7.5vw, 106px);}
.rec-top-hero__acc--04 {top: calc(50% + 6% * clamp(0, (100vw - 768px) / 220px, 1)); right: calc(1.7% + 3% * clamp(0, (100vw - 768px) / 710px, 1)); width: clamp(55px, 7.5vw, 105px); rotate: 10deg;}
.rec-top-hero__acc--05 {bottom: calc(8% - 22% * clamp(0, (100vw - 560px) / 330px, 1)); right: calc(1% + 2% * clamp(0, (100vw - 768px) / 850px, 1)); width: clamp(45px, 5.7vw, 88px);}

/* 働きやすさのポイント */
.rec-top-point__ribbon {width: clamp(240px, 40vw, 320px);}

.rec-top-point__ico {width: clamp(120px, 16.4vw, 200px);}

/* 募集要項 */
.rec-top-jobs__tbl {width: 96%;}
.rec-top-jobs__tbl > tbody > tr > th {width: 7.5em;}
.rec-top-jobs__tbl > tbody > tr > :is(th, td) {	padding: 0; }

.rec-top-jobs__ico {
	display: inline-block;
	width: 16px;
	margin-right: .4em;
}

.rec-top-jobs__more {margin-top: auto;}

.rec-top-jobs .link-btn__round {width: 200px;}

/* 研修制度・スキルアップ */
.rec-top-training {
	--rec-ribbon-width: clamp(56px, 4.75vw, 60px);
}
.rec-top-training__head {
	min-height: clamp(72px, 6.25vw, 80px);
	padding-left: var(--rec-ribbon-width);
}

.rec-top-training__ribbon {
	position: absolute;
	top: -8px;
	left: 1rem;
	width: var(--rec-ribbon-width);
	aspect-ratio: 75 / 104;
	background: no-repeat center / contain;
	color: var(--white);
}
.rec-top-training__ribbon--01 {background-image: url("../img/recruit/rec-ribbon-01.svg");}
.rec-top-training__ribbon--02 {background-image: url("../img/recruit/rec-ribbon-02.svg");}
.rec-top-training__ribbon--03 {background-image: url("../img/recruit/rec-ribbon-03.svg");}

.rec-top-training__dots {
	border: none;
	height: 4px;
	background-repeat: repeat-x;
	background-size: 15px 4px;
	background-position: left center;
}
.rec-top-training__dots--01 {background-image: radial-gradient(circle, var(--blue) 2px, transparent 2.5px);}
.rec-top-training__dots--03 {background-image: radial-gradient(circle, var(--light-green) 2px, transparent 2.5px);}


@media screen and (min-width: 1201px) {
	/* 働きやすさのポイント */
	.rec-top-point > div:not(:first-child)::before {
		--rec-point-line: 4px;
		content: "";
		position: absolute;
		left: calc(var(--rec-point-line) / -2);
		top: 0;
		bottom: 0;
		width: var(--rec-point-line);
		background-image: radial-gradient(circle, var(--light-gray) 2px, transparent 2.5px);
		background-size: var(--rec-point-line) 19px;
		background-repeat: repeat-y;
	}
}


/* 求人詳細
-------------------------------------*/
/* コンテンツ */
.rec-con__ttl .bg__green {border-radius: var(--rounded-5-10) var(--rounded-5-10) 0 0;}

.rec-con__tbl {width: 96%;}
.rec-con__tbl th {width: 135px; padding-left: clamp(.5rem, 1.5vw, 1rem);}

@media screen and (max-width: 768px) {
	/* 見出し */
	.rac-head__ttl .bd-l {border-left: none;}
}


/* お問い合わせ
-------------------------------------*/
input[type="email"], input[type="number"], input[type="search"], input[type="text"], input[type="tel"], input[type="url"], input[type="password"], textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
input[type="email"], input[type="number"], input[type="search"], input[type="text"], input[type="tel"], input[type="url"], input[type="password"], textarea, select {
    height: 38px;
    padding: 6px 10px;
    background-color: var(--white);
    border: 1px solid var(--light-gray);
    box-shadow: none;
    box-sizing: border-box;
    font-size: 16px;
	border-radius: 6px;
}
label:has(input[type="checkbox"], input[type="radio"]),
input[type="checkbox"], input[type="radio"] {cursor: pointer;}
input,textarea,select{margin-bottom: 0;}
textarea {
	width: 100%;
    min-height: 190px;
    padding-top: 6px;
    padding-bottom: 6px;
}

input[type="submit"],
input[type="reset"],
input[type="button"],
.btn-form-top {
	width: 200px;
	height: 50px;
	border: none;
	border-radius: 100px;
	font-size: 1.2em;
	font-weight: bold;
	transition: all .3s;
	cursor: pointer;
	margin: .25rem .5rem;
}
input[type="submit"],.btn-form-top {
	background-color: var(--main-color);
	border: 1px solid var(--main-color);
	color: var(--white);
}
input[type="reset"],input[type="button"]{
	background-color: var(--deep-dark-gray);
	border: 1px solid var(--deep-dark-gray);
	color: var(--white);
}
input[type="submit"]:hover,.btn-form-top:hover {
	background-color: var(--white);
	color: var(--main-color);
}
input[type="reset"]:hover,input[type="button"]:hover {
	background-color: var(--white);
	color: var(--deep-dark-gray);
}
.btn-form-top {
	width: 240px;
    max-width: 100%;
	display: flex;
    justify-content: center;
    align-items: center;
	margin-left: auto;
	margin-right: auto;
}

.form-contact th {
	vertical-align: text-top;
	text-align: right;
	font-size: clamp(16px, 2vw, 18px);
	padding-right: 2rem;
	padding-top: 2rem;
}
.form-mult input {margin-bottom: .5rem;}

.form-input__name {max-width: 200px;}
.form-input__age {max-width: 60px;margin-right: .5rem;}
.form-input__wide {width: 100%;}

/* SEO用 */
fieldset {
	padding: 0;
	border: none;
}
.visually-hidden {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* 求人応募
-------------------------------------*/
.rec-flow__item:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 99.9%;
	transform: translateY(-50%);
	width: clamp(18px, 1.4vw, 27px);
	aspect-ratio: 27 / 26;
	background-color: var(--sub-color_01);
	clip-path: polygon(0 0, 0 100%, 100% 50%);
}

/* 応募フォーム */
.rec-form ::placeholder {color: var(--gray);}

.rec-form table :is(th,td) {
	--tbl-th-pt: .5rem; --tbl-td-pb: .5rem;
	padding-top: 1rem; padding-bottom: 0;
}
.rec-form__tbl > :is(thead, tbody, tfoot) > tr > th {padding-top: 1.5rem;}

.rec-form__ta-s {min-height: 100px;}
.rec-form__ta-m {min-height: 130px;}

.rec-form__w-s {width: clamp(90px, 12vw, 100px);}
.rec-form__w-m {width: clamp(140px, 20vw, 200px);}
.rec-form__w-l {width: clamp(200px, 32vw, 390px);}
.rec-form__w-full {width: 100%;}
.rec-form__w-zip {width: 140px;}

.rec-form-add :is(th, td) {padding: 0 0 .5rem;}

/* チェックリスト */
.rec-form__checks {display: block;}
.rec-form__checks > .wpcf7-list-item {display: block; margin-bottom: .25rem; margin-left: 0;}
/*.rec-form__checks > li {margin-bottom: .5rem;}*/

/* チェック/ラジオと文字の間隔 */
.rec-form :is(input[type="checkbox"], input[type="radio"]) {margin-right: .4em;}

/* 横並びの選択肢（性別等）の間隔 */
.rec-form td label + label {margin-left: 1.5rem;}

/* 確認チェック（丸型） */
.rec-form__confirm {
	appearance: none;
	width: 18px;
	aspect-ratio: 1 / 1;
	border: 1px solid var(--light-gray);
	border-radius: 50%;
	background-color: var(--white);
	vertical-align: -3px;
	margin-right: .5rem;
}
.rec-form__confirm:checked {
	background-color: var(--main-color);
	border-color: var(--main-color);
}

.rec-form__file-input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

button.wpcf7-submit:disabled {
	--link-bgc: var(--white);
    --link-txtc: var(--black);
    border-color: var(--black);
}
button.wpcf7-submit:disabled:hover {
    --link-hv-txtc: var(--black);
}

@media screen and (max-width: 768px) {
	.rec-flow__item:not(:last-child)::after {
		top: 99.9%;
		left: 50%;
		transform: translate(-50%, 0) rotate(90deg);
	}
}

/* お知らせ
-------------------------------------*/
.width-120 {width: 120px;}
.flex.pc-view_md {display: flex;}

/* 詳細 */
.news-grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 22vw, 340px); }

[class*="news-badge__"] { background-color: var(--news-badge-bg); }
.news-badge__new { --news-badge-bg: var(--pink); }
.news-badge__green { --news-badge-bg: var(--yellow-green); }
.news-badge__orange { --news-badge-bg: #ff931e; }
.news-badge__blue { --news-badge-bg: #3fa9f5; }

.link-btn__prv .link-tri {margin-left: .5rem; margin-right: 0;}
.link-btn__prv .link-tri::after {
	left: 0; right: auto;
	clip-path: polygon(100% 0, 0 50%, 100% 100%);
}

.news-side__list li {margin-bottom: 1rem;}
.news-side__list li:last-of-type {margin-bottom: 0;}


@media screen and (max-width: 960px) {
	/* 詳細 */
	.news-grid { grid-template-columns: minmax(0, 1fr); }
}

@media screen and (max-width: 768px) {
	/* 一覧 */
	.news-arc-list .bd-l {border-left: none; border-top: var(--bd-w, 1px) solid var(--bd-c, currentColor);}
	
	.flex.pc-view_md {display: none;}
	.flex.sp-view_md {display: flex;}
}

@media screen and (max-width: 560px) {
	[class^="link-btn__"].pc-view_sm, [class*=" link-btn__"].pc-view_sm {display: none;}
}


/* その他
-------------------------------------*/
/* ページトップへ戻るボタン */
#page-top {
	position: fixed;
	right: 15px;
	bottom: -70px;
	z-index: 4;
	transition: bottom 0.3s ease-in-out;
}

#page-top.show {
    bottom: 90px; /* 表示時の位置 */
}

#page-top a {
	display: block;
	width: 50px;
	font-weight: bold;
	background-color: var(--main-color);
	color: var(--white);
	text-align: center;
	padding: 15px 5px;
	border-radius: 5px;
	transition: background-color 0.3s;
}

