:root{
	--black:#464646;
	--pink:#fa8e91;
	--soft-pink:#fae0dc;
	--mint:#53b8b5;
	--sky:#83b0db;
	--coral:#ea7a88;
	--orange:#f19b63;
	--cream:#fff7f0;
	--mplus:"M PLUS Rounded 1c", sans-serif;
	--zen:"Zen Maru Gothic", sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
	margin:0;
	color:var(--black);
	background:#fff;
	font-family: var(--mplus);
	font-size: 18px;
	line-height:1.66;
	-webkit-font-smoothing:antialiased;
}
p,li,dt,dd,.news-item,table{transform: rotate(0.04deg);
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit}

.wrapper{
	width:min(100% - 36px,1000px);
	padding: 0 36px;
	margin:auto;
}
.header{
	position: sticky;
	top: 0;
	z-index: 40;
	background:#fff;
        box-shadow: 0 4px 16px rgba(0, 0, 0, .06);
}
.header-top{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	width:100%;
	padding: 0 50px;
	margin-bottom: 20px;
}
.header-logo{
	width:65%;
	max-width:540px;
	aspect-ratio:539/72;
	padding-top: 17px;
	padding-bottom: 5px;
}
.header-logo img{
	width:100%;
}

.tel-link{
	display:block;
	width:257px;
}
.tel-link img{width:100%}
.tel-link:hover img{
	content:url('../images/button-tel-hover.png');
}

.nav-toggle{display:none}
.main-nav{
	display:flex;
	align-items:center;
	justify-content:center;
	margin:0 auto 0;
	width:min(100% - 50px,1150px);
	padding: 0 50px 0;
	list-style: none;
}
.main-nav li{
	flex: 1;
}
.main-nav a{
	font-size:1.16em;
	font-weight:500;
	color:var(--pink);
	display: block;
	width: 100%;
	text-align:center;
	padding:5px 0 5px 0.05em;
	letter-spacing: 0.05em;
	border-left:1px solid #b9c9cb;
	line-height:1.38;
	white-space:nowrap;
	transition:color .2s,background .2s;
}
.main-nav li:last-child a{
	border-right:1px solid #b9c9cb;
}
.main-nav a:hover,
.main-nav a[aria-current=page]{
	color:var(--coral);
	background:var(--soft-pink);
}
.main-nav .home-link{display:none}
.site-main{overflow:hidden}
.main-visual{
	width:min(100% - 50px,1170px);
	margin:75px auto 60px;
	position:relative;
}

.section-heading{
	width:100%;
	background:#fae0dc url('../images/top-heading-bg.png') center/cover;
	min-height:160px;
	display:grid;
	place-content:center;
	text-align:center;
	padding:22px 20px;
}
.section-heading h2{
	margin:6px 0 0;
	font-size:1.78em;
	font-weight:500;
	line-height:1.1;
	letter-spacing:.06em;
	color:var(--black);
}
.section-heading p{
	color:var(--pink);
	margin:15px 0 0;
	font-size:0.83em;
	letter-spacing:0.05em;
	font-weight:500;
}
.about-intro{
	display:flex;
	justify-content: end;
    align-items: center;
	gap:67px;
	padding:0 36px 130px;
    margin: -45px auto 0;
	width:min(100% - 50px,1068px);
}
.about-intro-text{
	max-width: 428px;
	padding: 87px 0 0;
	letter-spacing: 0.06em;
}
.about-intro-image{
	max-width: 418px;
}
.about-intro-image img{
	width:100%;
}
.services-illustration{
	max-width:1128px;
	margin:65px auto 32px;
	padding: 0 50px;
}
.services-list{
	width:min(100% - 50px,1072px);
	padding: 0 36px;
	display: grid;
	grid-template-columns:1fr 1fr 1fr;
	grid-template-rows:1fr 1fr 1fr;
	gap: 21px 32px;
	margin: 72px auto 175px;
}
.services-list-service{
	border: 5px solid #fff;
	background: #fef7ef;
	border-radius: 30px;
	box-shadow: 0 5px 5px rgba(0,0,0,0.1);
	padding: 35px 24px 26px;
	position: relative;
	aspect-ratio: 312/238;
}
.services-list-service .numbering{
	font-size: 1em;
	line-height: 1.1;
	letter-spacing: 0.06em;
	margin-bottom: 16px;
}
.services-list-service h3{
	color: var(--coral);
	font-weight: 500;
	font-size: 1.277em;
	line-height: 1.43;
	margin-bottom: 11px;
}
.services-list-service p{
	font-weight: 500;
	font-size: .94em;
	line-height: 1.65;
}
.services-list-service:last-child::after{
	content: "";
	display: block;
	width: 165px;
	height: 192px;
	background: url(../images/service-image.png) no-repeat center / contain;
	position: absolute;
	bottom: -150px;
	right: -20px;
}
.flow-illustration{
	max-width:1066px;
	margin:73px auto 100px;
	padding: 0 50px;
}

