@charset "utf-8";
/*--------------------------------------------

	BASE

--------------------------------------------*/
@-ms-viewport {
	width: auto;
	initial-scale: 1;
}
:root {
	--font-sans-serif: 'Noto Sans JP', sans-serif;
	--font-zenmaru: "Zen Maru Gothic", sans-serif;
	--font-montserrat:  "Montserrat", sans-serif;
	--font-size-sub: clamp(24px, 1.66vw, 32px);
	--c-inner-width:1000px;
	--color-green: #4DB332;
	--color-red: #D60029;
	--color-dark-navy: #1D153A;
	--color-navy: #3E3B49;
	--color-aqua: #DAE7EE;
	background-repeat:no-repeat;
}
html {
	font-size: 62.5%;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	min-height: 100%;
}
body {
	width:100%;
	font-family: var(--font-sans-serif);
	color: #000;
	font-size: 1.4rem;
	font-weight: 500;
	line-height:1.6;
	letter-spacing: 0.03em;
	height: 100%;
}
a {
	color:inherit;
	display: block;
	text-decoration: none;
}
table {
	width: 100%;
}
input,
button,
select,
textarea {
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}
button{
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
}
picture{
	display: block;
}
img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	width: 100%;
	height: auto;
}
/*--------------------------------------------

	FONT

--------------------------------------------*/
/*--------------------------------------------

	CONPONENT

--------------------------------------------*/
.c--inner{
	margin:0 auto;
	padding:0 7.7%;
	width: 84.6%;
}
.c--inner-flex{
	padding:0 3.5%;
	width: 93%;
}
.c--inner-static{
	max-width:var(--c-inner-width);
}
@media all and (min-width : 1025px ){
	.for_sp,.for_tbsp{
		display: none;
	}
}
/*--------------------------------------------

	FRAME

--------------------------------------------*/
.wrapper{
    overflow: hidden;
    height: 100%;
}
.container{
	box-sizing: border-box;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: fixed;
}
.contents {
    height: 100%;
    position: relative;
}
/*--------------------------------------------

	HEADER

--------------------------------------------*/
.header{
	background-color: #f3f3f3;
    width: 240px;
    height: 100%;
    position: absolute;
    top: 0;
    z-index: 8;
    transition: all 200ms ease 0s;
    box-shadow: rgba(61, 74, 84, 0.1) 0px 3px 8px 0px, rgba(61, 74, 84, 0.06) 0px 3px 12px;
	font-size: 13px;
}
.header--toggle-btn{
    width: 2.4em;
    height: 2.4em;
    position: absolute;
    right: 0;
    top: 0;
    background: url(../images/arrow--right-white.svg) 0.9em center no-repeat var(--color-green);
    background-size: 0.5em;
    border-radius: 50%;
    transform: translate(50%, 40px);
    cursor: pointer;
    z-index: 20;
    transition: .5s;
}
.header--toggle-btn.is_open{
	background-image: url(../images/arrow--left-white.svg);
}
.header--menu{
	height: 100%;
	overflow: auto;
	box-sizing: border-box;
}
.header--logo{
	padding:40px 12% 32px;
}
.header--menu-list{
	padding:32px 12%  40px;
	border-top: 1px solid #ccc;
}
.header--menu-item{
	font-family:var(--font-zenmaru);
	font-feature-settings: "kern" on;
	letter-spacing: 0.03em;
	font-weight: 500;
}
.header--menu-item:nth-child(n+2){
	margin-top: 1.2em;
}
.header--menu-link{
	color: var(--color-green);
}
.header--menu-link:before{
	content: "●";
	color: #8BCB7A;
	font-size: 0.7em;
	margin-right: 0.5em;
}
@media all and (min-width : 1025px ){
	body.initial_open .header{
		left:0;
	}
	.header{
		left: -240px;
	}
	.is_open .header{
		left: 0;
	}
}
/*--------------------------------------------

	MAIN

--------------------------------------------*/
.right{
	width: 100%;
    height: 100%;
    top: 0px;
    position: relative;
    transition: all 200ms ease 0s;
    transform: translateX(0);
}
.is_open .right {
	width: calc(100% - 240px);
	transform: translateX(240px);
}
.main{
	position: relative;
	height: 100%;
	box-sizing: border-box;
    padding-bottom: 24px;
}
.main--head{
	font-size: 16px;
	font-family:var(--font-zenmaru);
	font-feature-settings: "kern" on;
	letter-spacing: 0.03em;
	font-weight: 500;
	color: var(--color-green);
	padding:1em 4em;
	border-bottom: 3px solid #ccc;
	height: 60px;
	box-sizing: border-box;
}
.main--head-text{
}
.main--body{
	height: calc(100% - 60px);
}
.main--body-inner,
.table--container,
.dataTables_wrapper{
	height: 100%;
}
.tabel--sheet{
	max-height: 100%;
}
div.dataTables_wrapper{
	position: initial;
}
div.dt-buttons{
	position: absolute;
	float:none;
	right: 30px;
	top: 20px;
	color: var(--color-green);
	font-size: 13px;
}
div.dt-buttons span{
	text-decoration: underline;
}
div.dt-buttons>.dt-button,
div.dt-buttons>div.dt-button-split .dt-button,
div.dt-buttons>.dt-button:hover:not(.disabled), 
div.dt-buttons>div.dt-button-split .dt-button:hover:not(.disabled){
	background: none;
	border: none;
	outline: none;
	margin:0;
	padding:0;
	appearance: none;
}
.dataTables_wrapper .dataTables_filter{
	position: absolute;
	float:none;
	right:100px;
	top: 14px;
	color: var(--color-green);
	font-size: 12px;
}
.dataTables_wrapper .dataTables_filter label{
	display: block;
}
/*--------------------------------------------

	FOOTER

--------------------------------------------*/
.footer{
	padding:clamp(48px, 4.3vw,84px) 0;
	background-color: var(--color-aqua);
}
.footer--inner{
}
/* .footer--logo{
} */
.footer--copyright{
	display: block;
	font-size: 12px;
	color: var(--color-navy);
	font-family: var(--font-montserrat);
	font-weight: 600;
	text-align: center;
}
/*--------------------------------------------

	TABLE FRAME

--------------------------------------------*/
.table--container {
	overflow-x: auto;
	width: 100%;
	overflow-x: hidden !important;
}
.tabel--sheet {
	table-layout: auto;
	width: 100%;
	border-collapse: collapse!important;
	white-space: nowrap;
}
.tabel--sheet tfoot {
	display: table-header-group;
}
.tabel--sheet th,
.tabel--sheet td {
	/* min-width: 20px; */
	white-space: nowrap;
	font-size: 10px;
	font-weight: 500;
	border:1px solid #999;
}

