main {
	padding-bottom:6em;
}

main h1 {
	text-align: center;
	font-family: "Noto Sans", sans-serif;
	letter-spacing: 0.1em;
	font-size: 1.7em;
	color: var(--BaseColor);
	margin: 2em 0 1em;
}

main h1 span {
	display: block;
	font-family: "Noto Sans JP", sans-serif;
	font-size:0.5em;
	letter-spacing: 0.05em;
}

main h1 + p {
	line-height: 1.8;
	background: #F5F5F5;
	padding:3em 2em;
	box-sizing: border-box;
	text-align: justify;
	letter-spacing: 0.05em;
}

main h1 + p strong {
	font-weight: 600;
}

main h1 + p a.btn {
	font-family: "Noto Sans", sans-serif;
	text-decoration: none;
    color: #222;
	margin: 1em auto 0;
    border: solid 1px #CCC;
    background: #FFF;
    display: block;
    padding: 0.7em 2.3em 0.7em 1.6em;
    width:15em;
    border-radius: 1.4em;
    line-height: 1.0;
    position: relative;
}

main h1 + p a.btn:after {
	content:"";
	width:6px;
	height:6px;
	display: block;
	transform: rotate(45deg);
	border-right:solid 1px #999;
	border-top:solid 1px #999;
	position: absolute;
	top:50%;
	right:1.2em;
	margin-top:-3px;
}

.service_items {
	margin:4em 0;
}

.service_items > li {
	margin:4em 0;
}

.service_items > li a {
    padding-left: 1.5em;
    border-left: solid 4px #222;
    display: block;
    text-decoration: none;
    color: #222;
	height: 100%;
	letter-spacing: 0.05em;
	line-height: 1.6;
}

.service_items > li h2 {
	font-weight: 600;
    margin-bottom: 0.5em;
    color:#AAA;
}

.service_items > li h2 i {
	font-family: "Noto Sans", sans-serif;
	font-weight: 600;
	font-size: 1.4em;
	margin-right: 0.8em;
	color:#222;
}

.service_items > li .to_works {
	font-family: "Noto Sans", sans-serif;
	margin: 1em 0 1.5em;
    border: solid 1px #CCC;
    display: inline-block;
    padding: 0.4em 2em 0.4em 1.4em;
    border-radius: 1em;
    line-height: 1.0;
    position: relative;
}

.service_items > li .to_works:after {
	content:"";
	width:6px;
	height:6px;
	display: block;
	transform: rotate(45deg);
	border-right:solid 1px #999;
	border-top:solid 1px #999;
	position: absolute;
	top:50%;
	right:0.8em;
	margin-top:-3px;
}

.service_items > li ul {
	display: flex;
	align-items: flex-start;
	justify-content: left;
}

.service_items > li ul li {
	width:100%;
}

.service_items > li ul li img {
	width: 100%;
}

#profile {
	margin:4em auto 0;
}

#profile > div {
	margin-bottom:4em;
}

#profile .profile_img {
	margin-bottom:1em;
}

#profile img {
	width:100%;
	max-height:300px;
	object-fit: cover;
}

#profile p {
	letter-spacing: 0.03em;
	line-height: 1.8;
	text-align: justify;
}

#profile .profile_name {
	font-size:0.9em;
	margin-bottom:1.2em;
	line-height: 1.6;
	letter-spacing: 0.05em;
}

#profile .profile_name i {
	margin-right:1em;
}

#profile .profile_name span {
	display: block;
	color:#888;
}

#profile h2 {
	font-family: "Noto Sans", sans-serif;
	margin-top:1.5em;
	font-size:1.2em;
	font-weight:600;
	letter-spacing: 0.08em;
	line-height: 1.6;
}

#profile table {
	margin:2em 0 1em;
	width:100%;
}

#profile table tr th,
#profile table tr td {
	padding:0.2em 0;
	letter-spacing: 0.07em;
}

#profile table tr th {
	min-width: 6em;
}

#address {
	background: #F5F5F5;
	padding:1.5em 2em;
	display: block;
	max-width: 1310px;
	box-sizing: border-box;
	margin:0 auto;
}

#address dl + dl {
	margin-top:1em;
}

#address dl dt {
	font-weight:500;
	margin-right:1em;
}

#address dl dt,
#address dl dd {
	letter-spacing: 0.07em;
}

#address dl dd span {
	margin-right:1em;
}


@media print, screen and (min-width: 480px) {

}


@media print, screen and (min-width: 640px) {

main h1 + p {
	padding:3em;
}

main h1 {
	font-size:2em;
}

#address dl {
	width:100%;
	display: flex;
	justify-content: left;
}

#address dl + dl {
	margin-top:0.3em;
}

#address dl dt {
	font-weight:normal;
}

}


@media print, screen and (min-width: 768px) {

.service_items {
	display: flex;
    flex-wrap: wrap;
    gap: 50px;
}

.service_items > li {
	margin: 0;
	width:calc((90vw - 50px) / 2);
}

#profile {
	margin:3em auto 0;
	display: flex;
	align-items: flex-start;
	gap:0 50px;
}

#profile > div {
	width:100%;
	margin-bottom:3em;
}

#address dl dt,
#address dl dd,
#profile table tr th,
#profile table tr td {
	font-size:0.9em;
}

}


@media print, screen and (min-width: 1200px) {

main h1 + p {
	width:90%;
	margin:0 auto;
	display: block;
}

.service_items {
	margin:64px 0 100px;
	gap:64px 80px;
	align-items: stretch;
}

.service_items > li {
	width:calc(((100vw - 300px)*0.9 - 80px) / 2);
}

#profile {
	justify-content: center;
	gap:0 80px;
}

#profile > div {
	max-width:600px;
}

}


@media print, screen and (min-width: 1360px) {

main h1 + p {
	text-align: center;
}

}


@media print, screen and (min-width: 1400px) {

.service_items {
	gap:80px 100px;
}

.service_items > li {
	width:calc(((100vw - 320px)*0.9 - 100px) / 2);
}

#profile {
	margin-top:80px;
	gap:0 80px;
}

}


@media print, screen and (min-width: 1920px) {

.service_items {
	gap:64px 96px;
}

.service_items > li {
	width:calc(((100vw - 320px)*0.9 - 192px) / 3);
}

#profile {
	gap:0 96px;
}

}