.flow-chart{
	width:min(100% - 50px,1037px);
	padding: 0 36px;
	margin:76px auto 100px;
}
.flow-chart p{
	text-align:center;
	font-weight: 500;
	font-size: 0.77em;
	line-height: 1.43;
}
.flow-chart-item{
	color: #f39600;
	border: 3px solid #f39600;
	border-radius: 9999px;
	font-weight: 500;
	font-size: 1.277em;
	line-height: 1.43;
	max-width: 900px;
	margin: 12px auto;
    padding: 6px 18px;
	text-align:center;
}
.flow-chart-arrow{
	margin: 12px auto;
	text-align:center;
	width: 35px;
}

.area-section{
	width:min(100% - 50px,1172px);
	padding: 0 36px;
	display:flex;
	gap: 30px 110px;
	justify-content: end;
	margin:70px auto 65px;
}
.area-section-text{
	width: fit-content;
	padding-top: 18px;
	letter-spacing: 0.06em;
}
.area-section-image{
	max-width: 450px;
	padding-right: 20px;
}
.area-section h3{
	margin:0 0 12px;
	font-size:1.44em;
	line-height:1.54;
	font-weight: 500;
}
.area-section p{
	line-height: 1.88;
	margin: 18px 0 0 1em;
	text-indent:-1em;
}
.area-section img{
	border-radius:15px;
}
.news-container{
	width:min(100% - 50px,1172px);
	padding: 0 36px;
	margin: 0 auto 115px;
}
.news-panel{
	display:grid;
	grid-template-columns:197px 1fr;
	border:3px solid var(--orange);
	border-radius:10px;
	overflow:hidden;
}
.news-label{
	background:var(--orange);
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-direction:column;
	font-weight:700;
	font-size: 1.22em;
	font-family:var(--zen);
	letter-spacing:.05em;
}
.news-label small{
	font-size:0.59em;
	line-height:1;
	font-weight:500;
	font-family:var(--mplus);
	margin-top: 8px;
	margin-bottom: 8px;
}
.news-list{
	padding:25px 35px;
	display:grid;
	gap:26px;
	line-height: 1.33;
	font-weight:500;
}
.news-item{
	display:grid;
	grid-template-columns:10em 1fr;
	gap:12px;
}
.news-item time{
	white-space:nowrap;
}

.footer-scenery img{width:100%;height:auto;display:block;min-height:48px;object-fit:cover;object-position:right bottom}