.tabel--sheet-single,
.tabel--sheet-single th:last-child,
.tabel--sheet-single td:last-child{
	white-space:normal;
}
.tabel--sheet tfoot th{
	padding:0!important;
	border-top: none!important;
}
.tabel--sheet thead th{
	background-color: #e1e4e0!important;
	text-align: center!important;
	position:sticky!important;
	top:-2px!important;
	border-bottom: 1px solid #999!important;
}
.tabel--sheet tbody th,
.tabel--sheet tbody td {
	font-weight: 400;
	padding-top: 0.4em!important;
	padding-bottom: 0.4em!important;
	text-align: left;
}
.tabel--sheet tbody td {
	vertical-align:middle;
}
.tabel--sheet tbody td.col--center{
	text-align: center;
}
.tabel--sheet tbody td > span:not(.closed-label):not(.copy-text):not(.facility--child){
	padding:0 2.4em;
	display: block;
	border-radius: 1em;
	background-color:#ddd;
}
.tabel--sheet tbody td > span.closed-label{
	color:#f00;
}
.tabel--sheet tbody td > span.facility--child{
	font-size:0.9em;
	padding-left:2em;
	color:#444;
}
.copy-text {
  cursor: pointer;
  transition: 0.2s;
}
.copy-text.copied {
  color: #22aa22;
}
.tabel--sheet tbody td.nursing span,
.tabel--sheet tbody td.search_nursing span,
.tabel--sheet tbody td.pamphlet span{
	background-color:#ffc8aa!important;
	color:#5a4438;
}
.tabel--sheet tbody td.medical span,
.tabel--sheet tbody td.search_medical span,
.tabel--sheet tbody td.flyer span{
	background-color:#d4edbc!important;
	color:#49583a;
}
.tabel--sheet tbody td.welfare span,
.tabel--sheet tbody td.welfare span{
	background-color:#bfe1f6!important;
	color:#324753;
}
.tabel--sheet tbody td.search span{
	background-color:#ffe5a0!important;
	color:#423c2a;
}
.tabel--sheet tbody td.map span{
	background-color:#e6cff2!important;
	color:#412f4a;
}
.tabel--sheet tbody td.youtube span,
.tabel--sheet tbody td.facebook span,
.tabel--sheet tbody td.line span,
.tabel--sheet tbody td.instagram span,
.tabel--sheet tbody td.tiktok span{
	background:none;
	position:relative;
}
.tabel--sheet tbody td.youtube span:before,
.tabel--sheet tbody td.facebook span:before,
.tabel--sheet tbody td.line span:before,
.tabel--sheet tbody td.instagram span:before,
.tabel--sheet tbody td.tiktok span:before{
	content:"";
	display:block;
	width:1.2em;
	height:1.2em;
	border-radius:50%;
	position:absolute;
	left:0;
	top:0;
}
.tabel--sheet tbody td.youtube span:before{
	background-color:#DA1725;
}
.tabel--sheet tbody td.facebook span:before{
	background-color:#1877f2;
}
.tabel--sheet tbody td.line span:before{
	background-color:#00B900;
}
.tabel--sheet tbody td.instagram span:before{
	background:linear-gradient(to right, #ffd600,#ff7a00,#ff0069,#d300c5,#7638fa);
}
.tabel--sheet tbody td.tiktok span:before{
	background:linear-gradient(to right, #25F4EE 0% , #25F4EE 50%, #FE2C55 50%, #FE2C55 100%);
}
.dataTables_info{
	font-size: 11px;
	padding-left: 2em;
}
.dummy--padding {
  min-width: 20px; /* 好みで調整 */
  opacity: 0;
  border:none!important;
  box-sizing: border-box;
  padding:0!important;
}

.single--main + #scroll-sync-bar {
	display:none;
}
#scroll-sync-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  height: 10px;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  z-index: 9999;
  border-top: 1px solid #ccc;
}
#scroll-sync-inner {
  height: 1px;
}
#scroll-sync-bar::-webkit-scrollbar {
  height: 10px;
}

