@charset "utf-8";
/*
Theme Name: 野市中央病院テーマ
Author: BASARA
Version: 1.0
*/

*,
*:before,
*:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	backface-visibility: hidden;
}
*:before,
*:after {
	pointer-events: none;
}
:root {
	--base-font-color: #000;
	--base-bg-color: #fff;
	--main-color: rgb(var(--main-color-rgb));
	--main-color-rgb: 46 145 120; /* RGB値。透過などで使用 */
	--main-color-deep: #0a4c11;
	--main-color-light: rgb(var(--main-color-light-rgb));
	--main-color-light-rgb: 91 147 5; /* RGB値。透過などで使用 */
	--link-color: #000;
	--accent-color: #11986a;
	--attention-color: #cc5176;
	--ivory-color: #fffeef;
	--pink-color: #de6795;
	--beige-color: #faf6ef;
	--gray-color: #ccc;
	--small-contents-width: 800px;
	--main-contents-width: 1200px;
	--large-contents-width: 1400px;
	--thin-font-weight: 300;
	--normal-font-weight: 400;
	--bold-font-weight: 700;2
	--black-font-weight: 900;

	--radius: 10px; /* border-radiusのベース値 */
	--trans: 0.3s ease; /* 共通のtransition設定 */
}
html {
	margin: 0;
	padding: 0;
}
body {
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
	color: var(--base-font-color);
	font-size: 16px;
	font-weight: var(--normal-font-weight);
	line-height: 1.8;
	overflow-wrap: anywhere; /* 収まらない場合に折り返す */
	word-break: normal; /* 単語の分割はデフォルトに依存 */
	line-break: strict; /* 禁則処理を厳格に適用 */
	margin: 0;
	padding: 0;
}
div,
p,
ul,
ul li,
dl,
dt,
dd {
	font-size: 1em;
	list-style: none;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
img,
video,
object {
	max-width: 100%;
	height: auto;
	border: none;
}
img {
	display: block;
	image-rendering: -webkit-optimize-contrast;
}
h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: 1em;
	line-height: 1;
	letter-spacing: 0.025em;
	padding: 0;
	margin: 0;
}
address {
	font-style: normal;
}
a {
	color: var(--link-color);
	text-decoration: none;
	transition: all ease 0.3s;
}
a:hover {
	opacity: 0.8;
	text-decoration: underline;
}
a[href^="tel:"] {
	text-decoration: none;
	pointer-events: none;
	text-emphasis: none !important;
}
a[href^="fax:"] {
	text-decoration: none;
	pointer-events: none;
}
.pc {
	display: inherit;
}
.tb {
	display: none;
}
.mb {
	display: none;
}
@media only screen and (max-width: 768px) {
	.pc {
		display: none;
	}
	.tb {
		display: block;
	}
	.mb {
		display: none;
	}
}
@media only screen and (max-width: 468px) {
	body {
		font-size: 15px;
		min-width: 375px;
	}
	a[href^="tel:"] {
		pointer-events: all;
	}
	.pc {
		display: none;
	}
	.tb {
		display: none;
	}
	.mb {
		display: block;
	}
}