.footer{
	background:var(--soft-pink);
	padding:24px 0 12px;
}
.footer-inner{
	display:flex;
	justify-content:
	space-between;gap:24px;
	
	width:min(100% - 50px,1300px);
	padding: 0 50px;
	margin: 0 auto;
}
.footer-brand{width:min(540px,70%)}
.footer-brand img{
	width:545px;
	max-width:100%;
	margin:0 0 14px;
}
.footer-brand p{
	margin:0;
	font-size:0.94em;
	line-height:1.35;
	letter-spacing: 0.05em;
}
.footer-nav{
	padding:0;
	margin:6px 0 0;
	list-style:none;
	columns:1;
	min-width:330px;
}
.footer-nav li{
	margin:0;
	font-size:1.05em;
	line-height:1.58;
	font-weight:400;
}
.footer-nav a{
}
.footer-nav a:hover{
	text-decoration:none;
	color:var(--coral);
}
.copyright{
	font-size:0.78em;
	margin:40px auto 0;
	width:min(100% - 50px,1300px);
	padding: 0 50px;
}
.sub-title{
  margin:115px auto 120px;
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
}
.newsletter .sub-title{
  margin-bottom:72px;
}
.sub-title img{
	width:auto;
	height:auto;
	max-height:60px;
}
.content-column{
	margin:0 auto;
}
.section-title{
	margin:0 0 40px;
	font-size:1.61em;
	line-height:1.1;
	color:var(--mint);
	border-bottom:2px solid var(--mint);
	padding:0 4px 6px;
	font-weight:500;
	letter-spacing:0.06em;
}
.section-title.coral{
	color:var(--coral);
	border-color:var(--coral);
}
.content-section{
}
#greeting{
	margin:0 0 120px;
}
#policy{
	margin:0 0 112px;
}
#guideline{
	margin:0 0 110px;
}
#detail{
	margin:0 0 105px;
}
#map{
	margin:0 0 110px;
}
#recruit{
	margin:0 0 97px;
}
#open-office{
	margin:0 0 105px;
}
.greeting-layout{
	display:grid;
	grid-template-columns:180px 1fr;
	gap:83px;
	align-items:start;
	padding: 0 60px;
}
.greeting-layout img{
	width:180px;
	border-radius:15px;
}
.greeting-text{
	margin-top: -0.44em;
}
.greeting-layout p{
	margin:0;
	line-height:1.88;
	letter-spacing: 0.06em;
	text-align:justify;
	text-align-last:left;
}
.greeting-sign{
	text-align:right;
	font-weight:500;
	margin:67px 0 0;
	font-size:1.05em;
	line-height:1.88;
	letter-spacing: 0.06em;
	padding: 0 60px 0 0;
}
.policy-layout{
	display:grid;
	grid-template-columns:1fr 134px;
	gap: 70px;
	padding: 0 50px;
}
.policy-layout-text{
	margin-top: -0.44em;
}
.policy-layout-text p{
	line-height:1.88;
	letter-spacing: 0.06em;
	text-align: justify;
}
.policy-layout-image{
	padding-top: 18px;
}
.policy-layout img{
	width:110px;
	justify-self:left;
}
.links-list{
	list-style:none;
	margin: 52px 0 0 10px;
	padding: 0;
}
.links-list li{
	margin-left: 1.02em;
	text-indent: -1.02em;
}
.links-list a{
	color:var(--mint);
	font-weight:500;
	font-size: 1.11em;
	line-height: 2;
	letter-spacing: 0.06em;
}
.links-list a::before{content:'＞';}
.links-list a:hover{text-decoration:underline}
.note-box{
	background:#fef7ef;
	border-radius:15px;
	padding:22px 22px;
	margin-top:65px;
}
.note-box h3{
	font-weight:500;
	font-size: 1.22em;
	line-height: 1.59;
	letter-spacing: 0.06em;
	display:block;
	margin-bottom:8px;
}
.note-box p{
	margin-left:1em;
	text-indent:-1em;
	line-height: 1.88;
	
}
.details-block h3{
	font-weight:500;
	font-size: 1.22em;
	line-height: 1.59;
	letter-spacing: 0.06em;
	margin-bottom: 18px;
}
.details-block p+h3{
	margin-top: 60px;
}
.details-block p{
	line-height: 1.88;
	letter-spacing: 0.06em;
}
.details-block p.contact{
	margin-top: 35px;
}
.details-block p.note{
	margin-left: 1em;
	text-indent: -1em;
}
.satellite-action{display:block;width:min(100%,650px);margin:91px auto 115px;border:0;background:none;padding:0;cursor:pointer}
.satellite-action img{width:100%}
.satellite-action:hover img{content:url('../images/button-satelite-on.png')}

.satellite-button{
	display:block;
	width:min(100%,650px);
	margin:91px auto 115px;
	border:0;
	background:none;
	padding:0;
	cursor:pointer;
	border: 2px solid var(--mint);
	border-radius: 9999px;
	background: #ffffff;
	color: var(--mint);
	padding: 24px 82px 24px 58px;
	position: relative;
}

.satellite-button .satellite-button-main{
	display: block;
	width: 100%;
	text-align: right;
	font-weight: 500;
	font-size: 1.27em;
	line-height: 1.17;
	margin-bottom: 8px;
}
.satellite-button .satellite-button-sub{
	display: block;
	width: 100%;
	text-align: right;
	font-weight: 500;
	font-size: 1.01em;
	line-height: 1.17;
}
.satellite-button:hover{
	background: var(--mint);
	color: #ffffff;
}
.satellite-button span{
	display: inline-block;
}