#scroll-sync-bar::-webkit-scrollbar-track {
  background: #ccc;
  border-radius: 5px;
}

#scroll-sync-bar::-webkit-scrollbar-thumb {
  background-color: #8BCB7A;
  border-radius: 5px;
}
#scroll-sync-bar::-webkit-scrollbar-thumb:hover {
  background-color: #4DB332; /* ← 濃い緑など好みに応じて調整 */
}
#scroll-sync-bar::-webkit-scrollbar-thumb:active {
  background-color: #3a8c26; /* ← さらに濃い緑、好みに応じて調整 */
}
/*--------------------------------------------
	REORDER HUNDLE
--------------------------------------------*/
.tabel--sheet td:first-child,
.tabel--sheet th:first-child {
	width: 20px;
	background-color: #f9f9f9;
}
.reorder-handle {
	cursor: move;
	text-align: center;
	font-size: 16px;
	color: #888;
	user-select: none;
	width: 30px;
}
table.dataTable thead th.sorting:first-child,
table.dataTable thead th.sorting_asc:first-child{
	padding-right: 10px!important;
}
/*--------------------------------------------
	FILTER - TITLE
--------------------------------------------*/
.filter-title {
	display: inline-block;
	width: 100%;
	text-align: center;
	position: relative;
	/* padding-right: 16px; */
	box-sizing: border-box;
}
.filter-toggle {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 4px;
	margin: auto;
	height: 16px;
	line-height: 16px;
	font-size: 8px;
	color: var(--color-green);
	cursor: pointer;
	user-select: none;
}
table.dataTable thead>tr>th.sorting, table.dataTable thead>tr>th.sorting_asc, table.dataTable thead>tr>th.sorting_desc, table.dataTable thead>tr>th.sorting_asc_disabled, table.dataTable thead>tr>th.sorting_desc_disabled, table.dataTable thead>tr>td.sorting, table.dataTable thead>tr>td.sorting_asc, table.dataTable thead>tr>td.sorting_desc, table.dataTable thead>tr>td.sorting_asc_disabled, table.dataTable thead>tr>td.sorting_desc_disabled{
	padding-right: 20px;
}
.tabel--sheet thead th.filtered{
	background-color:#c2dbbc!important;
}
.tabel--sheet th.sorting::before,
.tabel--sheet th.sorting_asc::before,
.tabel--sheet th.sorting_desc::before,
.tabel--sheet th.sorting::after,
.tabel--sheet th.sorting_asc::after,
.tabel--sheet th.sorting_desc::after {
	content: none !important;
}
/*--------------------------------------------
	FILTER - BOX
--------------------------------------------*/
.filter-dropdown {
	display: flex;
	flex-direction: column;
	max-height: 360px;
	overflow: hidden;
	position: absolute;
	top: 28px;
	left: 0;
	width: 240px;
	border: 1px solid #ccc;
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 4px 8px rgba(0,0,0,0.1);
	font-size: 13px;
	z-index: 9999;
}
.filter-header {
	flex: 0 0 auto;
	background-color: #f9f9f9;
	padding: 8px;
	border-bottom: 1px solid #ddd;
}
.filter-box {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 8px;
}
.filter-box label {
	display: flex;
	align-items: center;
	font-size: 11px;
	margin: 3px 0;
	cursor: pointer;
	gap: 8px;
}
.filter-box input[type="checkbox"] {
	appearance: none;
	width: 16px;
	height: 16px;
	border: 1px solid #bbb;
	border-radius: 3px;
	background-color: #fff;
	display: inline-block;
	position: relative;
	cursor: pointer;
	transition: all 0.2s ease;
}
.filter-box input[type="checkbox"]:checked {
	background-color: var(--color-green);
	border-color: var(--color-green);
}

