@charset "UTF-8";
/* CSS Document */

/*=====
共通設定
=====*/
main section {
	padding-top: 100px;
	padding-bottom: 150px;
}
section h1 {
	color: var(--theme-color);
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
	font-size: 2rem;
	letter-spacing: 0.35rem;
	text-align: center;
	margin-bottom: 1.8rem;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}
.vw-xs section h1 {
	font-size: 1.8rem;
}
section h2 {
	font-size: 1.2rem;
	line-height: 1.5;
	text-align: center;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 2rem;
	font-weight: bold;
}
.vw-xs section h2 {
	width: 100%;
	font-size: 0.9rem;
	letter-spacing: 0;
	text-wrap:balance;
}
section p {
	display: block;
	font-size: 0.875rem;
	line-height: 2;
	width: 90%;
	margin:0 auto 1.8em;
}


/*======
topimage
======*/
main section.topimage {
	padding-top: 0;
	padding-bottom: 0;
}
.topimage {
	width: 100%;
	aspect-ratio: 2.17 / 1;
	max-height: 880px;
	background-color:#CCC;
	display: flex;
	justify-content: center;
	align-items: center;
	background-image: url("topimage01.jpg");
	background-size: cover;
	background-position: bottom;
}
.topimage .titleBlock {
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-weight: 800;
	font-style: normal;
	line-height: 1;
	text-align: center;
	color: #FFF;
	text-shadow: 0px 0 10px rgba(0, 0, 0, 0.5);
	width: 90%;
}
.titleBlock .title1 {
	font-size: clamp(40px, 13vw, 100px);
	letter-spacing: 1px;
}
.titleBlock .title2 {
	font-size: clamp(13px, 4vw, 30px);
	letter-spacing: 2px;
	margin-bottom: 20px;
}
.titleBlock .title3 {
	font-size: clamp(10px, 2.7vw, 20px);
	letter-spacing: 0.6px;
}
.vw-sm .topimage {
	aspect-ratio:none;
	max-height: none;
	height: calc(100vh - 210px);
}
.vw-xs .topimage {
	aspect-ratio:none;
	max-height: none;
	height: calc(100vh - 110px);
}


/*======
about us
======*/
.about .wrap {
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	justify-content: space-between;
	gap:20px 70px;
	width: 90%;
	max-width: 1310px;
	margin: auto;
	justify-content: center;
	text-align: justify;
}
.about .wrap .box {
	flex-basis: calc((100% - 70px)/2);
}
.about .wrap .box img {
	text-align: center;
	margin: 0.5em auto 2em;
}
.about .wrap .box p {
	width: 100%;
}
@media screen and (max-width: 800px) {
	.about .wrap {
		 flex-direction: column;
	}
}


/*======
service
======*/
/*背景色濃いので、小さい字もfont-weight:bold*/
.service {
	background-color: var(--theme-color);
	color:#FFF;
	padding-top: 100px;
	padding-bottom: 50px;
	background-image: url("service_bg.jpg");
	background-size: cover;
}
.service h1 {
	color:#FFF;
}
.service p {
	text-align: center;
	font-weight: bold;
}
.vw-xs .service p {
	text-align: left;
}
.service p+h2 {
	margin-top: 50px;
}
.service li {
	font-weight: bold;
}
@media screen and (max-width: 600px) {
	.service p.singleLine br {
		display: none;
	}
}
/*期待される効果*/
.service ul.kouka {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap:1em;
	width: 100%;
	max-width: 50em;
	margin: 0 auto 70px;
	font-size: 0.85rem;
}
.service ul.kouka li {
	width: 12em;
	margin-left: 1.5em;
}
.service ul.kouka li.last {
	list-style: none;
	margin-left: 2em;	
}
/*col_dogAge*/
.service .col_dogAge {
	display: flex;
	justify-content: center;
	width: 90%;
	max-width: :1146px;
	margin: 0 auto 50px;
	gap:95px;
}
.service .col_dogAge > div {
	width: 214px;
	text-align: center;
}
.service .col_dogAge > div > img {
	margin: auto;
	margin-bottom: 1em;
}
.service .col_dogAge > div > h3 {
	font-size: 1rem;
	line-height: 1.1;
	padding-bottom: 0.5em;
	margin-bottom: 1.1em;
	border-bottom: solid #FFF 4px;
}
.service .col_dogAge > div > p {
	font-weight: bold;
	font-size: 0.85rem;
	line-height: 1.8em;
}
.vw-xs .service .col_dogAge > div > p {
	text-align: center;
}
@media screen and (max-width: 1072px) {
	.service .col_dogAge {
		flex-wrap: wrap;
		justify-content: center;
		gap:50px 40px;
	}
}
/*注意事項*/
.service .note {
	display: block;
	margin: auto;
	width: 90%;
}
.service .note ul {
	font-size: 0.8rem;
	line-height: 1.8;
	display: block;
	width:fit-content;
	margin:auto auto auto auto;
	padding: 0 0 0 2em;
}


/*======
 contact
=======*/
.col_qr {
	display: flex;
	gap:40px 80px;
	justify-content: center;
	align-items: start;
	margin-top: 70px;
}
.col_qr img {
	max-width: 100%;
	max-height: 100%:
}
@media screen and (max-width: 580px) {
	.col_qr {
		gap:60px 40px;
	}
}
@media screen and (max-width: 500px) {
	.col_qr {
		flex-wrap: wrap;
	}
}