.satellite-button::after{
	content: "";
	display: block;
	width: 40px;
	height: 40px;
	background: url("../images/button-satelite-arrow.png") no-repeat center / contain;
	position: absolute;
	right: 28px;
	top: 50%;
	transform:translateY(-50%);
}
.satellite-button:hover::after{
	background: url("../images/button-satelite-arrow-on.png") no-repeat center / contain;
}
.fact-list{
	margin:0 0 68px;
	display:grid;
	grid-template-columns:11em 1fr;
	gap:0 2px;
}
.fact-list dt{
	font-weight:400;
	line-height: 1.88;
	letter-spacing: 0.06em;
}
.fact-list dd{
	line-height: 1.88;
	letter-spacing: 0.06em;
}
.gmap-wrap{
	position:relative;
	margin: 65px 45px 0;
	aspect-ratio: 860/384;
}
.gmap-wrap iframe{
	position: absolute;
	left:0;
	top:0;
	width: 100%;
	height: 100%;
}
.info-section{margin:0 0 65px}
.info-section h2{
	margin-bottom: 35px;
}
.info-section p{
	line-height: 1.88;
	letter-spacing: 0.06em;
}
#pricing{
	margin-bottom: 110px;
}
#guide{
	margin-bottom: 98px;
}
#use-case{
	margin-bottom: 110px;
}
.pricing-buttons{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap: 48px;
	margin:40px 44px 0;
}
.download-btn{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:73px;
	border-radius:9px;
	border:0;
	background:var(--pink);
	color:#fff;
	font-weight:500;
	font-size:1.39em;
	letter-spacing:.06em;
	cursor:pointer;
	padding:12px 28px;
	transition:background .15s,color .15s;
}
.download-btn::after{
	content:'↘';
	position:absolute;
	right:10px;
	bottom:0px;
	font-size:20px;
	font-weight:400;
	letter-spacing:0;
}
.download-btn:hover{
	color: #e27788;
	background: #f6d6db;
}
.download-btn.gray{
	background:#dfdfdf;
	color:var(--black);
}
.download-btn.gray:hover{
	background:#909090;
	color:#ffffff;
}
.use-case{
	width:100%;
	margin:45px auto 0;
	border-radius: 30px;
	background: #fef7ef;
	padding: 40px 35px;
}
.use-case .table-pc{
	display: block;
}
.use-case .table-sp{
	display: none;
}
.use-case h3{
	display: block;
	background: #6edce6;
	text-align: center;
	width: fit-content;
	border-radius: 10px;
	padding: 6px 20px;;
	font-size: 1.388em;
	font-weight:500;
	line-height: 1;
	letter-spacing:0.06em;
	margin-bottom: 18px;
}
.use-case strong{
	display: block;
	font-size: 1.11em;
	font-weight:500;
	line-height: 1.6;
	letter-spacing:0.06em;
	margin-bottom: 4px;
}
.use-case p{
	line-height: 1.38;
	letter-spacing:0.06em;
	text-align: justify;
	text-align-last: left;
}
.use-case-kaigo{
	margin-bottom: 60px;
}
.use-case .table-wrapper{
	width: 100%;
	overflow-x: scroll;
	scrollbar-width: none;
}
.use-case table{
	border-collapse: collapse;
	table-layout: fixed;
	margin-top: 18px;
	width: 100%;
	line-height: 1.2;
}
.use-case table th{
	font-size: 0.88em;
	font-weight: 400;
	background: #d5fcff;
	text-align: center;
	border: 1px solid var(--black);
}
.use-case table td{
	font-size: 0.88em;
	font-weight: 400;
	background: #ffffff;
	text-align: center;
	border: 1px solid var(--black);
}
.use-case table th{
	background: #d5fcff;
	padding: 7px 5px;
}
.use-case-iryo table th{
	background: #ffef8c;
}
.use-case .table-sp th{
	padding: 7px 5px;
}
.use-case .table-sp td{
	padding: 7px 5px;
}
.use-case .table-sp table{
	table-layout: auto;
} 
.use-case .table-sp table th[scope="row"]{
	width: 1em;
}
.use-case table th.vertical{
	width: 2em;
	padding: 5px 0.5em;
}
.use-case table td.vertical{
	width: 2em;
	padding: 1em 1em;
	writing-mode: vertical-lr;
}
.use-case table td.vertical span{
	writing-mode: horizontal-tb;
}