.filter-box input[type="checkbox"]:checked::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 0px;
	width: 4px;
	height: 8px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(45deg);
}
.filter-action {
	font-size: 11px;
	margin-bottom: 6px;
	cursor: pointer;
	color: var(--color-green);
	text-decoration: underline;
	user-select: none;
}
.filter-apply {
	margin-top: 8px;
	font-size: 12px;
	padding: 4px 12px;
	display: inline-block;
	background: var(--color-green);
	color: #fff;
	border-radius: 4px;
	text-align: center;
	cursor: pointer;
}
.filter-apply:hover {
	background: #3a8c26;
}
/*--------------------------------------------

	MATRIX

--------------------------------------------*/
.pf-controls {
	display:flex;
	align-items: center;
	gap:8px;
	font-size:10px;
	position: absolute;
    top: 17px;
    right: 340px;
}
.pf-controls-label{
	display: block;
	margin-right:-0.5em;
	margin-left:0.2em;
}
.pf-controls .btn {
	padding:0.4em 1em;
	border:1px solid var(--color-green);
	border-radius:1.6em;
	background:#fff;
	color:var(--color-green);
	cursor:pointer;
}
.pf-controls .btn[data-action="expandAll"],
.pf-controls .btn.is-closed { 
	background:var(--color-green);
	color:#fff;
}
.pf-controls .btn[data-action="expandAll"]:has(~ button[aria-pressed="true"]){
	background:#fff;
	color:var(--color-green);
}
.pf-controls .btn .state {
 	display:inline-block; 
	margin-left:0.6em; 
	padding:0.2em 0.5em; 
	border-radius:1em;
  	font-size:10px;
	background:var(--color-green);
	color:#fff;
	display:none;
 }
