@charset "UTF-8";

* {
	padding: 0;
	margin: 0;
	list-style-type: none;
	box-sizing: border-box;
}

body {
	width: 100%;
	overflow-x: hidden;
	font-family: "Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,Helvetica Neue,Arial,sans-serif;
	font-size: 16px;
	line-height: normal;
	line-height: 1.6;
}

.noto-serif-jp {
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-style: normal;
}

@media screen and (min-width: 600px) {
	html,body{
		font-size: 22px; 
	}
	body {
		background-image: url("../images/common/logo_pattern.png");
		background-attachment: fixed;
	}
}

img {
	width: 100%;
	max-width: 100%;
}
a {
	text-decoration: none;
}

a:active, a:hover {
	opacity: 1;
}

:opening, :link, :visited {
	color: inherit;
}

.rounded::before {
	display: block;
  content: "";
  width: 100%;
	height: 4vh;

  -webkit-mask-image:  url("../images/for-parents2507/daen.svg");
  mask-image: url("../images/for-parents2507/daen.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
	mask-size: contain;
	background-color: #FFF;
}

@media screen and (min-width: 600px) {
	.rounded::before {
		height: 6vh;
	}
}

.wrapper{
	width:min(100%, 650px);
	margin: 0 auto;
	background-color: #ffffff;
	position: relative;
	overflow-x :hidden;
}

.contInner {
	padding: 16px;
}

.center {
	text-align: center;
}

.bg, .bgLight.rounded::before  {
	background-color: #E0EFEB;
}

.bgLight, .bg.rounded::before {
	background-color: #F3FBF9;
}

span {
	font-weight: inherit;
}

.green {
	color: #1A635B;
}

.red {
	color: #C9225F;
}

.big {
	font-size: 1.2em;
}

.bold {
	font-weight: bold;
}

/* ーーーーーーーーーーーーーーーー */

.fvImage {
	position: absolute;
		 top: 0;
		 left: 0;
	z-index: 0;
}

.titleImage {
	position: relative;
	z-index: 1;
	padding-top: calc(100vw - 53vw); 
	padding-bottom: .2rem;
}

@media screen and (min-width: 600px) {
	.titleImage {
		padding-top: 250px; 
	}
}

#topCtaArea.rounded::before {
	background-color: #FFF;
}

.sankan {
	padding: 0 .4rem;
}

.smileFukidashi {
	padding-bottom: 1rem;
}

.ctaBox {
	padding-bottom: 1.5rem;
}

.ctaBox img{
filter: drop-shadow(1px 3px 3px rgba(0, 0, 0, 0.55))
}

#happy ul {
	margin: 2rem 0 3.5rem 0;
}

#happy ul li {
	margin-bottom: 1.6rem;
	text-align: center;
	font-weight: bold;
	font-size: 1.2rem;
	text-decoration-line: underline;
	text-decoration-style: dotted;
	text-decoration-color: #C4C28D;
	text-underline-offset: 29%;
}

.canvasBg {
	border-radius: .5rem;
	background-image: url("../images/for-parents2507/canvas.jpg");
	box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.25);
}

.hardEra {
	position: relative;
	margin-bottom: 9.5rem;
	padding: 2rem 0 6rem 0;
}

.henkaList {
	margin: 1rem 0 2rem 0;
}

.henkaList div {
	margin-bottom: 1rem;
	display: flex;
	align-items: center;
	gap: .2rem;
}

.henkaList dt {
	width: 22%;
	margin-left:.7rem;
}

.henkaList dd {
	font-size: 1.5rem;
	line-height: 1.5;
	font-weight: bold;
	letter-spacing: -0.05rem;
	font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

.outerImage {
	position: absolute;
		left: 0;
		bottom: -7rem;
}

#reason p {
	font-weight: bold;
	font-size: 1.2rem;
	line-height:2.9rem;
}

.bgCheck, .bgDots.rounded::before {
	background-image: url("../images/for-parents2507/grid_bg.png");
}

.bgCheck.rounded::before {
	background-color: #F3FBF9;
}

#points {
	text-align: center;
}

.pointHead {
	margin: 1.5rem 0;
}

#points p {
	font-size: 1.25rem;
	font-weight: bold;
	line-height: 2rem;
}

.pointImage {
	margin: 2rem auto 3rem auto;
	width: 80%;
}

.telBox {
	position: relative;
	width: calc(100vw - 32px);
	height: calc(100vw - 32px);
	background-image: url("../images/for-parents2507/tel_area.jpg");
	background-repeat:no-repeat;
	background-size:100%;
	background-position:center center;
}