.use-case dl {
	display: grid;
	grid-template-columns: 25px 1fr;
	gap: 10px;
	align-items: start;
	margin: 0 3px;
}
.use-case dl dt.example{
	font-size: 0.94em;
	font-weight: 500;
	background: #787878;
	color: #fff;
	text-align: center;
	border-radius: 5.5px;
	padding: 3px;
	line-height: 1.1;
}
.use-case dl dd{
	line-height: 1.5;
	letter-spacing:0.06em;
}
.use-case-iryo{
	margin-bottom: 67px;
}
.use-case-iryo h3{
	background: #ffd716;
}
.use-case-shoni{
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 30px 45px;
}
.use-case-shoni h3{
	background: #ffb8b0;
	padding: 6px 10px;
}
.use-case-shoni .image{
	width: 45px;
	margin: auto;
	margin-right: 63px;
}



#number-latest{
	width:min(100% - 36px,1000px);
	padding: 0 10px;
	margin: 0 auto;
}
#number-old{
	width:min(100% - 36px,1000px);
	padding: 0 30px;
	margin: 0 auto;
}
.newsletter h2{
	text-align:center;
	font-size: 1.11em;
	line-height: 1.6;
	margin:0 0 57px;
	color: var(--black);
}
.number-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:85px;
	align-items:start;
	margin:0 0 140px;
}
.number-card{text-align:center}
.number-thumb{
	display:block;
	padding:0;
	border:0;
	background:none;
	width:100%;
	cursor:pointer
	;box-shadow:0 5px 19px #d4dddd;
	transition:transform .2s,box-shadow .2s;
}
.number-thumb:hover{
	transform:translateY(-4px);
	box-shadow:0 10px 22px #bcc9ce;
}
.number-thumb img{
	width:100%;
	aspect-ratio:430/608;
	object-fit:contain;
}
.number-link{
	display:flex;
	align-items:center;
	justify-content:start;
	gap:12px;
	background:var(--sky);
	color:white;
	border-radius:10px;
	font-weight:500;
	font-size: 0.94em;
	min-height: 40px;
	margin :34px 20px 0;
	padding:5px 50px 5px 25px;
	letter-spacing: 0.06em;
	transition:background .15s,color .15s;
	position: relative;
}
.number-link:hover{
	background:#c1d7ed;
	color: #969696;
}
.number-link::after{
	content: "";
	display: block;
	width: 15px;
	height: 19px;

background: url("../images/file-link.png") no-repeat center / contain;

	position: absolute;
	right: 26px;
	top: 50%;
	transform:translateY(-50%);
}
.number-link:hover::after{
background: url("../images/file-link-on.png") no-repeat center / contain;

}
.newsletter-separator{
	width:116px;
	height:29px;
	margin:0 auto 75px;
	background:url(../images/separator-tayori.png) no-repeat center/ contain;
}
.older-numbers{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap: 40px 33px;
	margin:0 0 175px;
}
.older-numbers a{
	display:flex;
	align-items:center;
	justify-content:start;
	background:var(--sky);
	color:white;
	font-weight:500;
	border:0;
	border-radius:10px;
	cursor:pointer;
	min-height:40px;
	font-size: 0.94em;
	padding:5px 40px 5px 20px;
	letter-spacing: 0.06em;
	transition:background .15s,color .15s;
	position: relative;
}
.older-numbers a:hover{
	background:#c1d7ed;
	color: #969696;
}
.older-numbers a::after{
	content: "";
	display: block;
	width: 15px;
	height: 19px;
background: url("../images/file-link.png") no-repeat center / contain;
	position: absolute;
	right: 16px;
	top: 50%;
	transform:translateY(-50%);
}
.older-numbers a:hover::after{
background: url("../images/file-link-on.png") no-repeat center / contain;

}
.modal{border:0;border-radius:17px;max-width:min(460px,calc(100% - 30px));padding:30px 32px;box-shadow:0 15px 65px #2f3c4266;line-height:1.8}
.modal::backdrop{background:#1c2b36a6}
.modal h2{font-size:21px;color:var(--pink);margin:0 0 8px}
.modal p{margin:0 0 25px}
.modal-close{border:0;background:var(--pink);color:white;border-radius:8px;padding:8px 25px;cursor:pointer}




/* responsive */
@media (max-width: 1072px){
	.services-list{
		grid-template-columns: 312px 312px;
		justify-content: center;
	}
	.services-list-service{
		max-width: 312px;
		aspect-ratio: inherit;
	}
}
@media (max-width: 900px){
	body{font-size:16px;}

	.wrapper,
	.header-top,
	.main-nav,
	.area-section,
	.news-container,
	.footer-inner,
	.copyright{
		width:min(100% - 32px, 100%);
		padding-left:16px;
		padding-right:16px;
	}
	.header{
		position:sticky;
		top:0;
		z-index:40;
		box-shadow:0 4px 16px rgba(0,0,0,.06);
	}
	.header-top{
		align-items:top;
		gap:12px;
		margin-bottom:0;
		padding-top:0px;
		padding-bottom:12px;
		background:#fff;
		width: 100%;
	}
	.header-logo{
		width:auto;
		max-width:none;
		flex:1;
		padding-top:12px;
	}
	.header-logo img{max-height:46px;width:auto;max-width:100%;}
	.tel-link{
		width:150px;
		flex-shrink:0;
	}
	.nav-toggle{
		display:grid;
		place-items:center;
		width:42px;
		height:42px;
		border:1px solid #e2c8cb;
		border-radius:10px;
		background:#fff7f6;
		color:var(--coral);
		font-size:24px;
		line-height:1;
		flex-shrink:0;
		cursor:pointer;
		margin-top: 12px;
	}
	.main-nav{
		display:none;
		position:absolute;
		top:100%;
		left:0;
		right:0;
		width: 100%;
		margin:0;
		padding:0 0 16px;
		background:#fff;
		list-style:none;
		box-shadow:0 12px 24px rgba(0,0,0,.08);
	}
	.main-nav.is-open{display:block;}
	.main-nav li{flex:none;}
	.main-nav .home-link{display:block;}
	.main-nav a{
		text-align:left;
		padding:14px 16px;
		font-size:1rem;
		border:0;
		border-bottom:1px solid #e7ecec;
		background:#fff;
	}
	.main-nav li:last-child a{border-right:0;border-bottom:0;}
	.main-visual{
		width:min(100% - 16px,100%);
		margin:20px auto 36px;
	}
	.section-heading{
		min-height:110px;
		padding:16px 12px;
	}
	.section-heading h2{font-size:1.4em;}
	.section-heading p{font-size:.75em;}
	.about-intro{
		flex-direction: column;
		gap:24px;
		padding:0 0 60px;
		margin-top:-24px;
	}
	.about-intro-text{padding-top:48px;}
	.services-illustration,
	.flow-illustration{
		margin:32px auto 44px;
		padding:0 16px;
	}
	.services-list{
		margin-top: 32px;
		padding:0 16px;
	}
	.flow-chart{
		margin:32px auto 44px;
		padding:0 16px;
	}
	.services-list{
		grid-template-columns: 312px;
	}
	.services-list-service{
	}
	.area-section{
		display:grid;
		gap:24px;
		margin:36px auto 44px;
	}
	.area-section-text,
	.area-section-image{width:100%;padding:0;}
	.area-section h3{font-size:1.2em;}
	.news-container{margin:0 auto 64px;}
	.news-panel{grid-template-columns:1fr;}
	.news-label{padding:14px 16px;font-size:1.1em;}
	.news-list{padding:18px 16px;gap:16px;}
	.news-item{grid-template-columns:1fr;gap:4px;}
	.footer-scenery img{width:100%;}
	.footer{padding-top:20px;}
	.footer-inner{
		flex-direction:column;
		gap:22px;
	}
	.footer-brand{width:100%;}
	.footer-brand img{width:min(100%, 330px);}
	.footer-nav{min-width:0;}
	.copyright{margin-top:24px;font-size:.5em;}
	.sub-title{
		margin:42px auto 48px;
		padding:0 16px;
	}
	.newsletter .sub-title{
		margin:42px auto 48px;
	}
	.sub-title img{max-height:44px;}
	.content-section{margin:0 0 56px;}
	#greeting{
		margin:0 0 56px;
	}
	#policy{
		margin:0 0 56px;
	}
	#guideline{
		margin:0 0 56px;
	}
	#detail{
		margin:0 0 56px;
	}
	#map{
		margin:0 0 56px;
	}
	#recruit{
		margin:0 0 56px;
	}
	#open-office{
		margin:0 0 56px;
	}
	.section-title{
		font-size:1.35em;
		margin-bottom:24px;
	}
	.greeting-layout,
	.policy-layout{
		grid-template-columns:1fr;
		gap:24px;
		padding:0;
	}
	.greeting-layout img{width:min(180px, 70vw);margin:0 auto;}
	.greeting-sign{margin:32px 0 0;font-size:1em;line-height:1.75;padding:0;}
	.policy-layout-image{
		text-align: center;
	}
	.links-list{
		margin: 20px 0 0;
	}
	.policy-layout img{
		width:min(110px, 30vw);
		margin: auto;
	}
	.links-list a,
	.fact-list dt,
	.fact-list dd,
	.info-section p,
	.details-block p,
	.note-box p,
	.note-box h3,
	.greeting-layout p,
	.policy-layout-text p{
		line-height:1.8;
		letter-spacing:.02em;
	}
	.note-box{padding:18px 16px;margin-top:22px;}
	.details-block h3{font-size:1.1em;margin-bottom:14px;}
	.details-block p+h3{margin-top:36px;}
	.satellite-action{margin:28px auto 36px;}
	.fact-list{grid-template-columns:1fr;gap:2px;margin-bottom:28px;}
	.fact-list dt{font-weight:500;margin-top:10px;}
	.gmap-wrap{
		margin:0;
		aspect-ratio:1/1;
		border-radius:14px;
		overflow:hidden;
	}
	.info-section h2 {
		margin-bottom: 24px;
	}
	.pricing-buttons{
		grid-template-columns:1fr;
		gap:16px;
		margin:24px 0 56px;
	}
	.download-btn{
		font-size:1.1em;
		min-height:60px;
		padding:12px 42px 12px 42px;
	}
	.use-case{
		padding: 16px 20px;
	}
	.use-example{margin:18px auto 64px;}
	.newsletter h2{margin-bottom:20px;}
	.number-grid{
		grid-template-columns:1fr;
		gap:28px;
		margin:0 0 72px;
	}
	.number-link{margin:16px 0 0;padding-left:18px;padding-right:42px;}
	.newsletter-separator{margin:0 auto 44px;}
	.older-numbers{
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:14px;
		margin:0 0 84px;
	}
	.older-numbers a{min-height:52px;padding:8px 38px 8px 14px;}
	.modal{padding:24px 18px;}
	.use-case table{
		font-size: 16px;
	}
	.satellite-button {
		margin:28px auto 36px;
		display: block;
		width: min(100%, 592px);
		padding: 24px 66px 24px 52px;
	}
	.satellite-button::after {
		width: 32px;
		height: 32px;
		right: 20px;
	}
}