/* =========================================================================================
Header
=========================================================================================*/
#header {
	position: fixed;
	top: 0;
	height: 100px;
	margin: 0;
	padding: 0;
	background: #fff image-set(url(images/common/header_bg.webp) 1x type("image/webp"), url(images/common/haeder_bg@2x.webp) 2x type("image/webp")) no-repeat left center / auto 100%;
	border-end-end-radius: 60px;
	filter: drop-shadow(2px 2px 10px rgb(0 0 0 / 0.05));
	z-index: 100;
	transition: 0.5s;
}
#header .inner {
	width: 100%;
	max-width: var(--large-contents-width);
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0;
	padding-inline: 20px 40px;
	position: relative;
}
#header .logo {
	height: 100%;
	padding-block: 20px;
}
#header .logo img {
	max-width: unset;
	width: auto;
	height: 100%;
}
/*globalnavi*/
#header #g-navi-area {
	width: 100%;
	height: 100%;
	/* viewport:980-1400px  0-100px */
	margin-left: clamp(0rem, calc(-14.583rem + 23.81vw), 6.25rem);
}
#header nav {
	display: contents;
}
#header #g-navi-area a {
	text-decoration: none;
}
#header #g-navi-list {
	width: 100%;
	height: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: right;
}
#header .g-navi-item {
	position: relative;
	/* viewport:980-1400px  14-17px */
	font-size: clamp(0.875rem, calc(0.438rem + 0.714vw), 1.063rem);
}
#header .g-navi-item:after {
	content: "";
	position: absolute;
	display: block;
	width: calc(100% - 1.5em);
	height: 2px;
	background-color: currentColor;
	inset: calc(50% + 1em) auto auto 50%;
	translate: -50% -50%;
	clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
	transition: clip-path var(--trans);
}
#header .g-navi-item:hover {
	color: var(--main-color-deep);
}
#header .g-navi-item:hover:after {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
#header .g-navi-item > a {
	/* viewport:980-1400px  8-16px */
	padding-inline: clamp(0.5rem, calc(-0.667rem + 1.905vw), 1rem);
	color: inherit;
}
#header .g-navi-item:has(.mega) {
	padding-block: calc((100px - 1lh) / 2);
}
#header .btns {
	display: contents;
}
#header .btn {
    padding-inline: 0;
	/* viewport:980-1400px  8-20px */
	margin-left: clamp(0.5rem, calc(-1.25rem + 2.857vw), 1.25rem);
}
#header .btn a {
	padding-block: 0.25em;
	min-width: unset;
	/* viewport:980-1400px  14-17px */
	font-size: clamp(0.875rem, calc(0.438rem + 0.714vw), 1.063rem);
    gap: 0.5em;
}
#header .btn.deep a {
	background-color: var(--main-color-deep);
}
#header .btn.light a {
	background-color: var(--main-color-light);
}
/* hover */
#header .btn a:hover {
	background-color: #fff;
}
#header .mega {
	position: absolute;
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(4, auto);
	gap: 5px 40px;
	padding: 30px;
	background-color: #fff;
	border-radius: 20px;
	text-wrap: nowrap;
	filter: drop-shadow(2px 2px 10px rgb(0 0 0 / 0.1));
	inset: 100% auto auto 50%;
	translate: -50% 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity var(--trans), visibility var(--trans);
}
#header .mega:before {
	content: "";
	position: absolute;
	display: block;
	width: 2rem;
	height: auto;
	aspect-ratio: 3/2;
	background-color: #fff;
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
	inset: auto auto 100% 50%;
	translate: -50% 0;
}
#header .mega a {
	display: flex;
	align-items: center;
	gap: 0.75em;
	width: 100%;
	padding-block: 0.3125em; /* 5px */
	background: repeating-linear-gradient(90deg, #c6c6c6, #c6c6c6 4px, transparent 4px, transparent 6px) repeat-x left bottom / 100% 1px;
}
#header .mega a:before {
	content: "";
	display: block;
	width: 0.75em;
	height: auto;
	aspect-ratio: 1;
	background-color: var(--attention-color);
	mask: url(images/common/icon_btn.svg) no-repeat center / contain;
	-webkit-mask: url(images/common/icon_btn.svg) no-repeat center / contain;
	transition: translate var(--trans);
}
/* hover */
#header .g-navi-item:has(.mega):hover .mega,
#header .g-navi-item .mega:hover {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
#header .mega a:hover:before {
	translate: 0.5em 0;
}
#header .g-navi-item.mobile,
#header .openbtn {
	display: none; /*PCでは非表示*/
}
@media only screen and (max-width: 1400px) {
	#header {
		width: 100%;
	}
	#header .inner {
		padding-inline: 1rem 1.25rem;
	}
	#header .logo {
		padding-block: 24px;
	}
	#header #g-navi-area {
		margin-inline: auto 0;
	}
    #header .btn a {
        padding-inline: 1em;
    }
}
@media only screen and (max-width: 980px) {
	#header {
		height: 70px;
		padding: 0;
	}
	#header .inner {
		justify-content: space-between;
		padding-right: 50px;
	}
	#header .logo {
		width: 150px;
		padding-block: 12px;
	}
	/* HAMBURGER MENU */
	#header .openbtn {
		color: #fff;
		font-size: 10px;
		line-height: 1;
		width: 70px;
		height: 70px;
		background: var(--main-color);
		cursor: pointer;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 8px;
		padding-top: 2px;
		position: fixed;
		top: 0;
		right: 0;
		z-index: 9999;
		transition: 0.3s;
	}
	#header .openbtn span {
		width: 55%;
		height: 3px;
		background: #fff;
		border-radius: 10px;
		transform-origin: 50% 40%;
		transition: 0.5s;
	}
	#header .openbtn.active {
		gap: 0;
		padding-top: 12px;
	}
	#header .openbtn.active span:nth-of-type(1) {
		display: none;
	}
	#header .openbtn.active span:nth-of-type(2) {
		width: 55%;
		transform: rotate(32.5deg);
	}
	#header .openbtn.active span:nth-of-type(3) {
		width: 55%;
		transform: rotate(-32.5deg) translateY(-2px);
		margin-bottom: 15px;
	}
	#header #g-navi-area {
		display: initial;
		width: 350px !important;
		height: 100vh;
		background: var(--main-color);
		border-radius: 0;
		padding: 0;
		position: fixed;
		z-index: 99;
		top: 70px;
		right: -120%;
		transition: all 0.5s;
	}
	#header #g-navi-area.panelactive {
		/*アクティブクラスがついたら位置を0に*/
		right: 0;
	}
	#header #g-navi-area #g-navi-list {
		/*ナビの数が増えた場合縦スクロール*/
		width: 100%;
		height: 100vh;
		display: flex;
		flex-wrap: nowrap;
		flex-direction: column;
		align-items: start;
		gap: 0;
		padding: 10px 30px 125px;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
		position: relative;
		z-index: 999;
	}
    #header .btn,
	#header .g-navi-item,
    #header .g-navi-item.mobile {
        font-size: unset;
        display: block;
		width: 100%;
		border-bottom: 1px solid #fff;
        margin: 0;
        position: relative;
	}
    #header .btn.deep a,
    #header .btn.light a {
        background-color: transparent;
    }
    #header .btn:after,
	#header .g-navi-item:after {
        content: "";
        position: absolute;
        display: block;
        width: 0.75em;
        height: auto;
        aspect-ratio: 1;
        background-color: #FFF;
        mask: url(images/common/icon_btn.svg) no-repeat center / contain;
        -webkit-mask: url(images/common/icon_btn.svg) no-repeat center / contain;
        translate: -50% -50%;
        inset: 50% 0 0 calc(95% - 0.25em);
        clip-path: none;
        transition: translate var(--trans);
	}
    #header .btn,
	#header .g-navi-item:hover {
		color: #fff;
	}
    #header .btn:hover:after,
	#header .g-navi-item:hover:after {
       translate: 0.25em -50%;
	}
    #header .btn a,
	#header .g-navi-item > a {
        font-size: 1.25em;
		text-align: left;
		display: block;
		padding: 0.5em 1em 0.5em 0.25em;
        border: none;
		color: #fff;
	}
    #header .btn a:hover,
	#header .g-navi-item > a:hover {
        opacity: 0.8;
	}
	#header .g-navi-item:has(.mega){
		padding: 0;
        position: relative;
	}
    #header .g-navi-item:has(.mega)::before,
    #header .g-navi-item:has(.mega)::after{
        display: none;
    }
	#header .mega {
		position: static;
		display: flex;
		flex-direction: column;
		gap: 0;
		padding: 20px;
        margin-bottom: 2em;
		background-color: #328562;
		border-radius: 10px;
		text-wrap: wrap;
		filter: none;
		inset: 0;
		translate: 0;
		opacity: 1;
		visibility: visible;
		pointer-events: all;
		transition: opacity var(--trans), visibility var(--trans);
	}
	#header .mega:before {
		display: none;
	}
	#header .mega a {
        color: #FFF;
        font-size: 1.0rem;
		display: flex;
		align-items: center;
		gap: 1.5em;
		width: 100%;
		background: none;
        position: relative;
	}
	#header .mega a:before {
		content: "";
		display: block;
		width: 0.5em;
		height: auto;
		aspect-ratio: 1;
		background-color: #328562;
		mask: url(images/common/icon_btn.svg) no-repeat center / contain;
		-webkit-mask: url(images/common/icon_btn.svg) no-repeat center / contain;
        translate: 0.25em 0;
		transition: translate var(--trans);
	}
    #header .mega a:after{
        content: "";
        width: 1em;
        aspect-ratio: 1 / 1;
        background: #FFF;
        border-radius: 100px;
        position: absolute;
        top:50%;
        left: 0;
        translate: 0 -50%;
        transition: translate var(--trans);
        z-index: -1;
    }
	/* hover */
	#header .g-navi-item:has(.mega):hover .mega,
	#header .g-navi-item .mega:hover {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
	#header .mega a:hover:before{
		translate: 0.75em 0;
	}
    #header .mega a:hover::after{
		translate: 0.5em -50%;
	}
}
@media only screen and (max-width: 468px) {
	#header #g-navi-area {
		width: 100% !important;
		right: -150%;
	}
	#header #g-navi-area #g-navi-list {
		min-width: 375px;
		padding: 30px 45px 120px;
	}
}

/* =========================================================================================
Footer
=========================================================================================*/
#footer {
	padding-block: 0;
	position: relative;
}
#footer .inner{
    max-width: 1200px;
}
/* info */
#footer .info {
	display: grid;
	grid-template-columns: 380px 1fr;
	align-items: center;
	gap: 0 max(1rem, 4.1666vw); /* 1920px:80px */
	/* 40pxまたはコンテンツ幅の左側にある余白のうち、大きい方 */
	padding-left: max(40px, calc((100% - var(--main-contents-width)) / 2));
	min-height: 400px;
	color: #fff;
	background-color: var(--main-color);
}
#footer .logo a {
	display: block;
	width: fit-content;
}
#footer address {
	display: flex;
	flex-wrap: wrap;
	align-items: start;
	justify-content: start;
	gap: 0.5rem 1rem;
	margin-top: 1.1765em; /* 20px */
	font-size: 1.0625em;
}
#footer address a[href^="tel"] {
	font-size: 2rem;
	font-weight: bold;
	color: inherit;
	line-height: 1.2;
}
#footer address a[href^="tel"]:before {
	content: "";
	display: inline-block;
	width: 0.75em;
	height: auto;
	aspect-ratio: 1;
	background: url(images/common/icon_tel_wh.svg) no-repeat center / contain;
}
#footer address + a[href^="tel"] {
	display: block;
	margin-top: 38px;
}

#footer .image {
	width: 100%;
	height: 100%;
}
#footer .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-start-start-radius: 12.5rem;
}