@media screen and (min-width: 600px) {
	.telBox {
		width: 100%;
		height: 522px;
	}
}

.telBox .ctaBox {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
	margin: 0 1rem;
	padding: 0;
}

.zenkokuShop {
	margin: 1.5rem 0 3rem 0;
}

#soudankai {
	padding-bottom: 1rem;
}

.bgDots, #soudankaiNagare::before {
	background-image: url("../images/for-parents2507/bgdotted.jpg");
}

.voice {
	position: relative;
	margin: 1rem;
	padding-bottom: 1rem;
}

.voice h3::before {
	display: block;
  content: "";
  width: 11px;
	height: 11px;
	position: absolute;
		top: .6rem;
		right: .6rem;
  background-image: url("../images/for-parents2507/voice_heart.svg");
  background-repeat: no-repeat;
	background-size: contain;
}

.voice h3 {
	margin-bottom: 1rem; 
	padding: 1.5rem .5rem .5rem .5rem;
	border-bottom: solid 1px #1A635B;
	color: #1A635B;
	text-align: center;
	font-size: 1.4rem;
	letter-spacing: -0.01rem;
	font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

.voiceDetButton {
	width: 100%;
	padding: 1.3rem .75rem .5rem .75rem;;
}

.voiceDetail {
	display: none;
	padding-bottom: 1.5rem;
}

.interviewItem {
	margin-bottom: 1.7rem;
}

.interviewItem dt::before{
 content: "";
 display: block;
 width: 4px;
 height: 4.4rem;
 border-radius: 0.2rem 0.2rem 0rem 0rem;
 position: absolute;
	top:0;
	left: 0;
 background-color: #C4C28D;
}

.interviewItem dt.singleRow::before {
 height: 3rem;
}

.interviewItem dt{
	position: relative;
	margin: 1.5rem .5rem 1rem .5rem;
	padding: .3rem 0 .3rem  1rem;
	border-bottom: solid 1px #E0EFEB;
	color: #1A635B; 
	font-size: 1.25rem;
	line-height: 1.5;
	letter-spacing: -.05rem;
}

.interviewItem dt.singleRow {
	padding-top: .4rem;
	line-height: 1.8;
}

.interviewItem dd {
	margin: 0 1rem;
	font-size: 1.1rem;
	letter-spacing: -.05rem;
	text-align: justify;
}

.miniCtaBox {
	margin: 0 .8rem;
}

#soudankaiNagare {
	padding-bottom: 2rem;
}

#soudankaiNagare h3{
	margin: 2.5rem 1.5rem 0 1.5rem;
	border-radius: 0.5rem 0.5rem 0rem 0rem;
	background-color:#00917D;
}

.nagareItem {
	margin: 0 1.5rem;
	padding: 1rem  1.5rem;
	background-color: #FFF;
}

.nagareItem div {
	padding: 2.5rem 1.5rem 1.5rem 1.5rem;
	border-top: dotted 1px #30a093;
}

.nagareItem:first-of-type div {
	padding-top: 1.5rem;
	border-top: none;
}

.nagareItem:last-of-type{
	padding-bottom: 2.5rem;
	border-radius:  0rem 0rem 0.5rem 0.5rem;
}

.biggerCtaArea {
	padding: 2.5rem 1.5rem;
	text-align: center;
}

.biggerCtaArea .ctaBox p {
	color: #1A635B;
	letter-spacing: -0.05rem;
	line-height: 3;
}


#contact {	
	padding-bottom: 2rem;
}

#contact .caption {
	margin-top: 1rem;
	text-align:center;
}

#contact .telBox{
	margin: 1rem auto 0;
}

@media screen and (min-width: 600px) {
	#contact .telBox{
	width: calc(100% - 16px);
	margin: 4rem 0 2rem 0;
	}
}


#shop {
	padding: 1rem;
	padding-bottom: 3rem;
}

#shop .musbellKana{
	width: 70%;
	margin: 0 auto 2rem;
}

.shopHead {
	font-size: 1.6rem;
	font-weight: bold;
	color:#00917D;
}

.shopTitle {
	position: relative;
	height: 4rem;
	margin: 2rem auto;
	border-top: solid 1px #30a093;
	border-bottom: solid 1px #30a093;
}
.shopCounter {
	position: absolute;
	top: 50%;
  left: 1rem;
  transform: translateY(-50%);
	width: 7rem;
	height: 7rem;
	display: flex;
	flex-direction:column;
	justify-content:center;
	align-items: center;
	color:#165750;
	font-size: .9rem;
	z-index: 1;
}