@media (max-width: 660px){
	.satellite-button {
		display: block;
		font-size: 12px;
		width: min(100%, 275px);
		padding: 10px 40px 10px 16px;
	}
	.satellite-button::after {
		width: 20px;
		height: 20px;
		right: 12px;
	}
}

@media (max-width: 520px){
	body{font-size:15px;}
	.header-top{gap:8px;}
	.header-logo img{max-height:38px;}
	.tel-link{width:80px;}
	.nav-toggle{width:38px;height:38px;font-size:21px;}
	.section-heading h2{font-size:1.22em;}
	.area-section h3{font-size:1.05em;}
	.sub-title img{max-height:38px;}
	.number-thumb img{aspect-ratio:auto;}
	.older-numbers{grid-template-columns:1fr;}
	.use-case-shoni{
	  grid-template-columns: auto;
	  grid-templat-rows: auto 45px;
	}
		
	.use-case .table-pc{
		display: none;
	}
	.use-case .table-sp{
		display: block;
	}
	.tel-link img{
		content:url('../images/button-tel-sp.png');
	}
	.tel-link:hover img{
		content:url('../images/button-tel-sp-hover.png');
	}
}


/* Decorative half-circle motif: positions reproduce the supplied PC reference images.
   The visual already contains two pink motifs, and the newsletter already has
   a blue separator. Those embedded motifs are not duplicated. */