/* footer-navi */
#footer .nav_wrap {
	background-color: var(--beige-color);
}
#footer .f-navi {
	--border: solid 1px #cbc8c4;

	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: min(50px, 2.6041vw); /* 1920px:50px */
	width: 100%;
	padding-block: 40px 50px;

	& :is(ul:not([class]) a, ul.mega li:not(:has(a))) {
		padding: 0.5556em; /* 10px */
		font-size: 1.125em;
		font-weight: bold;
		border-bottom: var(--border);
	}
	& ul:not([class]) {
		grid-column: span 1;
	}
	& ul:not([class]) li + li {
		margin-top: 1rem;
	}
	& ul:not([class]) a {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 0.5em;
	}
	& ul:not([class]) a:after {
		content: "";
		display: block;
		width: 1em;
		height: 1em;
		background-color: var(--main-color);
		mask: url(images/common/icon_btn.svg) no-repeat center / contain;
		-webkit-mask: url(images/common/icon_btn.svg) no-repeat center / contain;
		transition: translate var(--trans);
	}
	& ul.mega {
		grid-column: span 2;
		display: grid;
		grid-template-columns: auto auto 1fr;
		grid-auto-rows: min-content;
		gap: 1em clamp(1rem, calc(-0.458rem + 1.944vw), 1.875rem); /* viewport:1200-1920px  16-30px */
	}
	& ul.mega li:not(:has(a)) {
		grid-column: 1/-1;
	}
	& ul.mega a {
		--before-size: 1.25em;

		position: relative;
		display: flex;
		align-items: center;
		gap: 0.5em;
	}
	& ul.mega a:before {
		content: "";
		display: block;
		width: var(--before-size);
		height: auto;
		aspect-ratio: 1;
		background-color: #fff;
		border-radius: 100%;
	}
	& ul.mega a:after {
		content: "";
		display: block;
		position: absolute;
		width: 0.675em;
		height: auto;
		aspect-ratio: 1;
		background-color: var(--attention-color);
		mask: url(images/common/icon_btn.svg) no-repeat center / contain;
		-webkit-mask: url(images/common/icon_btn.svg) no-repeat center / contain;
		inset: 50% auto auto calc(var(--before-size) / 2);
		translate: -50% -50%;
	}
}
/*copyright*/
#footer .copyright {
	margin-top: 3.0769em; /* 40px */
	font-size: 0.8125em; /* 13px */
}
@media (any-hover: hover) {
	#footer .logo a:hover {
		opacity: 1;
	}
	#footer .f-navi ul:not([class]) a:hover:after {
		translate: 0.5em 0;
	}
}
@media (any-hover: none) {
	#footer .logo a:active {
		opacity: 1;
	}
	#footer .f-navi ul:not([class]) a:active:after {
		translate: 0.5em 0;
	}
}

@media only screen and (max-width: 1280px) {
	#footer .f-navi {
		grid-template-columns: 1fr 1fr minmax(200px, 0.75fr) auto;
	}
	#footer .f-navi ul.mega {
		grid-template-columns: 1fr;
	}
}
@media only screen and (max-width: 980px) {
	#footer .f-navi ul.mega {
		grid-template-columns: 1fr;
	}
}
@media only screen and (max-width: 768px) {
	#footer {
		background-color: var(--main-color);
	}
    #footer .nav_wrap{
        display: none;
    }
    #footer .info{
        display: block;
        padding: 50px 20px;
    }
	#footer .info .box{
        display: flex;
        flex-direction: column;
		align-items: center;
        justify-content: center;
        margin: auto;
	}
	#footer address {
		max-width: 400px;
		justify-content: center;
	}
    #footer .image {
		display: none;
	}
}
@media only screen and (max-width: 468px) {
    #footer {
		padding-bottom: 100px;
    }
}

/* =========================================================================================
Page Top
=========================================================================================*/
#page-top {
	display: none; /*最初は非表示*/
	position: fixed;
	z-index: 99;
	bottom: 1.5%;
	right: 1.5%;
	width: 159px;
    aspect-ratio: 318 / 556;
}
#page-top a{
    display: block;
}
#page-top a:hover {
	opacity: 0.8;
}

@media only screen and (max-width: 768px) {
        #page-top {
        width: 106px;
            aspect-ratio: 212 / 338;
    }
}
@media only screen and (max-width: 468px) {
        #page-top {
        width: 90px;
    }
}

/* =========================================================================================
Layout
=========================================================================================*/
#wrapper {
	padding: 0;
	margin: 0 auto;
	position: relative;
	overflow: hidden;
}
#contents {
    padding-block: 0;
	margin: 0 auto;
	position: relative;
}
#main {
	margin: 0;
	padding: 0;
}
section {
	position: relative;
	padding-block: 100px;
	margin: 0;
}
.inner {
	max-width: var(--main-contents-width);
	width: calc(100% - 40px - 40px); /*左右の余白40pxずつ*/
	margin: 0 auto;
	position: relative;
}
@media only screen and (max-width: 980px) {
	#contents {
		padding-block: 70px 0;
	}
}
@media only screen and (max-width: 768px) {
	section {
		padding-block: 75px;
	}
	.inner {
		width: calc(100% - 30px - 30px);
	}
}
@media only screen and (max-width: 468px) {
	section {
		padding-block: 50px;
	}
	.inner {
		width: calc(100% - 20px - 20px);
	}
}

/*sidebar*/
#contents:has(#sidebar) /*#sidebarがあるとき*/ {
	width: calc(100% - 40px - 40px);
	max-width: var(--main-contents-width);
	display: grid;
	grid-template-columns: minmax(200px, 10%) 1fr;
	gap: 5%;
	margin: 0 auto;
}
#contents:has(#sidebar) #main {
	min-width: 0; /*はみ出し対策*/
	order: 2;
}
#contents:has(#sidebar) #main .inner {
	width: 100%;
}
#sidebar {
	padding-block: 0 50px;
	margin: 0;
	order: 1;
}
#sidebar h2 {
	font-size: 1.25rem;
	border-bottom: 1px solid;
	padding-block: 0.5em;
	margin-bottom: 0.5em;
}
#sidebar nav {
	margin-bottom: 50px;
}
#sidebar .banner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	align-items: start;
	gap: 5%;
}
#sidebar .banner a {
	display: block;
}
@media only screen and (max-width: 768px) {
	#contents:has(#sidebar) /*#sidebarがあるとき*/ {
		width: 100%;
		display: flex;
		flex-direction: column;
		gap: 0;
	}
	#contents:has(#sidebar) #main {
		order: 1;
	}
	#contents:has(#sidebar) #main .inner,
	#sidebar {
		width: calc(100% - 30px - 30px);
	}
	#sidebar {
		order: 2;
		margin-inline: auto;
	}
}
@media only screen and (max-width: 468px) {
	#contents:has(#sidebar) #main .inner,
	#sidebar {
		width: calc(100% - 20px - 20px);
	}
}

/* =========================================================================================
Btn / WP-block-button
=========================================================================================*/
.btn {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
}
.wp-block-buttons {
	display: flex;
	align-items: stretch;
}
.btn a,
.wp-block-button a {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1em;
	color: #fff;
	font-size: 1.0625rem;
	text-align: center;
	padding: 0.75em 1.5em;
	background: var(--main-color);
    /* border: 1px solid ; */
	border-radius: 100vmax;
	position: relative;
	transition: var(--trans);
}
.btn a {
	min-width: 200px;
	/* padding: 0.5em 2em 0.5em 1.25em; */
}
.wp-block-button a {
	height: 100%;
	min-width: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	/* padding: 0.5em 2.5em 0.5em 1.25em; */
}
.btn a::after,
.wp-block-button a::after {
	content: "";
	background: currentColor;
	width: 1em;
	aspect-ratio: 1;
	mask: url(images/common/icon_btn.svg) no-repeat center / contain;
	-webkit-mask: url(images/common/icon_btn.svg) no-repeat center / contain;
	transition: var(--trans);
}
.btn a[href$=".pdf"]::after,
.wp-block-button a[href$=".pdf"]::after {
	mask-image: url(images/common/icon_download.svg);
	-webkit-mask-image: url(images/common/icon_download.svg);
}

/* 別ボタン */
.btn.subBtn a {
	justify-content: start;
	min-width: auto;
	height: fit-content;
	text-align: start;
	padding: 0;
	background: transparent !important;
	color: var(--base-font-color);
	border: none !important;
	border-radius: 0;
	text-decoration: underline;
}
.btn.subBtn a::after {
	width: 2.75rem;
	height: 2rem;
	background: var(--main-color) url(images/common/icon_btn.svg) no-repeat center / 1em;
	mask: none;
	-webkit-mask: none;
	border-radius: 100vmax;
}

@media (any-hover: hover) {
	.btn a:hover,
	.wp-block-button a:hover {
		color: var(--main-color);
		text-decoration: none;
		opacity: 1;
		border: 1px solid var(--main-color);
		background-color: #f7ffed;
	}
	.btn a:hover::after,
	.wp-block-button a:hover::after {
		translate: 0.5em 0;
	}
	.btn a[href$=".pdf"]:hover::after,
	.wp-block-button a[href$=".pdf"]:hover::after {
		translate: unset;
	}
}
@media (any-hover: none) {
	.btn a:active,
	.wp-block-button a:active {
		color: var(--base-font-color);
		background-color: #fff;
		text-decoration: none;
		opacity: 1;
	}
	.btn a:active::after,
	.wp-block-button a:active::after {
		translate: 0.5em 0;
	}
}