.pf-controls .btn.is-closed .state { 
	background:#fff;
	color:var(--color-green);
}
.pf-first { 
	position: sticky; 
	left:0; 
}
.pf-matrix thead .pf-first { 
	background:#fafafa; 
	z-index: 5; 
}
.tabel--sheet thead th.pf-group-header{
	text-align:left!important;
}
.pf-badge { 
	display:inline-block; 
	padding: 3px 5px;
	border-radius:999px; 
	background:var(--color-green); 
	color:#fff;
	margin-left: 5px;
	width: 1.2em;
	text-align: center;
}
.pf-cell-center { 
	text-align:center; 
}
.pf-cell-ok  { 
	padding:0!important;
	overflow:hidden;
}
.pf-cell-ok a { 
	padding: 0 2.4em;
	background-color:var(--color-green);
	color:#fff;
}
.pf-note { 
	color:#6b7280; 
	font-size:13px; 
	margin-top:6px; 
}
.pf-col { 
	width: 70px!important;
	min-width: 70px!important;
	max-width: 70px!important;
	white-space:normal!important;
	word-break:break-all;
	vertical-align:middle;
	font-size:9px!important;
	line-height:1.1;
	padding: 6px 10px !important;
}
.pf-cell-content{
	line-height:1.6;
}
.pf-col .filter-title{
	text-align:left!important;
	font-weight:500!important;
}
.pf-col-hidden { 
	display: none !important; 
}
.pf-label-full  { 
	display: inline; 
}
.pf-label-short { 
	display: none; 
	font-weight: 600; 
	letter-spacing: .02em; 
}
.pf-group-header { 
	cursor:default; position:relative; 
}
/*--------------------------------------------

	MODAL

--------------------------------------------*/
.open-modal-btn,.open-single-link{
	color: var(--color-green);
	text-decoration: underline;
}
.open-detail-link{
	padding-right:1.6em;
	background: url(../images/icon--link.svg) right center no-repeat;
	background-size:1.1em;
}
.acf-modal {
	display: none;
	position: fixed;
	z-index: 9999;
	inset: 0; /* top, right, bottom, left: 0 */
	background-color: rgba(0, 0, 0, 0.6); /* 背景を黒で透過 */
	backdrop-filter: blur(2px); /* 背景ぼかし（対応ブラウザで） */
	overflow-y: auto;
	padding: 10px 20px; /* スクロール時にも余白あり */
}
.acf-modal .acf-modal-content {
	background: #fff;
	margin: auto;
	padding: 24px 32px 36px;
	max-width: 720px;
	width: 100%;
	border-radius: 12px;
	box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2);
	position: relative;
	animation: fadeInUp 0.3s ease-out;
	max-height: 86vh;
	overflow-y: auto;
}
.acf-modal-close {
	position: absolute;
	top: 16px;
	right: 20px;
	font-size: 28px;
	font-weight: bold;
	line-height: 1;
	color: #555;
	cursor: pointer;
	transition: color 0.2s ease;
	z-index:20;
}
.acf-modal-close:hover {
  color: #000;
}
.acf-field .acf-label{
	margin-bottom: 5px;
}
.acf-field .acf-label label {
    color: var(--color-green);
    font-weight: 700;
	font-size:12px;
	margin-bottom:0;
}
.acf-field input[type=text], .acf-field input[type=password], .acf-field input[type=date], .acf-field input[type=datetime], .acf-field input[type=datetime-local], .acf-field input[type=email], .acf-field input[type=month], .acf-field input[type=number], .acf-field input[type=search], .acf-field input[type=tel], .acf-field input[type=time], .acf-field input[type=url], .acf-field input[type=week], .acf-field textarea, .acf-field select{
	background-color:#eee;
	font-size:12px;
	padding:0.8em 1em;
	border-radius: 0.3em;
	border:none;
}
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.acf-modal-content input[type="submit"],
.acf-modal-content .acf-button {
  cursor: pointer;
	width:calc(100% - 32px);
	margin: 0 16px;
	border-radius: 0.3em;
	background-color:var(--color-green);
	color:#fff;
	font-size:14px;
	padding:0.8em;
	transition:0.5s;
}
.acf-modal-content input[type="submit"]:hover,
.acf-modal-content .acf-button:hover{
	background-color:#3a8c26;
}
.single--main{
	overflow-y:scroll;
}
.single--inner{
	padding:0 4%;
}
.single--wrap{
	padding: 30px 0;
}
.single--section{
	padding:30px 0;
}
.single--section-head{
	font-size:17px;
	letter-spacing:0.08em;
	margin-bottom:1.2em;
}
.single-info-head{
	display:flex;
	align-items:center;
	margin-bottom:2em;
}
.single--facility-name{
	font-size:22px;
	letter-spacing:0.08em;
	font-weight:600;
	margin-right:auto;
	padding-top:0.6em;
}
.single--facility-parent{
	margin-left:auto;
	background-color: var(--color-green);
	padding:0.3em 1.5em;
	margin-right:1em;
	border-radius:0.3em;
	color:#fff;
	font-size:11px;
}
.single--facility-note{
	display:inline-flex;
	padding:0.3em 1.5em;
	border-radius:0.3em;
	background-color:#eee;
	font-size:11px;
}
.single--facility-number{
}
.single--facility-termname{
}
.single--info-list{
	display:flex;
	flex-wrap:wrap;
	font-size:0.9em;
}
.single--info-item{
	display:flex;
	margin-bottom:0.8em;
	width:46%;
	box-sizing:border-box;
}
.single--info-item:nth-child(2n){
	margin-left:8%;
}
.single--info-label{
	width:10em;
	background-color: #eee;
	padding:1.6em 1em;
	border-radius:0.3em;
	font-size:0.86em;
}
.single--info-value{
	flex:1;
	margin-left: 1.6em;
	display:flex;
	align-items:center;
}
.single--manager {
  display: grid;
  grid-template-columns: max-content 1fr;
/*   row-gap: .4em; */
  column-gap: 1em;
}
.single--manager-item {
  display: contents;
}
.copy-btn{
	font-size:8px;
	border:1px solid #000;
	border-radius: 0.3em;
	margin-left:2em;
	padding:0.1em 0.8em;
}
.copy-btn.copied{
	background-color: var(--color-green);
	border-color:var(--color-green);
	color:#fff;
}
.single--open-sheet{
	
}