.shopCounter::before {
	content: "";
	position: absolute;
	top: .55rem;
	left: .5rem;
	width: 6rem;
	height: 6rem;
	border-radius: 50%;
	background-color:#E0EFEB;
	z-index: -1;
}


.shopCounter .big {
	margin-right: -3px;
	font-size: 2.3em;
	font-family: serif;
	line-height: 1;
}

.shopHead {
	padding-left: 9.5rem;
	line-height: 4rem;
	letter-spacing: .2em;
}

.todoufuken {
	margin-top: .5rem;
	padding: .5rem 0;
	font-size: 1.2em;
	font-weight: bold;
	color: #30a093;
}

.map-shop {
	display: flex;
	flex-wrap: wrap;
}

.map-shop li{
	height: 2em;
	flex-basis: 25%;
}

.map-shop li::before{
	content:"・";
	color: #30a093;
}

.map-shop li.satelite {
	flex-basis: 50%;	
}


footer {
	padding: 3rem 1rem;
	background-color: #e0efeb;
}

.footer-logo {
	margin: 1rem 0;
	padding-top: 5%;
}
.footer-logo a,
.footer-logo img {
	display: block;
	max-width: min(300px, 80%);
	margin: 0 auto;
}
.company-address {
	text-align: center;
	padding-top: 1.5rem;
}
.ninshou-list {
	max-width: min(400px, 90%);
	margin: 1.5rem auto 0;
	display: grid;
	grid-template-columns: 100px 1fr;
	grid-template-rows: repeat(2, 1fr);
	grid-column-gap: 1rem;
	grid-row-gap: 2rem;
	align-items: center;
}
.ninshou-list .ninshou-img {
	display: flex;
}
.ninshou-img img {
	width: auto;
	height: 100%;
}

#copyright {
	text-align: center;
	font-size: 0.7rem;
	display: block;
	margin: 3rem auto;
}

/*固定ctaボタン*/
/* ーーーーーーーーーーーーーーーー */



.sp-fixed-cta-box {
	display: none;
	width: 100vw;
	padding: 0 8px 5px 8px;
	text-align: center;
	position: fixed;
	bottom: 0;
	z-index: 10;
}
.sp-fixed-cta {
	width: 100%;
	margin: auto;
	display: flex;
	position: relative;
	filter: drop-shadow(0px 0px 4px rgba(0,0,0,0.1));
}
.sp-fixed-cta::after {
	content: "";
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 96%;
	height: 10px;
	background: rgba(0, 0, 0, 0.5);
	filter: blur(5px);
	z-index: 0;
	border-radius: 50%;
}
.sp-fixed-cta a {
	height: 100%;
	width: 50%;
	margin: auto;
	display: flex;
	align-items: center;
	align-content: center;
	position: relative;
	z-index: 10;
}

.sp-fixed-cta {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.sp-fixed-cta:hover,
.sp-fixed-cta:active,
.sp-fixed-cta:has(a:active) {
	transform: scale(1.03);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
}

.sp-fixed-cta:active {
	transform: scale(0.98);
}

.pc-fixed-cta-box {
	display: none;
}

@media screen and (min-width: 600px) {
	.sp-fixed-cta-box {
		display: none;
	}
	.pc-fixed-cta-box {
			display: block;
			max-width: 220px;
			width: calc(calc(100vw - 600px )/2 /2);
			position: fixed;
				right: calc(calc(100vw - 600px )/2 /2 /2);
				bottom: 5vh;
			z-index: 10;
			animation: purun 7s linear 4s infinite;
			filter: drop-shadow(0px 0px 4px rgba(0,0,0,0.25));
		}
		@keyframes purun {
			0%   { transform: scale(1.0, 1.0) translate(0%, 0%); }
			1%  { transform: scale(0.99, 0.99) translate(0%, 1%); }
			2%  { transform: scale(1.01, 0.99) translate(0%, 1.5%); }
			3%  { transform: scale(0.99, 1.01) translate(0%, -1.5%); }
			4%  { transform: scale(1.01, 0.99) translate(0%, 1%); }
			5% { transform: scale(1.0, 1.0) translate(0%, 0%); }
			100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
		}
		.pc-fixed-cta {
			transition: transform 0.2s ease, box-shadow 0.2s ease;
		}
		.pc-fixed-cta:hover,
		.pc-fixed-cta:active,
		.pc-fixed-cta:has(a:active) {
			transform: scale(1.03);
			filter: drop-shadow(0px 8px 16px rgba(0,0,0,0.2));
		}
		
		.pc-fixed-cta:active {
			transform: scale(0.98);
		}