/*wp-block-button*/
.wp-block-buttons + .wp-block-buttons {
	margin-top: 0.5em;
}

@media only screen and (max-width: 768px) {
	.btn a.large {
		min-width: 100%;
	}
}
@media only screen and (max-width: 468px) {
	.btn {
		justify-content: center !important;
	}
	.btn a {
		min-width: 80% !important;
	}
}

/* =========================================================================================
Breadcrumbs
=========================================================================================*/
.breadcrumbs {
	padding-block: 1lh;
	font-size: 0.875em;
	color: var(--base-font-color);
	text-align: left;
	line-height: 1.2;
	border-top: solid 1px #a9cfbd;
}
.breadcrumbs span[typeof="ListItem"] + span[typeof="ListItem"] {
	position: relative;
	margin-left: 3em;
	color: var(--main-color);
}
.breadcrumbs span[typeof="ListItem"] + span[typeof="ListItem"]:before {
	content: "";
	position: absolute;
	display: block;
	width: 0.75em;
	aspect-ratio: 1;
	background-color: var(--main-color);
	mask: url(images/common/arrow.svg) no-repeat center / contain;
	-webkit-mask: url(images/common/arrow.svg) no-repeat center / contain;
	inset: 50% calc(100% + 1em) auto auto;
	translate: 0 -50%;
}
.breadcrumbs a {
	/* position: relative;
	color: var(--base-font-color); */
}
.breadcrumbs a.home {
	/* padding-left: 1.5em; */
}
.breadcrumbs a::after {
	/* content: "";
	width: 0.75em;
	aspect-ratio: 1 /1;
	background: url(images/common/arrow.svg) no-repeat;
	background-size: contain;
	position: absolute;
	top: 50%;
	right: 0.2em;
	translate: 0 -40%; */
}
@media only screen and (max-width: 768px) {
	.breadcrumbs {
		font-size: 0.9rem;
	}
}
@media only screen and (max-width: 468px) {
	.breadcrumbs {
		font-size: 0.8rem;
	}
}

/* =========================================================================================
Post list
=========================================================================================*/
/*common*/
.post-list {
	width: 100%;
	margin: 0;
	padding: 0;
}
.post-list ul {
	width: 100%;
	margin: 0;
	padding: 0;
}
.post-list ul a {
	color: var(--base-font-color);
	display: inline-block;
}
.post-list ul a:hover {
	text-decoration: none;
}
.post-list ul li {
	width: 100%;
}
.post-list .no-post {
	text-align: center;
	display: block;
	padding: 10vh 1em;
}

/*column*/
.post-list.column ul {
	display: grid;
	/* margin-bottom: 20px; */
}
.post-list.column ul li {
	margin-bottom: 1.25rem;
	padding: 1.25rem;
	background-color: var(--beige-color);
	border-radius: var(--radius);
}
.post-list.column ul li:last-child {
	margin-bottom: 0;
}
.post-list.column ul li article {
	display: grid;
	grid-template:
		"date title" auto
		"date content" 1fr / 6.75rem 1fr;
	align-items: start;
	justify-content: left;
	gap: 1rem 2rem;
}
.post-list.column ul li article > p {
	grid-area: content;
	display: -webkit-box;
	line-clamp: 3;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}
.post-list.column .date {
	grid-area: date;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0.625em 0.875em;
	color: var(--base-font-color);
	background-color: var(--base-bg-color);
	border-radius: calc(var(--radius) * 0.8);
}
.post-list.column .date hr {
	margin-block: 0;
	background-color: #f0dab4;
}
.post-list.column .date_md {
	font-size: 1.125rem;
}
.post-list.column .title {
	grid-area: title;
	font-size: 1rem;
	font-weight: var(--nomal-font-weight);
	line-height: 1.5;
}
.post-list.column .title a {
	text-decoration: underline;
	font-weight: bold;
}
.post-list.column .title a:hover {
	text-decoration: none;
}
@media only screen and (max-width: 768px) {
	.post-list.column ul li article {
		display: flex;
		flex-wrap: wrap;
		gap: 0.5em 1em;
	}
	.post-list.column .date {
		width: auto !important;
		flex-direction: row;
		gap: 0.25em;
		padding: 0.25em 0.75em;
	}
	.post-list.column .date hr {
		display: none;
	}
	.post-list.column .date_y,
	.post-list.column .date_md {
		font-size: 1rem;
	}
	.post-list.column .title {
		width: 100% !important;
	}
}
@media only screen and (max-width: 468px) {
}

/* row */
.post-list.row ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 30px;
	margin-bottom: 50px;
}
.post-list.row li {
	padding: 1em;
	border: 1px solid;
}
.post-list.row li:only-child {
	max-width: 380px;
}
.post-list.row li article {
	display: flex;
	flex-direction: column;
	align-items: start;
	gap: 10px;
}
.post-list.row .thumbnail {
	border: 1px solid;
	position: relative;
}
.post-list.row .thumbnail img {
	width: 100%;
	display: block;
	object-fit: cover;
	aspect-ratio: 3 / 2;
}
.post-list.row .thumbnail .new {
	color: #fff;
	font-size: small;
	background: var(--main-color);
	padding: 2px 10px 0;
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 10;
}
.post-list.row .date {
	width: 100%;
}
.post-list.row .title {
	font-size: 1rem;
	font-weight: var(--bold-font-weight);
	line-height: 1.5;
}

@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 468px) {
}

/* =========================================================================================
Archive-Page
=========================================================================================*/
.archive-content .post-list {
	border-top: none;
	border-bottom: none;
	padding: 0;
}

/*pagination*/
.pagination .page-numbers {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 20px;
	margin-block: 25px;
}
.pagination .page-numbers li {
	margin: 0;
}
.pagination .page-numbers li::before {
	display: none;
}
.pagination .page-numbers li:first-child {
	flex-grow: 2;
}
.pagination .page-numbers li:first-child span {
	float: right;
}
.pagination .page-numbers li:first-child a {
	float: none;
}
.pagination .page-numbers li:last-child {
	flex-grow: 2;
}
.pagination .page-numbers li:last-child a {
	float: right;
}
.pagination .page-numbers li a,
.pagination .page-numbers li span,
.pagination .page-numbers li .current {
	color: #fff;
	line-height: 1;
	width: 50px;
	aspect-ratio: 1 / 1;
	background: var(--main-color);
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 100px;
	border: 1px solid #000;
	padding: 0.25em 1em;
}
.pagination .page-numbers li .current {
	color: var(--base-font-color);
	background: #fff;
}
.pagination .page-numbers li .prev,
.pagination .page-numbers li .next {
	color: #fff;
	background: var(--main-color);
	padding: 0;
}
.pagination .page-numbers li a:hover {
	text-decoration: none;
}

@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 468px) {
}


/* =========================================================================================
Archive
=========================================================================================*/
body.archive .archive-content section {
	padding-block: 0;
	padding-bottom: 100px;
}
body.archive .archive-content .title a {
	font-weight: bold;
}
body.archive .archive-content .title a:hover {
	text-decoration: none;
}