.single--open-sheet th,
.single--open-sheet td{
	border: 1px solid #999;
	width:10%;
	box-sizing: border-box;
	padding:0.6em 1em;
	text-align: center;
	font-size: 0.9em;
}
.single--open-sheet th{
	background-color: #eee;
}
.single--open-sheet th:nth-child(7){
	background-color: #c8e0e4;
}
.single--open-sheet th:nth-child(8),
.single--open-sheet th:nth-child(9){
	background-color: #ebd4d2;
}
.single--open-sheet th:first-child,
.single--open-sheet td:first-child{
	background-color: #dde7e3;
	width:20%;
	text-align: left;
}
.single--open-sheet td{
	
}

.single--open-note,
.single--closed-day{
	font-size:12px;
	margin-top:0.8em;
}
.single--open-note{
	
}
.single--closed-day{
	
}
.single--facility-closed{
	font-size:0.8em;
	color:#88c027;
}
.single--info-registration{
	margin-bottom: 2em;
    font-size: 0.92em;
    text-align: right;
}
.single--info-registration-label{
	color: #333;
	font-size:0.85em;
}
/*--------------------------------------------

	HOVER

--------------------------------------------*/
@media (hover: hover) and (pointer: fine) {
 .reorder-handle { cursor: move; user-select: none; text-align: center; width:36px; }
  .reorder-disabled .reorder-handle { opacity:.35; pointer-events:none; cursor:default; }
  table.dataTable tbody tr.dt-rowReorder-moving { outline:2px dashed #888; }
  }