@media (min-width: 901px){
  body.page-home .about-intro,
  body.page-home .home-service-section,
  body.page-home .area-section,
  body.page-guidance .sub-title,
  body.page-guidance .use-case,
  body.page-station .greeting-sign,
  body.page-station .station-region-heading,
  body.page-station .station-tour { position: relative;z-index: 2; }

  body.page-home .about-intro::after,
  body.page-home .home-service-section::before,
  body.page-home .home-service-section::after,
  body.page-home .area-section::after,
  body.page-guidance .sub-title::before,
  body.page-guidance .use-case::after,
  body.page-station .greeting-sign::after,
  body.page-station .station-region-heading::after,
  body.page-station .station-tour::after {
    content:"";
    display:block;
    position:absolute;
    width:117px;
    height:30px;
    background-position: center;
    background-repeat:no-repeat;
    background-size:contain;
    pointer-events:none;
    z-index:-1;
  }

  /* TOP: lemon wave under About text; two pink waves around service cards;
     lemon wave beside service-area copy. */
  body.page-home .about-intro::after {
    background-image:url('../images/page-motif-yellow.png');
    left:55px;
    bottom:85px;
  }
  body.page-home .home-service-section::before {
    background-image:url('../images/page-motif-pink.png');
    right:32px;
    top:302px;
  }
  body.page-home .home-service-section::after {
    background-image:url('../images/page-motif-pink.png');
    left:98px;
    bottom:-80px;
  }
  body.page-home .area-section::after {
    background-image:url('../images/page-motif-yellow.png');
    left:75px;
    bottom:0px;
  }
  
  body.page-guidance .sub-title::before {
    background-image:url('../images/page-motif-pink.png');
    left:-37px;
    top:77%;
    transform:translateY(-50%);
  }
  body.page-guidance .use-case::after {
    background-image:url('../images/page-motif-yellow.png');
    left:-150px;
    bottom:-96px;
  }
  
  body.page-station .greeting-sign::after {
    background-image:url('../images/page-motif-mint-yellow.png');
    left:-23px;
    top:53%;
    transform:translateY(-50%);
  }
  body.page-station .station-region-heading::after {
    background-image:url('../images/page-motif-yellow.png');
    right:-60px;
    top:-10px;
  }
  body.page-station .station-tour::after {
    background-image:url('../images/page-motif-mint-yellow.png');
    right:-90px;
    bottom:35px;
  }
}