/* =========================================================================================
Single-Page
=========================================================================================*/
body.single .breadcrumbs,body.archive .breadcrumbs {
	border-top: none;
	border-bottom: solid 1px #a9cfbd;
}
body.single .post-list.column ,body.archive .post-list.column {
	width: min(90%,900px);
	margin: 4.15rem auto 1.25rem;
	padding: 1.25rem;
	background-color: var(--beige-color);
	border-radius: var(--radius);
}
body.single .post-list.column header .inner {
	display: grid;
	grid-template:
		"date title" auto
		"date content" 1fr / 6.75rem 1fr;
	align-items: start;
	justify-content: left;
	gap: 1rem 2rem;
}
body.single section {
	padding-block: 0;
	padding-bottom: 100px;
}
body.single .entry-header {
	position: relative;
}
body.single .entry-header .inner {
	display: flex;
	flex-wrap: wrap;
	gap: 0 20px;
	align-items: center;
	padding-block: 1em;
}
body.single .entry-header .date {
	text-align: left;
	display: inline-block;
}
body.single .entry-header .icon {
	display: flex;
	align-items: start;
	justify-content: left;
	flex-wrap: wrap;
	gap: 5px;
	padding: 1em 0;
}
body.single .post-list.column .date_md, body.single .post-list.column .date_y {
	text-align: center;
}
body.single .entry-header .title {
	font-size: 1.25rem;
	text-align: left;
	line-height: 1.4;
	width: 100%;
	margin: 0;
	font-weight: 700;
	line-height: 1.5;
	border-bottom: 2px solid var(--main-color);
	padding-bottom: 10px;
}
body.single .entry-content section:nth-last-of-type(1) {
	padding-bottom: 100px;
}
@media only screen and (max-width: 1000px) {
	body.single .breadcrumbs {
		display: none;
	}
}
@media only screen and (max-width: 768px) {
	body.single .post-list.column header .inner {
		display: block;
	}
	body.single .entry-header .date,
	body.archive .date {
		display: inline-flex;
		padding: 5px 10px;
		margin-bottom: 10px;
	}

	body.single .post-list.column .date,
	body.archive .post-list.column .date {
		flex-direction: unset;
		padding: 5px 10px;
		margin-bottom: 10px;
	}

	body.single .entry-header .title {
		font-size: 1rem;
		margin-bottom: 20px;
	}
}
@media only screen and (max-width: 468px) {
}

/*single-navi*/
body.single .single-navi {
	display: flex;
	justify-content: center;
}
body.single .single-navi div:nth-child(2) {
	border-left: 1px solid;
}
body.single .single-navi .prev-navi,
body.single .single-navi .next-navi {
	width: auto;
	box-sizing: border-box;
	background-repeat: no-repeat;
	background-size: 1.25em;
}
body.single .single-navi .prev-navi {
	text-align: left;
	background-image: url(images/common/icon_prev.svg);
	background-position: left;
}
body.single .single-navi .prev-navi a {
	padding: 0 2em 0 2em;
}
body.single .single-navi .next-navi {
	text-align: right;
	background-image: url(images/common/icon_next.svg);
	background-position: right;
}
body.single .single-navi .next-navi a {
	padding: 0 2em 0 2em;
}

@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 468px) {
}

/* =========================================================================================
  Editer
=========================================================================================*/
/*見出し全体*/
* + .mid-l,
* + .mid-m,
* + .mid-s {
	margin-top: 1.5em;
}
/*見出し大*/
.mid-l {
	font-size: 1.75rem;
	font-weight: var(--bold-font-weight);
	line-height: 1.5;
	display: flex;
	align-items: center;
	justify-content: left;
	gap: 0.15em 0.75em;
	margin-bottom: 1em;
	position: relative;
}
.mid-l:before {
	content: "";
	display: block;
	width: 2.85em;
	height: 2.85em;
	background: image-set(url(images/common/icon_mid-l@2x.webp) 2x type("image/webp"), url(images/common/icon_mid-l.webp) 1x type("image/webp"), url(images/common/icon_mid-l@2x.png) 2x, url(images/common/icon_mid-l.png) 1x) no-repeat center / contain;
	flex-shrink: 0;
}
@media only screen and (max-width: 768px) {
	.mid-l {
		font-size: clamp(1.313rem, calc(0.895rem + 1.781vw), 1.75rem); /* min: 21px, max: 28px */
	}
}
@media only screen and (max-width: 468px) {
}
/*見出し中*/
.mid-m {
	font-size: 1.25rem;
	font-weight: var(--bold-font-weight);
	line-height: 1.6;
	padding-bottom: 0.75em;
	background: linear-gradient(to right, var(--pink-color) 0px, var(--pink-color) 3.5em, #d9d9d9 3.5em, #d9d9d9 100%) no-repeat center bottom / 100% 2px;
	margin-bottom: 0.75em;
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 468px) {
}
/*見出し小*/
.mid-s {
	font-size: 1.25rem;
	font-weight: var(--bold-font-weight);
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 0.25em;
	margin-bottom: 0.5em;
}
.mid-s::before {
	content: "";
	width: 0.75em;
	aspect-ratio: 1 / 1;
	display: block;
	background-color: var(--base-font-color);
	margin-top: 0.15em;
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 468px) {
}

/*heading*/
* + .wp-block-heading {
	margin-top: 1.5em;
}
.wp-block-heading {
	font-weight: var(--bold-font-weight);
	line-height: 1.4;
	margin-bottom: 1.5em;
}
h1.wp-block-heading {
	font-size: 2em;
}
h2.wp-block-heading {
	position: relative;
	padding-block: 0.5em;
	padding-inline: 2em 0.5em;
	background-color: #f0f3f5;
	border-radius: var(--radius);
	font-size: clamp(1.25rem, calc(0.773rem + 2.036vw), 1.75rem); /* min: 20px, max: 28px */;
	line-height: 1.625;

	&:before {
		content: "";
		position: absolute;
		display: block;
		width: 1.5em;
		height: 0.25em;
		border-radius: 0 100vmax 100vmax 0;
		/* 固定値を入れるのが嫌だったので、color-mixを使用しています
		background: linear-gradient(to right, var(--main-color-deep), color-mix(in sRGB, var(--main-color-light), #fff)); */
		background: url(images/common/bg_h2.png);
		background-size: 100%;
		inset: 50% auto auto 0;
		translate: 0 -50%;
	}
}
h3.wp-block-heading {
	margin-bottom: 2em;
	padding:0 0.25em 0.75em 0.25em;
	font-size: clamp(1rem, calc(0.761rem + 1.018vw), 1.25rem); /* min: 16px, max: 20px */;
	line-height: 1.6;
	border-bottom: solid 2px var(--main-color);
}
h4.wp-block-heading {
    color: var(--main-color);
	font-size: clamp(0.938rem, calc(0.759rem + 0.763vw), 1.125rem); /* min: 15px, max: 18px */;
    margin-bottom: 0.75em;
}
h5.wp-block-heading {
	font-size: 1em;
    margin-bottom: 0.75em;
}
h6.wp-block-heading {
	font-size: 0.85em;
    margin-bottom: 0.75em;
}

/*p*/
.entry-content .inner > p + p{
    margin-top: 1.0em;
}
/*Hr*/
hr,
.wp-block-separator {
	width: 100%;
	max-width: 500px;
	height: 1px;
	border: none;
	background-color: var(--base-font-color);
	margin: 10vh auto;
}
.wp-block-separator.is-style-dots:before {
	font-size: 3em;
	letter-spacing: 1em;
	padding-left: 1em;
}
@media only screen and (max-width: 768px) {
	hr,
	.wp-block-separator {
		width: 50%;
	}
}

/*Table*/
.wp-block-table table,
.entry-content table {
	width: 100%;
    border-spacing: 0;
    border-top: 1px solid var(--main-color);
}
.wp-element-caption,
.entry-content .caption {
	color: var(--base-font-color);
	opacity: 0.7;
	padding: 0.5em 0;
}
.wp-block-table thead th {
	border-bottom: 1px solid var(--main-color);
}
.wp-block-table th,
.wp-block-table td,
.entry-content th,
.entry-content td {
	padding: 0.75em 1em !important;
	text-align: left;
	vertical-align: top;
    border-bottom: 1px solid;
    border-right: 1px solid;
    border-color: var(--main-color) !important;
	position: relative;
}
.wp-block-table th:last-child,
.wp-block-table td:last-child,
.entry-content th:last-child,
.entry-content td:last-child {
    border-right: none;
}
.wp-block-table th,
.entry-content th {
	text-align: center !important;
    background-color: var(--ivory-color);
}
.wp-block-table td,
.entry-content td {
	background-color: #FFF;
}
.wp-block-table th,
.wp-block-table td strong,
.entry-content th {
	color: var(--base-font-color);
}
.wp-block-table th:first-child::before,
.wp-block-table td:first-child::before,
.entry-content th:first-child::before,
.entry-content td:first-child::before{
    content: "";
    width: 1px;
    height: 100%;
    background: var(--main-color);
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
    z-index: 1;
}
.wp-block-table th:last-child::after,
.wp-block-table td:last-child::after,
.entry-content th:last-child::after,
.entry-content td:last-child::after {
    content: "";
    width: 1px;
    height: 100%;
    background: var(--main-color);
    position: absolute;
    top: 50%;
    right: 0;
    translate: 0 -50%;
    z-index: 1;
}
.wp-block-table.is-style-stripes .wp-element-caption {
	border-top: 2px solid;
}
@media only screen and (max-width: 768px) {
	.wp-block-table table {
		min-width: 650px;
		overflow-x: auto;
	}
}
/*Flexible-Table*/
.wp-block-flexible-table-block-table figcaption {
	color: var(--base-font-color);
	opacity: 0.7;
	padding: 0.5em 0;
}
.wp-block-flexible-table-block-table > table{
    border-top: 1px solid var(--main-color);
}
.wp-block-flexible-table-block-table > table:has(thead) {
    border-radius: 10px 10px 0 0;
    border-top: none;
    overflow: hidden;
}
.wp-block-flexible-table-block-table > table thead tr th{
    color: #FFF;
    background: var(--main-color) !important;
    border-color: #FFF !important;
}
.wp-block-flexible-table-block-table > table tbody tr th{
    background: var(--ivory-color) !important;
}
.wp-block-flexible-table-block-table > table thead tr th,
.wp-block-flexible-table-block-table > table thead tr td,
.wp-block-flexible-table-block-table > table tbody tr th,
.wp-block-flexible-table-block-table > table tbody tr td {
	border-top: none !important;
	border-left: none !important;
}
.wp-block-flexible-table-block-table > table thead tr th:last-child,
.wp-block-flexible-table-block-table > table thead tr td:last-child,
.wp-block-flexible-table-block-table > table tbody tr th:last-child,
.wp-block-flexible-table-block-table > table tbody tr td:last-child {
	border-right: none !important;
}

/*List*/
ul.wp-block-list,
ol.wp-block-list,
ul.list,
ol.list {
	margin: 0.5em 0 0.5em 1.5em;
}
ul.wp-block-list li,
ol.wp-block-list li,
ul.list li,
ol.list li {
	position: relative;
}
ul.wp-block-list li + li,
ol.wp-block-list li + li,
ul.list li + li,
ol.list li + li {
	margin-top: 0.25em;
}
ul.wp-block-list li::before,
ul.list li::before {
	position: absolute;
	content: "";
	background: currentColor;
	width: 5px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	top: 0.8em;
	left: -0.9em;
}
ol:is(.wp-block-list, .list) {
	counter-reset: custom_ol;
	list-style: none;
	margin-left: 2.75em;

	& li {
		counter-increment: custom_ol;
	}
	& li + li {
		margin-top: 0.5lh;
	}
	& li::before {
		content: counter(custom_ol);
		position: absolute;
		inset: 0 calc(100% + 0.75em) auto auto;
		display: grid;
		place-items: center;
		width: 1lh;
		height: auto;
		aspect-ratio: 1;
		background-color: var(--main-color);
		color: #fff;
	}
}

/*List - note*/
ul.note {
	list-style: none;
}
ul.note.center {
	width: fit-content;
	margin: auto;
}
ul.note li {
	padding-left: 0.25em;
}
ul.note li:before {
	content: "※";
	margin-right: 0.5em;
	background: none;
	top: 0;
	left: -1em;
}

/*wp-block-file*/
.wp-block-file {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 0.5em;
	padding-block: 1em;
	border-top: 1px solid var(--gray-color);
	border-bottom: 1px solid var(--gray-color);
}
.wp-block-file:has(object) {
	display: block;
}
.wp-block-file + .wp-block-file {
	border-top: none;
}
.wp-block-file:not(.wp-element-button) {
	font-size: 1em;
}
.wp-block-file * + .wp-block-file__button {
	font-size: 0.9em;
	background: var(--main-color) url(images/common/icon_download.svg) no-repeat ;
    background-position: center right 0.75em;
    background-size: auto 50%;
	padding: 0.25em 2.25em 0.25em 1em;
}
.wp-block-file a:hover {
	text-decoration: none;
}

/*blockquote*/
blockquote {
	position: relative;
	padding: 3em 2em;
	background: #f5f5f5;
}
blockquote cite {
	display: block;
	font-size: 0.8rem;
	text-align: right;
	color: #808080;
	padding-right: 20px;
}

/*wp-block-media-text*/
@media only screen and (max-width: 600px) {
	.wp-block-media-text .wp-block-media-text__content {
		margin: 0;
		padding: 1em 0;
	}
}

/*image*/
.wp-block-image {
	margin-bottom: 1em;
}


/*columns*/
.wp-block-columns.is-layout-flex {
	gap: 50px 7.5%;
}

/*grid*/
.is-layout-grid {
	/* viewport:375-1280px  10-30px */
	/*column-gap: clamp(0.625rem, calc(0.107rem + 2.21vw), 1.875rem);*/
	column-gap: 5%;
	/* viewport:375-1280px  20-55px; */
	row-gap: clamp(1.25rem, calc(0.344rem + 3.867vw), 3.438rem);
}
@media only screen and (max-width: 768px) {
    .is-layout-grid {
        column-gap: 20px;
    }
}
@media only screen and (max-width: 468px) {
    .is-layout-grid {
        column-gap: 10px;
    }
}

/* 追加cssクラス */
.fontSizeLarge {
	margin-bottom: 0.5em;
	font-size: clamp(1.5rem, calc(1.023rem + 2.036vw), 2rem); /* min: 24px, max: 32px */;
	line-height: 1.625;
}


/* =========================================================================================
SCHEDULE TABLE
=========================================================================================*/
table.schedule-table {
    --border: solid 1px var(--main-color);

    display: grid;
    grid-template:
        "cap mon tue wed thu fri sat sun" auto
        "AM AMmon AMtue AMwed AMthu AMfri AMsat AMPMsun" auto
        "PM PMmon PMtue PMwed PMthu PMfri PMsat AMPMsun" 1fr /
        250px 1fr 1fr 1fr 1fr 1fr minmax(100px, 1fr) minmax(90px, 12%);
    width: 100%;
    font-size: 1.1em;
    line-height: 1.4;
    border: none !important;

    & :is(thead, tbody, tr) {
        display: contents;
    }
    & th {
        padding: 0.625em;
        background-color: var(--main-color);
        color: #fff;
        font-weight: bold;
    }
    & th:has(+ th) {
        border-right: solid 1px #fff;
    }
    & td {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.3em;
        padding: 1em 0.75em;
        background-color: var(--base-bg-color);
        border-right: var(--border);
        border-bottom: var(--border);
        text-align: center;
    }
    & td:first-of-type {
        border-left: var(--border);
    }
    & i {
        display: block;
        width: 0.9em;
        height: 0.9em;
        border-radius: 100%;
        background-color: var(--pink-color);
    }
    & span {
        display: block;
        padding: 0.5em 0.75em;
        color: #fff;
        background-color: #5c7eb2;
    }
    & .table_cap {
        grid-area: cap;
        border-radius: var(--radius) 0 0 0;
    }
    & .table_mon {
        grid-area: mon;
    }
    & .table_tue {
        grid-area: tue;
    }
    & .table_wed {
        grid-area: wed;
    }
    & .table_thu {
        grid-area: thu;
    }
    & .table_fri {
        grid-area: fri;
    }
    & .table_sat {
        grid-area: sat;
    }
    & .table_sun {
        grid-area: sun;
        border-radius: 0 var(--radius) 0 0;
    }

    & .table_AM {
        grid-area: AM;
    }
    & .table_AMmon {
        grid-area: AMmon;
    }
    & .table_AMtue {
        grid-area: AMtue;
    }
    & .table_AMwed {
        grid-area: AMwed;
    }
    & .table_AMthu {
        grid-area: AMthu;
    }
    & .table_AMfri {
        grid-area: AMfri;
    }
    & .table_AMsat {
        grid-area: AMsat;
    }
    & .table_AMPMsun {
        grid-area: AMPMsun;
    }

    & .table_PM {
        grid-area: PM;
    }
    & .table_PMmon {
        grid-area: PMmon;
    }
    & .table_PMtue {
        grid-area: PMtue;
    }
    & .table_PMwed {
        grid-area: PMwed;
    }
    & .table_PMthu {
        grid-area: PMthu;
    }
    & .table_PMfri {
        grid-area: PMfri;
    }
    & .table_PMsat {
        grid-area: PMsat;
    }
}

body.home table.schedule-table{
    max-width: 970px;
}

@media only screen and (max-width: 768px) {
    table.schedule-table {
        display: grid;
        grid-template:
            "cap AM PM" auto
            "mon AMmon PMmon" auto
            "tue AMtue PMtue" auto
            "wed AMwed PMwed" auto
            "thu AMthu PMthu" auto
            "fri AMfri PMfri" auto
            "sat AMsat PMsat" auto
            "sun AMPMsun AMPMsun" 1fr /
            120px 1fr 1fr;
        font-size: 1em;
        width: 100%;

        & th {
            display: flex;
            align-items: center;
            justify-content: center;
            border-bottom: 1px solid #fff !important;
        }
        & th:last-child {
            border-bottom: none !important;
        }
        & th:has(+ th) {
            border-right: none;
        }
        & td:first-of-type {
            border-left: none;
            border-top: var(--border);
        }
        & .table_sun {
            grid-area: sun;
            border-radius: 0 0 0 var(--radius);
        }
    }
}
@media only screen and (max-width: 468px) {
    table.schedule-table {
        display: grid;
        grid-template:
            "cap AM PM" auto
            "mon AMmon PMmon" auto
            "tue AMtue PMtue" auto
            "wed AMwed PMwed" auto
            "thu AMthu PMthu" auto
            "fri AMfri PMfri" auto
            "sat AMsat PMsat" auto
            "sun AMPMsun AMPMsun" 1fr /
            100px 1fr 1fr;
    }
}


/* =========================================================================================
FORM
=========================================================================================*/
.grecaptcha-badge {
	/*visibility: hidden;*/
} /*reCAPTCHAバッジ（ロゴマーク）を消す ※設定がうまくいったことを確認してからこのCSSを有効化すること*/

.entry-content form {
	margin: 0 auto;
	box-sizing: border-box;
	position: relative;
}
.entry-content form ::placeholder {
	color: #ccc;
}
.entry-content form input[type="text"],
.entry-content form input[type="tel"],
.entry-content form input[type="email"],
.entry-content form textarea,
.entry-content form select {
	width: 100%;
	background: #eeeeef;
	border: 1px solid var(--gray-color);
	padding: 0.75em 1em;
	transition: 0.3s;
}
.entry-content form input:focus,
.entry-content form textarea:focus {
	border: 1px solid var(--gray-color);
}
.entry-content form .wpcf7-radio {
	/*ラジオボタンの位置調整*/
	margin-top: 1em;
	display: block;
}
.entry-content form .wpcf7-radio .wpcf7-list-item.first {
	/*ラジオボタンの一番最初のmargin調整*/
	margin: 0;
}
.entry-content form select {
	width: fit-content;
	min-width: 300px;
	padding-right: 4em;
	background: #fff url(images/common/icon_dropdown.svg) no-repeat;
	background-position: right 1em center;
	background-size: 1em;
}
.entry-content form .post-add input {
	max-width: 150px;
}
.entry-content form .select-pref select {
	min-width: 100px;
}
.entry-content form input[type="submit"],
.entry-content form input[type="button"] {
	color: #fff;
	font-weight: var(--bold-font-weight);
	background-color: var(--base-font-color);
	padding: 0.75em 1.5em;
	line-height: 1.4;
	letter-spacing: 0.25em;
	text-indent: 0.25em;
	border-radius: 100px;
	min-width: 320px;
	border: none;
	transition: 0.3s;
}
.entry-content form input[type="submit"] {
	background-color: var(--main-color);
}
.entry-content form input[type="button"] {
	background-color: var(--gray-color);
}
.entry-content form input[type="submit"]:hover,
.entry-content form input[type="button"]:hover {
	opacity: 0.8;
}
.entry-content form .btn-area {
	margin-top: 3em;
}
.entry-content form .btn-area p {
	text-align: center;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 30px;
	position: relative;
	width: 100%;
}
.entry-content form .btn-area p br {
	display: none;
}
.entry-content form .btn-area .wpcf7-spinner {
	position: absolute;
	right: -80px;
	top: 30%;
}
@media only screen and (max-width: 768px) {
	.entry-content form .btn-area {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		width: 100%;
		max-width: 800px;
	}
	.entry-content form .btn-area p {
		position: relative;
	}
	.entry-content form .btn-area .wpcf7-spinner {
		position: absolute;
		right: -80px;
		top: 30%;
	}
}
@media only screen and (max-width: 468px) {
	.entry-content form input[type="submit"],
	.entry-content form input[type="button"] {
		width: 100%;
		min-width: 100%;
	}
}

/*問い合わせ画面*/
.entry-content .contact-bg {
	padding-block: 50px 0;
	margin: 0;
}
.entry-content .contact-bg .privacy {
	text-align: center;
	margin-bottom: 2em;
}
.entry-content .contact-bg .privacy .wpcf7-list-item {
	margin: 0;
}
.entry-content .contact-bg .privacy a {
	text-decoration: underline;
}
.entry-content .contact-bg .center {
	text-align: center;
	margin-top: 3em;
}
.entry-content form dl {
	width: 100%;
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 40px 20px;
	padding-bottom: 70px;
	margin: 0 auto;
}
.entry-content form dt {
	font-weight: var(--normal-font-weight);
	text-align: left;
	line-height: 1.6;
}
.entry-content form dt label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	padding-top: 0.875em;
}
.entry-content form dt span {
	font-size: small;
	color: #fff;
	line-height: 1;
	letter-spacing: 0.25em;
	text-indent: 0.25em;
	display: inline-block;
	background: var(--attention-color);
	border-radius: 2px;
	padding: 0.6em 0.25em 0.5em;
	margin-left: 0.5em;
}
.entry-content form dd p {
	display: block;
}
.entry-content form small {
	display: block;
	line-height: 1.7;
}