#site_tab.hospital{
    background: #e5eaef;
}
#site_tab.clinic{
    background: #e5f6f8;
}
#site_tab.cherry{
    background: #ffc8d2;
}
#site_tab.nijinohoukan{
    background: #fae0dc;
}

#site_tab ul{
    display: flex;
    justify-content: center;
    margin: 0 auto;
    padding: 0;
    max-width: 980px;
    height: 30px;
    list-style: none;
}

@media(max-width:780px){
    #site_tab ul{
       height: 40px;
    }
}



#site_tab ul li{
    flex: 1;
    text-align:center;
    gap: 8px;
    border-left: 1px solid #ddd;
    font-size: 14px;
    font-family: "Noto Sans JP", sans-serif;
}
#site_tab ul li:last-child{
    border-right: 1px solid #ddd;
}
#site_tab ul li a{
   display: flex;
   align-items:center;
   justify-content: center;
    color: #333;
    background: #fff;
    width: 100%;
    height: 100%;
        letter-spacing: 1px;
     font-size: 14px;
}

#site_tab ul li a span span{
    display: inline-block;
}
@media(max-width:860px){
    #site_tab ul li a{
        font-size: 12px;
		line-height:1.2;
    }
}
@media(max-width:480px){
    #site_tab ul li a{
        font-size: 2.5vw;
    }
}
#site_tab.hospital ul li.hospital a,
#site_tab ul li.hospital a:hover{
    color: #fff;
    background: #00215d;
}
#site_tab.clinic ul li.clinic a,
#site_tab ul li.clinic a:hover{
    color: #fff;
    background: #00a9ba;
}
#site_tab.cherry ul li.cherry a,
#site_tab ul li.cherry a:hover{
    color: #fff;
    background: #ed7e93;
}

#site_tab.nijinohoukan ul li.nijinohoukan a,
#site_tab ul li.nijinohoukan a:hover{
    color: #fff;
    background: #f19b63;
}

#site_tab.hospital ul li.hospital a,
#site_tab.clinic ul li.clinic a,
#site_tab.cherry ul li.cherry a,
#site_tab.nijinohoukan ul li.nijinohoukan a{
	pointer-events: none;
}