@media only screen and (max-width: 768px) {
	.entry-content .contact-bg {
		padding: 20px 0;
	}
	.entry-content form dl {
		display: flex;
		flex-wrap: wrap;
		gap: 20px;
	}
	.entry-content form dt {
		text-align: left;
		width: 100%;
	}
	.entry-content form dt label {
		justify-content: left;
	}
	.entry-content form dt span {
		font-size: 0.8rem;
		padding: 0.15em 0.2em 0.2em;
		margin-left: 0.75em;
	}
	.entry-content form dd {
		width: 100%;
		margin-bottom: 1em;
	}
}
@media only screen and (max-width: 468px) {
	.entry-content .contact-bg {
		padding: 0;
	}
}

/*入力確認画面*/
.entry-content .confirm-bg {
	width: 100%;
	max-width: 680px;
	padding: 0;
	margin: 0 auto;
}
.entry-content .confirm-bg .center {
	text-align: center;
	margin-top: 3em;
}
.entry-content form .confirm-bg dl {
	width: 100%;
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 0;
	padding-bottom: 40px;
}
.entry-content form .confirm-bg dt,
.entry-content form .confirm-bg dd {
	font-weight: var(--normal-font-weight);
	text-align: left;
	line-height: 1.6;
	border-bottom: 1px solid var(--gray-color);
	padding: 1em;
	margin: 0;
}
.entry-content form .confirm-bg dt {
	font-weight: var(--bold-font-weight);
}

@media only screen and (max-width: 768px) {
	.entry-content form .confirm-bg dl {
		display: flex;
		flex-wrap: wrap;
	}
	.entry-content form .confirm-bg dt {
		border-bottom: none;
		padding-bottom: 0;
	}
}
@media only screen and (max-width: 468px) {
}

/*送信完了画面*/
body.contact-completion .entry-content .inner {
	max-width: var(--small-contents-width);
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 468px) {
}

/* =========================================================================================
Parts (list-outpatient)
=========================================================================================*/
.parts-outpatient_list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
	gap: 1.25rem;
	padding-bottom: 2.75em;
}
.parts-outpatient_list a {
	position: relative;
	display: block;
	padding-block: 1.25em;
	padding-inline: 1.25em 6.25em;
	border: solid 1px var(--main-color);
	border-radius: var(--radius);
	background-color: #fff;
	overflow: hidden;
	filter: drop-shadow(0.25em 0.25em 0 rgb(var(--main-color-light-rgb) / 0.2));
}
.parts-outpatient_list a:hover {
  text-decoration: none;
}
.parts-outpatient_list a::before {
	content: "";
	position: absolute;
	display: block;
	width: 4rem;
	height: 120%;
	aspect-ratio: 64/184;
	border-radius: 100%;
	background-color: #f5ffed;
	inset: 50% -1.25rem auto auto;
	translate: 0% -50%;
}
.parts-outpatient_list a::after {
	content: "";
	position: absolute;
	display: block;
	width: 2.75em;
	height: 2rem;
	border-radius: 100vmax;
	background: var(--main-color) url(images/common/icon_btn.svg) no-repeat center / 1em;
	inset: 50% 1.25em auto auto;
	translate: 0 -50%;
	transition: translate var(--trans);
}
.parts-outpatient_list a:hover::after{
    translate: 0.5em -50%;
}
.parts-outpatient_list p {
	line-height: 1.625;
}
.parts-outpatient_list a:hover p {
	text-decoration: none;
}
.parts-outpatient_list .image {
	display: flex;
    align-items: end;
    justify-content: right;
}
.parts-outpatient_list .image img{
	width: 80%;
    max-width: 210px;
}
@media only screen and (max-width: 768px) {
	.parts-outpatient_list a::before {
		height: 120%!important;
	}
}
@media only screen and (max-width: 468px) {
	.parts-outpatient_list {
		display: flex;
		flex-direction: column;
	}
    .parts-outpatient_list .image img{
        max-width: 175px;
    }
}

/* =========================================================================================
Parts (list-sector)
=========================================================================================*/
.parts-sector_list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
	gap: 30px 2%;
}
.parts-sector_list figure img {
	width: 100%;
	aspect-ratio: 28/30;
	object-fit: cover;
	border-radius: var(--radius);
}
.parts-sector_list .item:nth-of-type(2) figure img,
.parts-sector_list .item:nth-of-type(3) figure img {
	object-position: 30% center;
}
.parts-sector_list figcaption {
	width: fit-content;
	padding: 0.125em 1.75em 0.125em 0.75em;
	font-size: 1.375em;
	font-weight: bold;
	color: var(--main-color);
	background-color: var(--base-bg-color);
	border: solid 1px currentColor;
	border-radius: 1rem 0 1rem 0;
	translate: 0 -50%;
	filter: drop-shadow(4px 4px 0 rgb(var(--main-color-rgb) / 0.15));
	position: relative;
}
.parts-sector_list figcaption::after {
	content: "";
	display: inline-block;
	width: 1rem;
	height: auto;
	aspect-ratio: 1;
	background-color: currentColor;
	mask: url(images/common/icon_btn.svg) no-repeat center / contain;
	-webkit-mask: url(images/common/icon_btn.svg) no-repeat center / contain;
	position: absolute;
	top: 50%;
	right: 0.5em;
	translate: 0 -50%;
	transition: translate var(--trans);
}
.parts-sector_list p {
	width: 95%;
	margin-inline: auto;
	font-size: 15px;
}
@media (any-hover: hover) {
	.parts-sector_list a:hover {
		text-decoration: none;
	}
	.parts-sector_list a:hover figcaption:after {
		translate: 25% -50%;
	}
}
@medai (any-hover:none) {
	.parts-sector_list a:active {
		text-decoration: none;
	}
	.parts-sector_list a:active figcaption:after {
		translate: 25% 0;
	}
}

@media only screen and (max-width: 768px) {
	.parts-sector_list figure img {
		aspect-ratio: 16/9;
	}
}
@media only screen and (max-width: 468px) {
	.parts-sector_list {
		display: flex;
		flex-direction: column;
		gap: 40px;
	}
}


/* =========================================================================================
Parts (TEL)
=========================================================================================*/
.parts-tel {
	width: 100%;
    max-width: 800px;
	display: grid;
	grid-template-columns:minmax(250px, 20%) 1fr;
	align-items: stretch;
	background: #ffffff;
	border: 1px solid var(--main-color);
	border-radius: var(--radius);
	overflow: hidden;
    margin-top: 50px;
}
.parts-tel h3 {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75em;
	background: var(--ivory-color);
	padding: 1.25em;
	font-size: 18px;
	line-height: 1.2;
	color: var(--main-color);
	border-radius: var(--radius);
}
.parts-tel h3:before {
	flex-shrink: 0;
	content: "";
	display: block;
	width: 2.3333em; /* 42px */
	height: auto;
	aspect-ratio: 1;
	border-radius: 100%;
    background: var(--main-color) url(images/common/icon_logo.svg) no-repeat center / 45%;
}
.parts-tel .tel-number {
    font-size: 2em;
    display: block;
    line-height: 1.2;
	padding-left: 35px;
	background: url(images/common/icon_tel.svg) no-repeat left;
	background-size: auto 73%;
    min-height: 30px;
    margin-bottom: 0.25em;
}
.parts-tel .text{
    padding: 20px 20px 20px 30px;
}

/*医療連携・関連施設*/
.parts-tel.related {
	width: 100%;
    max-width: 925px;
}
.parts-tel.related .tel-number{
    margin-block: 0.5em;
}
@media only screen and (max-width: 768px) {
    .parts-tel {
        display: flex;
        flex-direction: column;
    }
    .parts-tel h3 {
        padding: 0.75em 0.5em;
    }
    .parts-tel .text{
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 20px;
    }
    .parts-tel .tel-number {
        font-size: 1.75em;
    }
}
@media only screen and (max-width: 468px) {
}


/* =========================================================================================
Parts (recruit)
=========================================================================================*/
.parts-recruit {
	display: grid;
	padding-block: 0;
	margin: 0;
	background: image-set(url(images/page/part_recruit_bg.webp) 1x type("image/webp"), url(images/page/part_recruit_bg@2x.webp) 2x type("image/webp")) no-repeat center bottom / cover;
}
.parts-recruit:before {
	content: "";
	position: absolute;
	display: block;
	width: 70%;
    min-width: 900px;
	height: 100%;
	background: url(images/page/part_recruit_gradient.webp) no-repeat center / cover;
	opacity: 0.88;
	inset: 0 0 auto auto;
}
.parts-recruit:after {
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 87px;
	background: url(images/page/part_recruit_after.svg) no-repeat center top / 100%;
	inset: 0 auto auto 0;
}
.parts-recruit .inner {
    max-width:560px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
	position: relative;
	z-index: 1;
}
.parts-recruit h2 {
	font-size: 1.75em;
	line-height: 1.45;
	color: #fff;
	text-align: center;
	margin: 3lh auto 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}
.parts-recruit p {
	margin-block: 1em 3.125em;
	color: #fff;
	width: 80%;
}
.parts-recruit .btn {
	width: 100%;
    margin-bottom: 1.0em;
}
.parts-recruit .btn a {
	color: var(--main-color);
	background-color: var(--base-bg-color);
}
/* .parts-recruit .swiper {
	margin-top: 0.5em;
	width: 100cqw;
} */
.parts-recruit .hp-image{
    display: none;
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 468px) {
    .parts-recruit{
        background: none;
        margin-top: -40px;
        padding-bottom: 420px /* 画像の高さ分 */;
    }
    .parts-recruit:after {
        height: 50px;
        background: url(images/page/part_recruit_after_mb.svg) no-repeat center bottom / cover;
    }
    .parts-recruit h2{
        margin-top: 3.5em;
    }
    .parts-recruit p {
        margin-block: 1em 2.0em;
    }
    .parts-recruit .hp-image{
        display: block;
        width: 110vw;
        min-width: 375px;
        height: 420px;
        position: absolute;
        left: 50%;
        bottom:0;
        translate: -50% 0;
    }
    .parts-recruit .hp-image img{
        object-fit: cover;
        width: 100%;
        height: 100%;
    }
}
