@charset "UTF-8";
/*
Theme Name: eft.hara
Version: 1.0.0
*/

html {
	scroll-behavior: smooth;
}

body {
	color: var(--color-body-1);
	font-family: var(--font-family);
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--color-body-1);
	text-decoration: none;
}

:where(a, button):hover {
	opacity: .7;
}

a:where(:not([href]), [href=""]) {
	pointer-events: none;
}

@media (min-width: 768px) {
	a[href^="tel:"] {
		pointer-events: none;
	}
}

[id] {
	scroll-margin-top: 140px;
} 

@media(max-width: 767px) {
	[id] {
		scroll-margin-top: 100px;
	}
}

.container {
	padding-right: var(--padding);
	padding-left: var(--padding);
	max-width: calc(var(--container) + var(--padding) + var(--padding));
}

.header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 999;
}

.header.is-show {
	animation: headershow .8s ease forwards;
}

@keyframes headershow {
	from {
		top: 0;
		transform: translateY(-100%);
	}
	to {
		top: 0;
		transform: none;
	}
}

body.home .header:not(.is-show) {
	align-items: flex-start;
	position: absolute;
	background: transparent;
}


.site-header-logo {
	position: relative;
	margin-left: 55px;
	margin-bottom: 0;
	z-index: 999;
}

.site-header-logo a {
	display: flex;
}

body.home .header:not(.is-show) .site-header-logo {
	position: relative;
	background: #FFF;
	border-radius: 0 0 30px 0;
	padding: 35px 45px;
	margin-left: 0;
}

.site-header-logo img.site-logo-image {
	display: none;
}

body.home .header:not(.is-show) .site-header-logo img:not(.site-logo-image) {
	display: none;
}

body.home .header:not(.is-show) .site-header-logo img.site-logo-image {
	display: block;
}

body.home .header:not(.is-show) .site-header-logo .corner {
	display: block;
	width: 30px;
	height: 30px;
	position: absolute;
	overflow: hidden;
}

body.home .header:not(.is-show) .site-header-logo .corner::before {
	content: "";
	display: block;
	width: 200%;
	height: 200%;
	position: absolute;
	bottom: 0;
	right: 0;
	background: transparent;
	border-radius: 50%;
	box-shadow: -30px -30px 0 0 #FFF;
	transform: translate(50%,50%);
}

body.home .header:not(.is-show) .site-header-logo .corner:nth-of-type(1) {
	top: 55px;
	right: 0;
	transform: translateX(100%);
}

body.home .header:not(.is-show) .site-header-logo .corner:nth-of-type(2) {
	left: 55px;
	bottom: 0;
	transform: translateY(100%);
}

.header-title {
	display: contents;
}

.site-menu {
	display: flex;
	align-items: center;
	gap: 40px;
}

body.home .header:not(.is-show) .site-menu {
	align-items: flex-end;
}

.site-menu-list {
	display: flex;
	gap: 5px;
	justify-content: space-between;
	max-width: 830px;
	width: 100%;
	--fs: 15;
	font-family: var(--zen-maru);
	font-weight: 500;
	letter-spacing: 0;
	background: #FFF;
	list-style: none;
	border-radius: 30px;
	padding: 0 25px;	
	margin-bottom: 0;
}

.site-menu-list a {
	display: block;
	padding: 15px 10px;
}

.site-menu-contact a {
	display: grid;
	place-content: center;
	place-items: center;
	gap: 5px;
	--fs: 14;
	font-family: var(--zen-maru);
	color: #FFF;
	width: 140px;
	height: 140px;
	background: var(--color-theme-1);
	border-radius: 0 0 0 30px;
}

.site-global-nav-button {
	position: absolute;
    width: 60px;
    height: 80px;
    background: transparent;
    border: none;
    outline: none;
    top: 50%;
    right: 15px;
    padding: 0;
    transform: translateY(-50%);
	z-index: 999;
}

.site-global-nav-button span {
	width: 35px;
    height: 2px;
    background: #000;
    position: absolute;
    top: 50%;
    left: 50%;
    transition: .3s;
}

.site-global-nav-button span:nth-child(1) {
	transform: translate(-50%,calc(-50% + 10px));
}

.site-global-nav-button span:nth-child(2) {
	transform: translate(-50%,-50%);
}

.site-global-nav-button span:nth-child(3) {
	transform: translate(-50%,calc(-50% - 10px));
}

body.noscroll .site-global-nav-button span:nth-child(1) {
	transform: translate(-50%,-50%) rotate(-45deg);
}

body.noscroll .site-global-nav-button span:nth-child(2) {
	transform: translate(-50%,-50%) rotate(45deg);
}

body.noscroll .site-global-nav-button span:nth-child(3) {
	opacity: 0;
	visibility: hidden;
}


body.noscroll {
	overflow: hidden;
	touch-action: pinch-zoom;
}

body.noscroll .header-nav-toggle::before {
    background-color: rgba(0, 0, 0, .2);
	bottom: 0;
	content: '';
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	cursor: default;
	z-index: -2;
}

@media(max-width: 1199px) {
	.site-header-logo {
		margin-left: 20px;
	}
	body.home .header:not(.is-show) .site-header-logo {
		padding: 30px;
	}
	body.home .header:not(.is-show) .site-header-logo .corner:nth-of-type(2) {
		left: 30px;
	}
	.site-header-logo img {
		width: 180px;
	}
	body.home .header:not(.is-show) .site-header-logo img {
		width: 100px;
	}
	.site-menu {
		gap: 20px;
	}
	.site-menu-list {
		padding: 0 15px;
	}
	.site-menu-list a {
		padding: 10px 5px;
	}
	.site-menu-contact a {
		width: 120px;
		height: 120px;
	}
}

@media(max-width: 991px) {
	.header,
	body.home .header:not(.is-show),
	body.noscroll .header:not(.is-show) {
		min-height: 90px;
		background: #FFF;
		align-items: center;
		padding: 0 var(--padding);
		box-shadow: 0 0 5px rgba(0, 0, 0, .1);
	}
	body.home .header:not(.is-show) {
		background: transparent;
		box-shadow: none;
		padding: 0;
	}
	body.home .header:not(.is-show) .site-header-logo {
		border-radius: 0 0 20px 0;
		padding: 20px;
	}
	.site-header-logo {
		position: relative;
		margin: 0;
	}
	body.home .header:not(.is-show) .site-header-logo img {
		width: 95px;
	}
	.site-header-logo img,
	body.noscroll .header:not(.is-show) .site-header-logo img {
		width: 175px;
	}
	body.noscroll .header:not(.is-show) .site-header-logo img:not(.site-logo-image) {
		display: block;
	}
	body.noscroll .header:not(.is-show) .site-header-logo img.site-logo-image {
		display: none;
	}
	body.home .header:not(.is-show) .site-header-logo .corner {
		width: 20px;
		height: 20px;
	}
	body.home .header:not(.is-show) .site-header-logo .corner::before {
		box-shadow: -20px -20px 0 0 #FFF;
	}
	body.home .header:not(.is-show) .site-header-logo .corner:nth-of-type(1) {
		top: 20px;
	}
	body.home .header:not(.is-show) .site-header-logo .corner:nth-of-type(2) {
		left: 20px;
	}
	.site-menu,
	body.home .header:not(.is-show) .site-menu {
		opacity: 0;
		visibility: hidden;
		background-color: #fff;
		flex-direction: column;
		align-items: center;
		gap: 40px;
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		padding: 150px var(--padding) 100px;
		z-index: -1;
		transition: right .5s;
		overflow: auto;
		height: 100vh;
		max-height: 100vh;
		z-index: 555;
		transition: 0.5s;
	}
	body.noscroll .site-menu,
	body.noscroll .header:not(.is-show) .site-menu {
		visibility: visible;
		opacity: 1;
	}
	.site-menu-list {
		max-width: 500px;
		flex-direction: column;
		gap: 0;
		padding: 0;
	}
	.site-menu-list a {
		--fs: 16;
		padding: 15px 10px;
	}
	.site-menu-item {
		border-bottom: 1px solid var(--color-theme-1);
	}
	.site-menu-contact a {
		--fs: 16;
		grid-template-columns: auto auto;
		width: 270px;
		height: 100%;
		min-height: 65px;
		border-radius: 60px;
	}
	body.home:not(.noscroll) .header:not(.is-show) .site-global-nav-button {
		width: 60px;
		height: 60px;
		top: 35px;
		right: 35px;
		background: #FFF;
		border-radius: 15px;
		transform: none;
	}
}

@media(max-width: 767px) {
	.header {
		min-height: 70px;
	}
	.site-header-logo img,
	body.noscroll .header:not(.is-show) .site-header-logo img {
		width: 150px;
	}
	.site-global-nav-button {
		height: 70px;
	}
}

@media(max-width: 575px) {
	.site-header-logo img,
	body.noscroll .header:not(.is-show) .site-header-logo img {
		width: 130px;
	}
	.site-global-nav-button {
		right: 0;
	}
	.site-global-nav-button span {
		width: 30px;
	}
	.site-global-nav-button span:nth-child(1) {
		transform: translate(-50%,calc(-50% + 9px));
	}
	.site-global-nav-button span:nth-child(3) {
		transform: translate(-50%,calc(-50% - 9px));
	}
	.site-menu,
	body.home .header:not(.is-show) .site-menu {
		padding: 100px var(--padding);
	}
}

/*		footer		*/
.footer {
	position: relative;
	background: linear-gradient(to bottom,transparent 300px,var(--color-theme-1) 300px);
	padding-bottom: 40px;
	margin-top: 120px;
	overflow-x: clip;
}

.footer::after {
	content: "";
    width: 120%;
    height: 750px;
    background: var(--color-theme-1);
    clip-path: ellipse(50% 25% at 50% 25%);
    position: absolute;
    top: 130px;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1;
}

.footer-contact {
	display: grid;
	grid-template-columns: 50% 1fr;
	gap: 30px;
	background: var(--color-theme-1-1);
	border-radius: 30px;
	padding: 60px 80px 65px;
	margin-bottom: 80px;
}

.footer-contact-text {
	max-width: 450px;
	margin-inline: auto;
}

.footer-contact-text p {
	--fs: 15;
	line-height: calc(28 / 15);
}

.footer-contact-tel {
	display: flex;
	align-items: center;
}

.footer-contact-tel a {
	display: flex;
	align-items: baseline;
	--fs: 39;
	font-family: var(--zen-maru);
	font-weight: 600;
	line-height: 1;
	color: var(--color-theme-1);
	gap: 10px;
}

.footer-contact-tel p {
	position: relative;
	--fs: 12;
	line-height: 1.4;
	font-family: var(--zen-maru);
	padding-left: 10px;
	margin-bottom: 0;
	margin-left: 10px;
}

.footer-contact-tel p::before {
	content: "";
	width: 1px;
	height: 100%;
	background: #000;
	position: absolute;
	left: 0;
	top: 0;
}

.footer-contact-link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	align-items: center;
	justify-content: center;
	--fs: 18;
	color: #FFF;
	background: var(--color-theme-1);
	max-width: 320px;
	width: 100%;
	min-height: 93px;
	border-radius: 50px;
	margin-inline: auto;
}

.footer-contact-map {
	max-width: 342px;
	width: 100%;
	text-align: center;
	margin-inline: auto;
}

.footer-contact-map p {
	--fs: 14;
	font-family: var(--zen-maru);
	margin-bottom: 0;
}

.map-link {
	display: inline-flex;
	align-items: baseline;
	gap: 2px;
	text-decoration: underline;
}

.map-link::before {
	content: "";
	display: inline-block;
	width: 8px;
	aspect-ratio: 8 / 10;
	background: url(img/icon-map.svg) center / cover;
}

.footer-contact-map .ggmap {
	margin-bottom: 20px;
}

.footer-contact-map .ggmap iframe {
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 40px;
}

.site-footer-logo {
	max-inline-size: max-content;
	margin-inline: auto;
	margin-bottom: 90px;
}

.footer-menu-list {
	display: flex;
	justify-content: center;
	gap: 30px;
	list-style: none;
	padding: 0;
	margin-bottom: 75px;
}

.footer-menu-list li a {
	--fs: 15;
	font-weight: 500;
	font-family: var(--zen-maru);
	color: #FFF;
}

.footer-other-menu {
	display: flex;
	justify-content: center;
	gap: 20px;
	margin-bottom: 100px;
}

.footer-other-menu a {
	--fs: 12;
	font-family: var(--zen-maru);
	font-weight: 400;
	color: #FFF;
}

.copyright {
	--fs: 12;
	font-weight: 400;
	color: #FFF;
	text-align: center;
	margin-bottom: 0;
}

.page-top {
	width: 70px;
	height: 70px;
	aspect-ratio: 1 / 1;
	background: #000;
	border-radius: 50%;
	position: absolute;
	right: 30px;
	bottom: 110px;
}

.page-top::before {
	content: "";
	width: 12px;
	height: 12px;
	border-top: 2px solid #FFF;
	border-right: 2px solid #FFF;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,calc(-50% + 2px)) rotate(-45deg);
}

@media(max-width: 1199px) {
	.footer {
		padding-bottom: 100px;
	}
	.footer-contact {
		padding: 60px 50px;
	}
}

@media(max-width: 991px) {
	.footer-contact {
		grid-template-columns: 1fr;
	}
	.footer-contact-text {
		max-width: 100%;
	}
	.footer-contact-map {
		max-width: 100%;
	}
	.footer-contact-map .ggmap iframe {
		aspect-ratio: 3 / 2;
		border-radius: 20px;
	}
}

@media(max-width: 767px) {
	.footer {
		margin-top: 80px;
	}
	.footer-contact {
		border-radius: 20px;
		padding: 30px;
		margin-bottom: 50px;
	}
	.footer-contact-map .ggmap {
		margin-bottom: 10px;
	}
	.footer-contact-tel a {
		--fs: 35;
		gap: 5px;
	}
	.footer-contact-tel a img {
		width: 22px;
	}
	.site-footer-logo {
		margin-bottom: 50px;
	}
	.site-footer-logo img {
		width: 200px;
	}
	.page-top {
		width: 50px;
		height: 50px;
		right: 15px;
		bottom: 85px;
	}
	.page-top::before {
		width: 10px;
		height: 10px;
	}
	.footer-contact-link {
		--fs: 15;
		gap: 5px;
		max-width: 240px;
		min-height: 60px;
	}
	.footer-contact-link img {
		width: 20px;
	}
}

@media(max-width: 575px) {
	.footer-contact {
		padding: 30px 20px;
	}
	.footer-contact-tel {
		display: block;
	}
	.footer-contact-tel p {
		padding-top: 5px;
		padding-left: 30px;
		margin-left: 0;
	}
	.footer-contact-tel p::before {
		content: none;
	}
}

/*		main FV		*/

.fv {
	position: relative;
	padding-top: 55px;
	max-width: calc(100vw - 110px);
	margin-inline: auto;
	margin-bottom: 150px;
}

.fv::before {
	content: "";
	width: 136px;
	aspect-ratio: 136 / 174;
	background: url(img/site-deco01.svg) center / cover;
	position: absolute;
	bottom: 0;
	left: 0;
	transform: translate(-70%,60%);
	z-index: 1;
}

.fv-image img {
	width: 100%;
	max-height: 900px;
	min-height: 600px;
	object-fit: cover;
	border-radius: 0 0 0 30px;
}

.fv-text {
	position: absolute;
	bottom: 5%;
	left: 5%;
}

.fv-text::before {
	content: "";
	max-width: 60vw;
	width: 226%;
	aspect-ratio: 861 / 600;
	background: url(img/fv-text-image.png) center / cover;
	position: absolute;
	bottom: 0;
	left: 0;
	transform: translate(-15%,15%);
}

.fv-text h2 {
	--fs: 45;
	font-size: clamp(20px,3.25vw,45px);
	font-family: var(--zen-maru);
	font-weight: 600;
	color: var(--color-theme-1);
	letter-spacing: 0.05em;
	line-height: calc(70 / 45);
	margin-bottom: 25px;
}

.fv-text p {
	--fs: 14;
	font-weight: 500;
	font-family: var(--zen-maru);
	letter-spacing: 0.1em;
	margin-bottom: 0;
}

.site-contact {
	display: flex;
	align-items: center;
	background: #FFF;
	border-radius: 30px 0 0 0;
	padding: 15px 0 10px 30px;
	position: absolute;
	right: 0;
	bottom: 0;
}

.site-contact-tel {
	position: relative;
	display: grid;
	gap: 10px;
	padding-right: 15px;
	margin-right: 15px;
}

.site-contact-tel::before {
	content: "";
	width: 1px;
	height: 60px;
	background: #000;
	position: absolute;
	right: 0;
	bottom: 0;
}

.site-contact-tel a {
	--fs: 32;
	font-weight: 600;
	font-family: var(--zen-maru);
	color: var(--color-theme-1);
	line-height: 1;
	display: flex;
	gap: 5px;
	align-items: baseline;
}

.site-contact-tel span {
	--fs: 16;
	font-weight: 500;
	font-family: var(--zen-maru);
	color: var(--color-theme-1);
	text-align: center;
	background: var(--color-gray-1);
	border-radius: 10px;
}

.site-contact p {
	--fs: 11;
	line-height: 1.8;
}

.site-contact .corner {
	display: block;
	width: 30px;
	height: 30px;
	position: absolute;
	overflow: hidden;
}

.site-contact .corner::before {
	content: "";
	display: block;
	width: 200%;
	height: 200%;
	position: absolute;
	top: 0;
	left: 0;
	background: transparent;
	border-radius: 50%;
	box-shadow: 30px 30px 0 0 #FFF;
	transform: translate(-50%,-50%);
}

.site-contact .corner:nth-of-type(1) {
	top: 0;
	right: 0;
	transform: translateY(-100%);
}

.site-contact .corner:nth-of-type(2) {
	left: 0;
	bottom: 0;
	transform: translateX(-100%);
}

.site-contact.is-show {
	padding-right: 30px;
	position: fixed;
	right: 0;
	bottom: 0;
	z-index: 5;
	box-shadow: 0 0 5px rgba(0,0,0,0.1);
}

.site-contact.is-show .corner::before {
	display: none;
}

@media(max-width: 1199px) {
	.fv {
		max-width: calc(100% - 60px);
	}
	.fv-text p {
		letter-spacing: 0;
		text-shadow: 0 0 6px rgba(255,255,255,1),0 0 6px rgba(255,255,255,1),0 0 6px rgba(255,255,255,1);
	}
	.site-contact {
		padding: 10px 0 5px 20px;
	}
	.site-contact-tel a {
		--fs: 27;
	}
	.site-contact-tel a img {
		width: 20px;
	}
	.site-contact-tel span {
		--fs: 15;
	}
	.site-contact.is-show {
		padding-right: 20px;
	}
}

@media(max-width: 991px) {
	.fv {
		max-width: calc(100% - 40px);
		padding-top: 20px;
	}
	.fv-image img {
		border-radius: 20px;
	}
	.fv-text {
		bottom: 15%;
	}
	.fv-text::before {
		max-width: 645px;
		transform: translate(-12%,10%);
	}
	.fv-text h2 {
		font-size: clamp(33px,3.25vw,45px);
	}
	.fv-text p {
		--fs: 18;
	}
	.site-contact {
		border-radius: 20px 0 0 0;
	}
	.site-contact .corner {
		width: 20px;
		height: 20px;
	}
	.site-contact .corner::before {
		box-shadow: 20px 20px 0 0 #FFF;
	}
}

@media(max-width: 767px) {
	.fv-text::before {
		content: none;
	}
}

@media(max-width: 575px) {
	.site-contact {
		justify-content: center;
		background: #FFF;
		border-radius: 0;
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		box-shadow: 0 0 5px rgba(0,0,0,0.1);
		padding-right: 20px;
		z-index: 50;
	}
	.site-contact .corner::before {
		display: none;
	}
}

/*		トップ共通		*/
.top-section-title {
	display: grid;
}

.top-section-title-en {
	--fs: 19;
	font-family: var(--zen-maru);
	font-weight: 500;
	color: var(--color-theme-1);
	background: #FFF;
	max-inline-size: max-content;
	border: 1px solid var(--color-theme-1);
	border-radius: 40px;
	padding: 5px 15px;
	order: -1;
}

.top-section-title-ja {
	--fs: 35;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 600;
	color: var(--color-theme-1);
	line-height: calc(50 / 35);
	margin-bottom: 0;
}

.more-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	--fs: 15;
	gap: 15px;
}

.more-link::before {
	content: "";
	width: calc(100% - 80px);
	height: 2px;
	background: var(--color-theme-1);
	position: absolute;
	bottom: 15px;
	left: 0;
}

.more-link::after {
	content: "";
	display: block;
	width: 64px;
	height: 64px;
	background: url(img/icon-arrow.svg) center / 16px no-repeat var(--color-theme-1-1);
	border-radius: 50%;
}

@media(max-width: 767px) {
	.top-section-title-en {
		--fs: 17;
		padding: 3px 10px;
	}
	.top-section-title-ja {
		--fs: 30;
	}
	.more-link {
		gap: 10px;
	}
	.more-link::after {
		width: 50px;
		height: 50px;
		background: url(img/icon-arrow.svg) center / 12px no-repeat var(--color-theme-1-1);
	}
	.more-link::before {
		width: calc(100% - 60px);
		bottom: 10px; 
	}
}

/*		選ばれる理由		*/
.top-about {
	position: relative;
	--container: 935px;
	margin-bottom: 150px;
	overflow-x: clip;
	z-index: 1;
}

.top-about-content {
	display: grid;
	grid-template-columns: 1fr 55%;
	gap: 20px;
}

.top-about-text {
	position: relative;
}

/* .top-about-text::before {
	content: "";
	width: 136px;
	aspect-ratio: 136 / 174;
	background: url(img/site-deco01.svg) center / cover;
	position: absolute;
	top: 0;
	left: 0;
	transform: translate(-30%,-95%);
	z-index: -1;
} */

.top-about-text h2 {
	--fs: 19;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 500;
}

.top-about-text p {
	--fs: 16;
	line-height: calc(38 / 16);
}

.top-about-image {
	position: relative;
	margin-right: calc((1440px - 935px) / -2);
	transform: translateX(5%);
	margin-bottom: -270px;
}

.top-about-image::before {
	content: "";
	max-width: 18%;
	min-width: 75px;
	width: 130px;
	aspect-ratio: 129 / 85;
	background: url(img/site-deco02.svg) center / cover;
	position: absolute;
	transform: translate(40%,170%);
}

@media(max-width: 1439px) {
	.top-about-image {
		margin-right: calc((100vw - 935px) / -2);
	}
}

@media(max-width: 991px) {
	.top-about-content {
		grid-template-columns: 1fr;
	}
	.top-about-image {
		max-width: 80%;
		margin-right: 0;
		margin-left: auto;	
		transform: translate(5%,-20%);
	}
}

@media(max-width: 767px) {
	.top-about-text p {
		--fs: 15;
	}
	.top-about-text::before {
		width: 80px;
	}
}

@media(max-width: 575px) {
	.top-about-image {
		min-width: 290px;
		margin-top: -100px;
		transform: translateX(15%);
	}
	.top-about-image::before {
		top: 40%;
		left: 0;
		transform: translateX(-125%);
	}
}

/*		業務内容		*/
.top-service {
	position: relative;
	background: linear-gradient(to bottom,transparent 175px,var(--color-theme-2) 175px);
	overflow-x: clip;
	padding-top: 100px;
}

.top-service::before {
	content: "";
    width: 120%;
	min-width: 1000px;
    height: 750px;
    background: var(--color-theme-2);
    clip-path: ellipse(50% 25% at 50% 25%);
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1;
}

.top-service::after {
	content: "";
	max-width: 145vw;
	width: 1447px;
	min-width: 850px;
	aspect-ratio: 1447 / 226;
	background: url(img/site-deco03.svg) center / cover;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-53%,-20%);
}

.top-service > * {
	position: relative;
	z-index: 1;
}

.top-service-deco {
	max-height: 70%;
	height: 100%;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-65%);
}

.top-service-deco img {
	max-width: 320px;
	aspect-ratio: 320 / 1472;
	height: 100%;
	object-fit: contain;
	object-position: left;
}	

.top-service h3 {
	--fs: 30;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 500;
	margin-bottom: 35px;
}

.top-service p {
	line-height: calc(38 / 16);
}

.top-service-content {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 30px;
	margin-top: 70px;
	margin-bottom: 70px;
}

.top-service-item-image {
	margin-bottom: 45px;
}

.top-service-item-title {
	display: flex;
	align-items: center;
	justify-content: center;
	--fs: 18;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 500;
	color: #FFF;
	background: var(--color-theme-1);
	max-width: 200px;
	width: 100%;
	min-height: 40px;
	border-radius: 10px;
	padding: 5px 15px;
	margin-inline: auto;
	margin-bottom: 15px;
}

.top-service-item p {
	--fs: 17;
	font-weight: 500;
	font-family: var(--zen-maru);
	line-height: 1.8;
}

.top-service-item p span {
	--fs: 15;
	font-weight: 400;
}

@media(max-width:768px) {
	.top-service-item p span{
		display: inline-block;
		line-height: 1.5;
		margin-top: 5px;
	}
}

.top-service-house {
	margin-bottom: 130px;
}

.top-service-support {
	margin-top: 130px;
}

.top-service-item p span.top-service-support-tag {
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 200px;
	width: 100%;
	min-height: 40px;
	--fs: 18;
	font-weight: 500;
	color: var(--color-theme-1);
	border: 2px solid var(--color-theme-1);
	border-radius: 10px;
	padding: 2px 10px;
	margin-inline: auto;
	margin-top: 10px;
}

.top-service-support-wrapper {
	position: relative;
	padding-top: 300px;
	padding-bottom: 250px;
}

.top-service-support-wrapper::before {
	content: "";
	width: 100vw;
	height: 413px;
	background: url(img/top-service-support-bg.png) center / 100% 100%;
	position: absolute;
	top: 50px;
	left: 50%;
	transform: translateX(-50%);
	z-index: -1;
}

.top-service-support-wrapper::after {
	content: "";
	width: 100vw;
	height: calc(100% - 400px);
	background: #F8F2EB;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translate(-50%);
	z-index: -1;
}

.top-service-support-wrapper h4 {
	--fs: 25;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	color: var(--color-theme-1);
	line-height: calc(40 / 25);
	margin-bottom: 20px;
}

.top-service-support-wrapper h4 span {
	--fs: 25;
	position: relative;
}

.top-service-support-wrapper h4 span::before {
	content: "";
	width: 110%;
	height: 9px;
	background: #FFDE46;
	border-radius: 5px;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: -1;
}

.top-service-support-wrapper p {

}

.top-service-support-content {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 25px;
	max-width: 720px;
	margin-top: 80px;
	margin-inline: auto;
}

.top-service-support-item {
	display: grid;
	place-content: center;
	place-items: center;
	aspect-ratio: 1 / 1;
	gap: 10px;
	background: var(--color-theme-1);
	border-radius: 50%;
}

.top-service-support-item p {
	--fs: 32;
	font-family: var(--zen-maru);
	font-weight: 600;
	color: #FFDE46;
	line-height: 1;
	letter-spacing: 0.3em;
	margin-bottom: 0;
	margin-right: -0.3em;
}

.top-service-support-item span {
	display: flex;
	align-items: center;
	justify-content: center;
	--fs: 17;
	font-weight: 600;
	color: var(--color-theme-1); 
	width: 170px;
	min-height: 36px;
	background: #FFF;
	border-radius: 30px;
}

.top-service-support-deco01 {
	position: absolute;
	top: 150px;
    transform: translateX(-30%);
}

.top-service-support-deco02 {
	position: absolute;
	top: 80px;
    left: 30%;
}

.top-service-support-deco03 {
	position: absolute;
	top: 45px;
    left: 60%;
}

.top-service-support-deco04 {
	position: absolute;
	top: 200px;
    right: 0;
    transform: translateX(35%);
}

@media(max-width: 991px) {
	.top-service-content {
		gap: 20px;
	}
	.top-service-deco {
		display: none;
	}
}

@media(max-width: 767px) {
	.top-service {
		padding-top: 80px;
	}
	.top-service::after {
		content: none;
	}
	.top-service h3 {
		--fs: 23;
		margin-bottom: 20px;
	}
	.top-service-content {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		/* grid-template-columns: 1fr 1fr; */
		/* max-width: 400px; */
		gap: 25px;
		margin-inline: auto;
		margin-top: 50px;
		margin-bottom: 50px;
	}
	.top-service-item{
		width: calc((100% - 25px) / 2);
	}
	.top-service-item-image {
		margin-bottom: 20px;
	}
	.top-service-support-wrapper {
		padding-top: 200px;
		padding-bottom: 200px;
	}
	.top-service-support-wrapper::before {
		height: 150px;
	}
	.top-service-support-wrapper::after {
		height: calc(100% - 200px);
	}
	.top-service-support-wrapper h4 {
		--fs: 20;
	}
	.top-service-support-wrapper h4 span {
		--fs: 20;
	}
	.top-service-support-deco01 {
		top: 95px;
		width: 45px;
	}
	.top-service-support-deco02 {
		top: 50px;
		width: 50px;
	}
	.top-service-support-deco03 {
		width: 18px;
	}
	.top-service-support-deco04 {
		top: 110px;
		width: 70px;
	}
	.top-service-support-content {
		gap: 15px;
		margin-top: 40px;
	}
	.top-service-support-item:nth-child(1) img {
		width: 45px;
	}
	.top-service-support-item:nth-child(2) img {
		width: 35px;
	}
	.top-service-support-item:nth-child(3) img {
		width: 29px;
	}
	.top-service-support-item span {
		--fs: 15;
		width: 130px;
		min-height: 30px;
	}
	.top-service-support-item p {
		--fs: 28;
	}
}

@media(max-width: 575px) {
	.top-service-support-content {
		gap: 10px;
		margin-top: 25px;
	}
	.top-service-support-item {
		gap: 5px;
	}
	.top-service-support-item:nth-child(1) img {
		width: 30px;
	}
	.top-service-support-item:nth-child(2) img {
		width: 24px;
	}
	.top-service-support-item:nth-child(3) img {
		width: 19px;
	}
	.top-service-support-item span {
		--fs: 12;
		width: 90px;
		min-height: 25px;
	}
	.top-service-support-item p {
		--fs: 20;
	}
}

/*		トップ 施工事例		*/
.top-cases {
	position: relative;
	padding-top: 80px;
	margin-top: -130px;
	margin-bottom: 120px;
	overflow-x: clip;
	z-index: 1;
}

.top-cases::before {
	content: "";
    width: 120%;
    min-width: 1000px;
    height: 750px;
    background: #FFF;
    clip-path: ellipse(50% 25% at 50% 25%);
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1;
}

.top-cases .top-section-title {
	margin-bottom: 90px;
}

.top-cases .cases-list {
	margin-bottom: 80px;
}

@media(max-width: 767px) {
	.top-cases .top-section-title {
		margin-bottom: 40px;
	}
	.top-cases .cases-list {
		margin-bottom: 40px;
	}
}

/*		トップ ニュース		*/
.top-news {
	--container: 935px;
}



/*		施工実績		*/
.cases-list {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 55px;
	padding: 0;
	margin-bottom: 0;
}

.cases-item a {
	display: block;
}

.cases-item-image {
	margin-bottom: 20px;
}

.cases-item-image img {
	aspect-ratio: 340 / 225;
	object-fit: cover;
	width: 100%;
	border-radius: 30px;
}

.cases-category {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 128px;
	min-height: 44px;
	--fs: 14;
	font-weight: 500;
	font-family: var(--zen-maru);
	color: #FFF;
	background: var(--color-theme-1);
	border-radius: 40px;
	padding: 5px;
	margin-bottom: 10px;
}

.cases-item-name {
	--fs: 17;
	margin-bottom: 0;
}

@media(max-width: 991px) {
	.cases-list {
		gap: 50px 20px;
	}
	.cases-item-image {
		margin-bottom: 15px;
	}
	.cases-item-image img {
		border-radius: 20px;
	}
	.cases-category {
		min-height: 30px;
		padding: 2px 5px;
	}
	.cases-item-name {
		--fs: 15;
	}
}

@media(max-width: 767px) {
	.cases-list {
		grid-template-columns: repeat(2,1fr);
	}
}

@media(max-width: 575px) {
	.cases-list {
		grid-template-columns: 1fr;
	}
}

/*		お知らせ		*/
.news-list {
	max-width: 935px;
	list-style: none;
	display: grid;
	gap: 15px;
	padding: 0;
	margin-bottom: 0;
	margin-inline: auto;
}

.news-list-item a {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	min-height: 100px;
	gap: 20px;
	background: var(--color-gray-1);
	border-radius: 20px;
	padding: 10px 100px 10px 45px;
}

.news-list-item a::before {
	content: "";
	width: 38px;
	aspect-ratio: 1 / 1;
	background: var(--color-theme-1);
	position: absolute;
	top: 50%;
	right: 35px;
	border-radius: 50%;
	transform: translateY(-50%);
}

.news-list-item a::after {
	content: "";
	width: 12px;
	height: 10px;
	-webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/icon-arrow.svg);
    mask-image: url(img/icon-arrow.svg);
    background-color: #FFF;
	position: absolute;
	top: 50%;
	right: 48px;
	transform: translateY(-50%);
}

.news-list-info {
	display: flex;
	align-items: center;
	gap: 20px;
}

.news-list-date {
	--fs: 18;
	font-family: var(--heebo);
}

.news-category {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	--fs: 14;
	font-family: var(--zen-maru);
	color: var(--color-theme-1);
	background: #FFF;
	min-width: 112px;
	min-height: 27px;
	border: 1px solid var(--color-theme-1);
	border-radius: 20px;
}

.news-list-title {
	margin-bottom: 0;
}

.news-list-item.new .news-list-title span {
	margin-right: 15px;
}

.news-list-item.new .news-list-title::after {
	content: "NEW";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 50px;
	min-height: 20px;
	--fs: 15;
	line-height: 1;
	font-weight: 500;
	font-family: var(--heebo);
	color: #FFF;
	background: var(--color-theme-1);
	border-radius: 5px;
	padding-top: 2px;
}

@media(max-width: 991px) {
	.news-list-item a {
		min-height: 80px;
		padding: 15px 70px 15px 20px;
	}
	.news-list-item a::before {
		right: 15px;
	}
	.news-list-item a::after {
		right: 29px;
	}
	.news-list-info {
		gap: 10px;
	}
}

@media(max-width: 767px) {
	.news-list-item a {
		grid-template-columns: 1fr;
		place-content: center;
		gap: 5px;
		border-radius: 15px;
		padding-right: 50px;
	}
	.news-list-date {
		--fs: 16;
	}
	.news-category {
		min-width: 100px;
		min-height: 24px;
	}
	.news-list-item a::before {
		width: 30px;
		right: 10px;
	}
	.news-list-item a::after {
		width: 10px;
		right: 21px;
	}
}

@media(max-width: 575px) {
	.news-list-item.new .news-list-title::after {
		content: none;
	}
	.news-list-item.new .news-list-title::before {
		content: "NEW";
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 50px;
		min-height: 20px;
		--fs: 15;
		line-height: 1;
		font-weight: 500;
		font-family: var(--heebo);
		color: #FFF;
		background: var(--color-theme-1);
		border-radius: 5px;
		padding-top: 2px;
		margin-right: 10px;
	}
	.news-list-item.new .news-list-title span {
		margin-right: 0;
	}
}

/*		下層ページ		*/
.page-wrapper {
	margin-top: 175px;
}

.page-header {
	position: relative;
	max-width: 1330px;
	padding: 0 55px;
	margin-inline: auto;
}

.page-header .site-contact {
	right: 55px;
}

.page-header .site-contact.is-show {
	right: 0;
}

.page-title {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	--fs: 36;
	font-size: var(--font-size);
	font-weight: 600;
	font-family: var(--zen-maru);
	color: var(--color-theme-1);
	min-width: 400px;
	min-height: 80px;
	background: #FFF;
	border: 2px solid var(--color-theme-1);
	border-radius: 50px;
	padding: 10px 15px;
	margin-bottom: 0;
	margin-left: 55px;
	z-index: 1;
}

.page-header-image {
	margin-top: -40px;
}

.page-header-image img {
	width: 100%;
	max-height: 385px;
	object-fit: cover;
	border-radius: 30px;
}

.breadcrumbs {
	padding-top: 15px;
	margin-bottom: 100px;
}

.breadcrumbs span {
	--fs: 13;
	font-family: var(--zen-maru);
}

@media(max-width: 1199px) {
	.page-wrapper {
		margin-top: 130px;
	}
	.page-header {
		padding: 0 var(--padding);
	}
	.page-header .site-contact {
		right: 20px;
	}
	.page-title {
		--fs: 30;
		min-width: 300px;
		min-height: 66px;
		margin-left: 30px;
	}
	.page-header-image {
		margin-top: -33px;
	}
	.page-header-image img {
		border-radius: 20px;
	}
}

@media(max-width: 767px) {
	.page-wrapper {
		margin-top: 100px;
	}
	.page-title {
		--fs: 25;
		min-width: 230px;
		min-height: 56px;
		margin-left: 20px;
	}
	.page-header-image {
		margin-top: -25px;
	}
	.page-header-image img {
		min-height: 150px;
	}
	.breadcrumbs {
		margin-bottom: 80px;
	}
}

/*		私たちについて		*/
.about-intro {
	position: relative;
	overflow-x: clip;
}

.about-intro h2 {
	--fs: 19;
	font-size: var(--font-size);
	font-weight: 500;
	font-family: var(--zen-maru);
}

.about-intro p {
	line-height: calc(38 / 16);
}

.intro-title {
	--fs: 32;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	line-height: calc(48 / 32);
	color: var(--color-theme-1);
	margin-bottom: 30px;
}

.about-intro-content {
	display: grid;
	grid-template-columns: 55% 1fr;
	align-items: flex-start;
	gap: 70px 30px;
}

.about-intro-text {
	position: relative;
}

.about-intro-text::before {
	content: "";
	width: 55px;
	aspect-ratio: 55 / 58;
	background: url(img/site-deco04.svg) center / cover;
	position: absolute;
	top: 40px;
	right: 0;
	transform: translateX(150%);
}

.about-intro-image01 {
	position: relative;
	grid-column: 2 / 3;
	grid-row: 1 / 3;
	text-align: right;
	margin-right: calc((1440px - 1130px) / -2);
	transform: translateX(5%);
}

.about-intro-image01::before {
	content: "";
	width: 135px;
	aspect-ratio: 135 / 95;
	background: url(img/site-deco05.svg) center / cover;
	position: absolute;
	bottom: 0;
	left: 0;
	transform: translate(100%,80%);
}

.about-intro-image02 {
	margin-left: calc((1440px - 1130px) / -2);
	transform: translateX(-5%);
}

.about-intro-image02::before {
	content: "";
	width: 112px;
	aspect-ratio: 112 / 77;
	background: url(img/site-deco06) center / cover;
	position: absolute;
	top: 0;
	right: 0;
	transform: translate(170%,-30%);
}

@media(max-width: 1439px) {
	.about-intro-image01 {
		margin-right: calc((100vw - 1130px) / -2);
	}
	.about-intro-image02 {
		margin-left: calc((100vw - 1130px) / -2);
	}
}

@media(max-width: 1129px) {
	.about-intro-image01 {
		margin-right: calc(-1 * var(--padding));
	}
	.about-intro-image02 {
		margin-left: calc(-1 * var(--padding));
	}
}

@media(max-width: 991px) {	
	.about-intro-content {
		display: block;
	}
	.about-intro-text {
		margin-bottom: 40px;
	}
	.about-intro-image01 {
		margin-right: 0;
		transform: none;
	}
	.about-intro-image01::before {
		content: none;
	}
}

@media(max-width: 767px) {
	.intro-title {
		--fs: 27;
		margin-bottom: 20px;
	}
}

.about-policy {
	--container: 815px;
	background: var(--color-theme-2);
	position: relative;
	overflow-x: clip;
	padding-top: 220px;
	padding-bottom: 130px;
	margin-bottom: 170px;
}

.about-policy::before {
    content: "";
    width: 120%;
	min-width: 1000px;
    height: 750px;
    background: #FFF;
    clip-path: ellipse(50% 25% at 50% -10%);
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
}

.about-policy::after {
	content: "";
	max-width: 1128px;
	aspect-ratio: 1128 / 246;
	width: 90vw;
	background: url(img/about-policy-image.svg) center / cover;
	position: absolute;
	bottom: 30px;
	left: 50%;
	transform: translateX(-50%);
}

.about-policy::before {
	content: "";
}

.about-policy-item {
	position: relative;
	display: grid;
	place-content: center;
	gap: 15px;
	background: #FFF;
	border: 1px solid var(--color-theme-1);
	border-radius: 30px;
	min-height: 180px;
	padding: 15px 20px;
	z-index: 1;
}

.about-policy-item:not(:last-child) {
	margin-bottom: 25px;
}

.about-policy-item h2 {
	--fs: 24;
	font-weight: 500;
	font-family: var(--zen-maru);
	font-size: var(--font-size);
	color: var(--color-theme-1);
	text-align: center;
	margin-bottom: 0;
}

.about-policy-item p {
	--fs: 18;
	text-align: center;
	margin-bottom: 0;
}

.about-policy-deco {
	position: absolute;
	display: flex;
	justify-content: space-between;
	max-width: 1440px;
	width: 100%;
	bottom: 0;
	left: 50%;
	transform: translate(-50%,30%);
}

.about-policy-deco img:nth-child(1) {
	max-width: 130px;
	min-width: 60px;
	width: 10%;
	transform: translateX(-30%);
}

.about-policy-deco img:nth-child(2) {
	max-width: 91px;
	min-width: 45px;
	width: 7%;
	transform: translateX(20%);
}

@media(max-width: 767px) {
	.about-policy {
		padding-top: 150px;
		padding-bottom: 15%;
		margin-bottom: 100px;
	}
	.about-policy::before {
		clip-path: ellipse(50% 25% at 50% -15%);
	}
	.about-policy-item {
		min-height: 150px;
		gap: 10px;
	}
	.about-policy-item p {
		--fs: 16;
	}
}

.about-company {
	--container: 935px;
	margin-bottom: 200px;
}

@media(max-width: 767px) {
	.about-company {
		margin-bottom: 100px;
	}
}

.about-faq {
	--container: 935px;
}

.faq-item {
	background: var(--color-gray-1);
	border-radius: 20px;
	margin-bottom: 10px;	
}

.faq-item[open] {
	padding-bottom: 35px;
}

.faq-item:last-of-type {
	margin-bottom: 130px;
}

.faq-question {
	position: relative;
	list-style: none;
	--fs: 18;
	font-family: var(--zen-maru);
	font-weight: 500;
	padding: 35px 125px;
}

.faq-question::before {
	content: "Q";
	--fs: 44;
	font-weight: 600;
	line-height: 1;
	color: var(--color-theme-1);
	position: absolute;
	top: 23px;
	left: 50px;
}

.faq-question::after {
	content: "";
	width: 38px;
	height: 38px;
	background: url(img/icon-plus.svg) center / 12px no-repeat, var(--color-theme-1);
	border-radius: 50%;
	position: absolute;
	top: 29px;
	right: 50px;
}

.faq-item[open] .faq-question::after {
	background: url(img/icon-minus.svg) center / 12px no-repeat, var(--color-gray-2);
}

.faq-question::marker,
.faq-question::-webkit-details-marker {
	display: none;
	content: none;
}



.faq-answer {
	background: #FFF;
	border-radius: 20px;
	padding: 35px 75px;
	margin: 0 50px;
}

@media(max-width: 991px) {
	.faq-question {
		padding: 25px 80px;
	}
	.faq-item[open] {
		padding-bottom: 25px;
	}
	.faq-question::before {
		top: 14px;
		left: 25px;
	}
	.faq-question::after {
		top: 19px;
		right: 22px;
	}
	.faq-answer {
		padding: 25px 55px;
		margin: 0 25px;
	}
}

@media(max-width: 767px) {
	.faq-item {
		border-radius: 10px;
	}
	.faq-item[open] {
		padding-bottom: 20px;
	}
	.faq-question {
		--fs: 16;
		padding: 20px 45px;
	}
	.faq-question::before {
		--fs: 33;
		top: 14px;
		left: 15px;
	}
	.faq-question::after {
		width: 26px;
		height: 26px;
		background: url(img/icon-plus.svg) center / 10px no-repeat, var(--color-theme-1);
		right: 11px;
	}
	.faq-answer {
		--fs: 14;
		border-radius: 10px;
		padding: 20px;
		margin: 0 15px;
	}
	.faq-item:last-of-type {
		margin-bottom: 50px;
	}
}

/*		業務内容		*/
.service-nav {
	margin-bottom: 80px;
}

.service-nav-list {
	display: flex;
	flex-wrap: wrap;
	max-width: 1065px;
	max-inline-size: max-content;
	list-style: none;
	gap: 15px;
	padding: 0;
	margin-bottom: 0;
	margin-inline: auto;
}

.service-nav-list a {
	display: flex;
	justify-content: center;
	align-items: center;
	--fs: 16;
	color: var(--color-theme-1);
	min-width: 200px;
	min-height: 30px;
	border: 1px solid var(--color-theme-1);
	border-radius: 40px;
	transition: 0.2s;
}

.service-nav-list a:hover {
	opacity: 1;
	background: var(--color-theme-1);
	color: #FFF;
}

@media(max-width: 1199px) {
	.service-nav-list {
		gap: 10px;
	}
	.service-nav-list a {
		min-width: 180px;
	}
}

@media(max-width: 991px) { 
	.service-nav-list {
		display: grid;
		grid-template-columns: repeat(3,1fr);
	}
}

@media(max-width: 767px) {
	.service-nav-list a {
		--fs: 15;
		min-width: 160px;
	}
}

@media(max-width: 575px) {
	.service-nav-list {
		grid-template-columns: repeat(2,1fr);
	}
}

.service-intro {
	margin-bottom: 160px;
}

.service-intro-content {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 50px;
}

.service-intro-text p {
	line-height: calc(38 / 16);
}

.service-intro-image {
	margin-right: -40px;
}

@media(max-width: 991px) {
	.service-intro {
		margin-bottom: 100px;
	}
	.service-intro-content {
		grid-template-columns: 1fr;
	}
	.service-intro-image {
		margin-right: 0;
	}
}

@media(max-width: 767px) {
	.service-intro-content {
		gap: 30px;
	}
}

.service-reform {
	position: relative;
	overflow-x: clip;
	margin-bottom: 145px;
}

.service-reform-item {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 70px;
	align-items: flex-end;
	margin-bottom: 150px;
}

.service-reform-item:last-child {
	margin-bottom: 120px; 
}

.service-reform-item p {
	line-height: calc(30 / 16);
}

@media(max-width: 991px) {
	.service-reform-item {
		grid-template-columns: 1fr;
		gap: 30px;
	}
}

@media(max-width: 767px) {
	.service-reform {
		margin-bottom: 100px;
	}
	.service-reform-item {
		gap: 20px;
		margin-bottom: 80px;
	}
	.service-reform-item:last-child {
		margin-bottom: 0;
	}
}

#flow {
	scroll-margin-top: -80px;
}

.service-reform-flow {
	--container: 935px;
	position: relative;
	background: var(--color-theme-2);
	padding-top: 225px;
	padding-bottom: 135px;
}

.service-reform-flow::before {
	content: "";
    width: 120%;
    height: 750px;
	min-width: 1000px;
    background: #FFF;
    clip-path: ellipse(50% 25% at 50% -10%);
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
}

.service-reform-flow-step {
	display: grid;
	gap: 70px;
}

.service-reform-flow-item {
	position: relative;
	background: #FFF;
	border-radius: 30px;
	box-shadow: 5px 5px 25px rgba(0,0,0,.1);
	padding: 40px 70px 50px;
}

.service-reform-flow-item:not(:last-child)::before {
	content: "";
	width: 27px;
	aspect-ratio: 27 / 23;
	-webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/icon-arrow.svg);
    mask-image: url(img/icon-arrow.svg);
	background-color: var(--color-theme-1);
	position: absolute;
	bottom: -20px;
	left: 50%;
	transform: translate(-50%,100%) rotate(90deg);
}

.service-reform-flow-num {
	position: relative;
	display: block;
	--fs: 18;
	font-family: var(--heebo);
	font-weight: 600;
	color: var(--color-theme-1);
	letter-spacing: 0.05em;
	padding-bottom: 15px;
	margin-bottom: 30px;
}

.service-reform-flow-num::before {
	content: "";
	display: block;
	width: 26px;
	height: 1px;
	background: var(--color-theme-1);
	position: absolute;
	bottom: 0;
	left: 0;
}

.service-reform-flow h4 {
	--fs: 30;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 600;
	color: #FFF;
	background: var(--color-theme-1);
	max-inline-size: max-content;
	border-radius: 10px;
	padding: 5px 15px;
	margin-bottom: 25px;
	margin-left: -15px;
}

.service-reform-flow h5 {
	--fs: 19;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 500;
	color: var(--color-theme-1);
	margin-bottom: 10px;
}

.service-reform-flow * + h5 {
	margin-top: 25px;
}

.service-reform-flow p {
	--fs: 15;
	line-height: calc(24 / 15);
	margin-bottom: 0;
}

@media(max-width: 767px) {
	.service-reform-flow {
		padding-top: 200px;
		padding-bottom: 100px;
	}
	.service-reform-flow::before {
		clip-path: ellipse(50% 25% at 50% -100px);
	}
	.service-reform-flow-item {
		border-radius: 20px;
		padding: 40px 20px;
	}
	.service-reform-flow-num {
		--fs: 17;
		padding-bottom: 5px;
		margin-bottom: 20px;
	}
	.service-reform-flow h4 {
		--fs: 22;
		margin-left: 0;
	}
	.service-reform-flow h5 {
		--fs: 17;
		margin-bottom: 5px;
	}
}

.service-sos {
	--container: 935px;
	margin-bottom: 130px;
}

.service-sos-content {
	max-width: 815px;
	background: #F5F5F5;
	border-radius: 30px;
	padding: 40px 20px;
	margin-inline: auto;
	margin-bottom: 85px;
}

.service-sos-content h2 {
	position: relative;
	--fs: 33;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 600;
	text-align: center;
	max-inline-size: max-content;
	margin-bottom: 30px;
	margin-inline: auto;
	z-index: 1;
}

.service-sos-content h2::before {
	content: "";
	width: 100%;
	height: 9px;
	background: #FFDE46;
	border-radius: 5px;
	position: absolute;
	bottom: -2px;
	left: 50%;
	transform: translateX(-50%);
	z-index: -1;
}

.service-sos-content h2 span {
	--fs: 60;
	color: var(--color-theme-1);
	line-height: 1;
}

.service-sos-content p {
	--fs: 18;
	line-height: calc(30 / 18);
	font-family: var(--zen-maru);
	font-weight: 500;
	text-align: center;
	margin-bottom: 0;
}

.service-sos-list {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 70px 40px;
	padding: 0;
	margin-bottom: 70px;
}

.service-sos-item img {
	border-radius: 30px;
	margin-bottom: 10px;
}

.service-sos-item h3 {
	--fs: 18;
	font-size: var(--font-size);
	font-family: var(--font-family);
	text-align: center;
	color: var(--color-theme-1);
	margin-bottom: 10px;
}

.service-sos-item p {
	line-height: calc(28 / 16);
	margin-bottom: 0;
}

.service-sos .lead {
	--fs: 18;
	font-weight: 500;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	line-height: calc(32 / 18);
	margin-bottom: 55px;
}

@media(max-width: 991px) {
	.service-sos-list {
		gap: 50px 20px;
	}
}

@media(max-width: 767px) {
	.service-sos {
		margin-bottom: 100px;
	}
	.service-sos-content {
		border-radius: 20px;
		padding: 20px 15px;
		margin-bottom: 50px;
	}
	.service-sos-content h2 {
		--fs: 25;
		line-height: 1.5;
		margin-bottom: 20px;
	}
	.service-sos-content h2 span {
		--fs: 40;
	}
	.service-sos-content p {
		--fs: 16;
	}
	.service-sos-list {
		grid-template-columns: repeat(2,1fr);
		gap: 50px 15px;
	}
	.service-sos-item h3 {
		--fs: 16;
	}
	.service-sos-item p {
		--fs: 14;
	}
	.service-sos .lead {
		--fs: 16;
	}
}

.service-estate {
	--container: 935px;
	position: relative;
	overflow-x: clip;
	padding-top: 160px;
	padding-bottom: 150px;
}

.service-estate::before {
	content: "";
	width: 100vw;
	height: calc(100% - 175px);
	background: #F5F5F2;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: -1;
}

.service-estate::after {
	content: "";
    width: 120vw;
    min-width: 1000px;
    height: 750px;
    background: #F5F5F2;
    clip-path: ellipse(50% 25% at 50% 25%);
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1;
}

.service-estate-content {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 70px 40px;
	margin-bottom: 100px;
}

.service-estate-item:nth-child(3) {
	grid-column: 1 / 3;
}

.service-estate-title {
	display: grid;
	grid-template-columns: 99px 1fr;
	gap: 25px;
	align-items: center;
	margin-bottom: 25px;
}

.service-estate-title-num {
	display: grid;
	place-items: center;
	place-content: center;
	--fs: 13;
	line-height: 1;
	font-family: var(--zen-maru);
	font-weight: 600;
	color: var(--color-theme-1);
	min-width: 99px;
	height: 99px;
	background: #FFF;
	border: 1px solid var(--color-theme-1);
	border-radius: 50%;
	grid-row: 1 / -1;
}

.service-estate-title-num span {
	position: relative;
	--fs: 55;
}

.service-estate-title-num span::before {
	content: "";
	width: 54px;
	height: 1px;
	background: var(--color-theme-1);
	position: absolute;
	top: 5px;
	left: 50%;
	transform: translateX(-50%);
}

.service-estate-title p {
	--fs: 15;
	margin-bottom: 0;
}

.service-estate-title h4 {
	--fs: 33;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 600;
	color: var(--color-theme-1);
	margin-bottom: 0;
}

.white-box {
	background: #FFF;
	border-radius: 20px;
	padding: 35px 30px;
}

.service-estate-item:nth-child(3) .white-box {
	padding: 80px 70px;
}

.service-estate-item .is-style-h-4 {
	--fs: 20;
	font-weight: 600;
	margin-bottom: 5px;
}

.service-estate-item * + .is-style-h-4 {
	margin-top: 20px;
}

.white-box h6 {
	--fs: 17;
	font-size: var(--font-size);
	font-weight: 600;
	font-family: var(--zen-maru);
	color: var(--color-theme-1);
}

.service-estate h3:not([class*="is-style"]) {
	--fs: 24;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 600;
	line-height: 1.5;
	margin-bottom: 20px;
}

.service-estate .lead {
	--fs: 18;
	font-weight: 500;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	line-height: calc(32 / 18);
	margin-bottom: 60px;
}

.service-estate p {
	line-height: calc(38 / 16);
}

.service-estate-table p {
	--fs: 15;
	line-height: calc(25 / 15);
	text-indent: -3.5em;
	margin-left: 3.5em;
	margin-top: 10px;
}

.service-estate-info {
	--container: 1130px;
	margin-top: 150px;
}

.estate-list {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 50px 55px;
	list-style: none;
	padding-left: 0;
	margin-bottom: 100px;
}

.estate-item a {
	display: block;
}

.estate-item-image {
	margin-bottom: 20px;	
}

.estate-item-image img {
	border-radius: 30px;
}

.estate-item-info {
	display: flex;
	align-items: baseline;
	gap: 15px;
	margin-bottom: 10px;
}

.estate-item-date {
	--fs: 14;
	font-family: var(--heebo);
}

.estate-category {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 110px;
	min-height: 24px;
	--fs: 14;
	color: #FFF;
	background: var(--color-theme-1);
	border-radius: 30px;
}

.estate-item .estate-item-title {
	--fs: 17;
	line-height: 1.3;
	font-weight: 500;
	margin-bottom: 0;
}

@media(max-width: 991px) {
	.service-estate-content {
		grid-template-columns: 1fr;
	}
	.service-estate-item:nth-child(3) {
		grid-column: 1;
	}
	.service-estate-item:nth-child(3) .white-box {
		padding: 35px 30px;
	}
	.estate-list {
		gap: 50px 20px;
	}
}

@media(max-width: 767px) {
	.service-estate {
		padding-top: 100px;
		padding-bottom: 100px;
	}
	.service-estate-title {
		grid-template-columns: 70px 1fr;
		gap: 15px;
		margin-bottom: 15px;
	}
	.service-estate-title-num {
		--fs: 12;
		min-width: 70px;
		height: 70px;
	}
	.service-estate-title-num span {
		--fs: 40;
	}
	.service-estate-title-num span::before {
		width: 45px;
		top: 3px;
	}
	.service-estate-title h4 {
		--fs: 25;
	}
	.service-estate-title p {
		--fs: 14;
		line-height: 1.5;
	}
	.white-box,
	.service-estate-item:nth-child(3) .white-box {
		padding: 20px 15px;
	}
	.service-estate-item .is-style-h-4 {
		--fs: 18
	}
	.service-estate-info {
		margin-top: 100px;
	}
	.estate-list {
		grid-template-columns: repeat(2,1fr);
		margin-bottom: 60px;
	}
	.estate-item:nth-child(3) {
		display: none;
	}
	.estate-item-image {
		margin-bottom: 15px;
	}
	.estate-item-image img {
		border-radius: 20px;
	}
	.estate-item .estate-item-title {
		--fs: 16;
	}
	.service-estate h3:not([class*="is-style"]) {
		--fs: 20;
	}
	.service-estate .lead {
		--fs: 16;
	}
	.service-estate h5 {
		--fs: 16;
	}
	.service-estate-table p {
		--fs: 14;
	}
}

@media(max-width: 575px) {
	.estate-list {
		grid-template-columns: 1fr;
	}
	.estate-item:nth-child(3) {
		display: block;
	}
}

/*		施工事例一覧		*/
.cases-category-list {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(4,1fr);
	justify-content: center;
	gap: 15px 30px;
	max-width: 850px;
	padding: 0;
	margin-bottom: 120px;
	margin-inline: auto;
}

.cases-category-list a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	max-width: 200px;
	min-height: 30px;
	color: var(--color-theme-1);
	border: 1px solid var(--color-theme-1);
	border-radius: 30px;
	transition: 0.2s;
}


.cases-category-list .active a,
.cases-category-list a:hover {
	color: #FFF;
	background: var(--color-theme-1);
	opacity: 1;
}

.cases-category-select {
	--fs: 15;
    color: #000;
    min-width: 160px;
    min-height: 40px;
    background: #FFF;
    border: 1px solid #949599;
    border-radius: 2px;
    padding: 3px 15px;
    outline: none;
	margin-bottom: 50px;
}

.pagination {
	justify-content: center;
	margin-top: 100px;
}

.pagination .nav-links {
	display: flex;
	align-items: center;
	gap: 20px;
}

.pagination .nav-links .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 19px;
	height: 30px;
	--fs: 14;
	font-weight: 500;
}

.pagination .nav-links .page-numbers.current {
	border-bottom: 3px solid var(--color-theme-1);
	border-radius: 1.5px;
}

.pagination .nav-links .page-numbers.prev {
	transform: scale(-1,1);
}

@media(max-width: 767px) {
	.cases-category-list {
		gap: 15px;
		margin-bottom: 80px;
	}
}

/*		お問い合わせ		*/
.contact-tel {
	margin-bottom: 100px;
}

.contact-tel p {
	--fs: 20;
	font-family: var(--zen-maru);
	font-weight: bold;
}

.contact-tel a {
	display: flex;
	align-items: baseline;
	--fs: 50;
	font-family: var(--zen-maru);
	font-weight: 600;
	line-height: 1;
	color: var(--color-theme-1);
	gap: 10px;
}

.contact-tel p span {
	--fs: 19;
}

.form-contact {
	background: var(--color-theme-2);
	border-radius: 30px;
	padding: 50px 20px;
}

.form-contact-content {
	max-width: 850px;
	margin-inline: auto;
}

.form-contact-content p {
	line-height: calc(32 / 16);
}

.hissu,
.nini {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	--fs: 14;
	font-weight: 500;
	line-height: 1;
	color: #FFF;
	background: rgba(var(--bs-danger-rgb));
	min-width: 50px;
	min-height: 24px;
	border-radius: 3px;
}

.nini {
	background: var(--color-theme-1);
}

.form-group {
	position: relative;
	align-items: baseline;
}

.form-group::before {
	content: "";
	width: calc(100% - var(--bs-gutter-x));
	border-top: 1px dashed #767474;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}

.col-form-label {
	--fs: 17;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 500;
}

.mw_wp_form .horizontal-item {
	margin-right: 15px;
}

.mw_wp_form .horizontal-item + .horizontal-item {
	margin-left: 0;
}

.form-control::placeholder {
	color: #d4d4d4;
}

.contact-policy {
	position: relative;
	background: #FFF;
	max-height: 180px;
	border: 1px solid #dee2e6;
	border-radius: 5px;
	padding: 20px 15px;
	margin-bottom: 15px;
	overflow: scroll;
}

.contact-policy p {
	--fs: 15;
	line-height: 1.4;
}

.contact-policy h3 {
	--fs: 18;
	font-family: var(--zen-maru);
	font-size: var(--font-size);
	margin-bottom: 5px;
}

.contact-policy * + h3 {
	margin-top: 20px;
}

.form-send-title {
	--fs: 25;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	text-align: center;
}

.form-button-wrapper {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 30px;
	margin-top: 50px;
}

.send-btn,
.back-btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	--fs: 15;
	color: #FFF;
	text-decoration: none;
	font-size: var(--font-size);
	font-weight: 500;
	font-family: var(--zen-maru);
	max-inline-size: max-content;
	min-width: 320px;
	min-height: 77px;
	border: none;
	border-radius: 50px;
	background: var(--color-theme-1);
	padding: 5px 45px;
}

.send-btn:hover,
.back-btn:hover {
	opacity: 0.6;
}

@media(max-width: 767px) {
	.contact-tel {
		margin-bottom: 80px;
	}
	.contact-tel p {
		--fs: 17;
	}
	.contact-tel a {
		--fs: 45;
	}
	.contact-tel a img {
		width: 27;
	}
	.contact-tel p span {
		--fs: 16;
	}
	.form-contact {
		border-radius: 20px;
		padding: 40px 20px;
	}
	.send-btn,
	.back-btn {
		max-width: 280px;
		min-height: 60px;
		padding: 5px 20px;
	}
}

/*		施工事例詳細		*/
.single-cases-category,
.single-news-category {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 160px;
	min-height: 30px;
	background: var(--color-theme-1);
	color: #FFF;
	--fs: 17;
	font-family: var(--zen-maru);
	font-weight: 500;
	border-radius: 40px;
	margin-bottom: 15px;
}

.single-cases-title,
.single-news-title {
	--fs: 25;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 500;
	margin-bottom: 0;
}

.single-cases-info,
.single-news-info {
	margin-bottom: 40px;
}

.single-cases-images {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 45px;
	margin-bottom: 40px;
}

@media(max-width:768px) {
	.single-cases-images{
		grid-template-columns:1fr;
		gap: 55px;
	}
}

.single-cases-images h2 {
	--fs: 20;
	font-size: var(--font-size);
	font-family: var(--font-family);
	color: #FFF;
	background: var(--color-theme-1);
	border-radius: 5px;
	padding: 5px 20px;
	margin-bottom: 10px;
}

.single-cases-images img {
	aspect-ratio: 160 / 120;
	object-fit: cover;
	width: 100%;
}

.single-content {
	line-height: calc(32 / 16);
	margin-bottom: 70px;
}

/* ========================================
		250519
======================================== */

.single-cases-images{
	position: relative;
}

.single-cases-images::before{
	content: "";
	width: 27px;
    aspect-ratio: 27 / 23;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/icon-arrow.svg);
    mask-image: url(img/icon-arrow.svg);
    background-color: var(--color-theme-1);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}

@media(max-width:768px) {
	.single-cases-images::before{
		transform: translate(-50%,-50%) rotate(90deg);
	}
}

body.single-cases .wp-block-gallery > figure.wp-block-image {
	/*width: calc((100% - 0.5em * 2) / 3)!important;
	flex-grow: 0!important;*/
	/* aspect-ratio: 371 / 278; */
}

@media(max-width:768px) {
	body.single-cases .wp-block-gallery > figure.wp-block-image {
/*		width: calc((100% - 0.5em) / 2)!important;*/
	}
}

.cat-heading{
	color: var(--color-theme-1);
	font-family: var(--zen-maru);
	font-weight: bold;
	--fs:24;
	margin-bottom: 5px;
}

.title-round {
	display: flex;
	justify-content: center;
	align-items: center;
	min-width: 365px;
	min-height: 60px;
	--fs: 30;
	font-size: var(--font-size);
	font-family: var(--zen-maru);
	font-weight: 600;
	color: var(--color-theme-1);
	max-inline-size: max-content;
	background: #FFF;
	border: 1px solid var(--color-theme-1);
	border-radius: 50px;
	margin-bottom: 70px;
}

@media(max-width: 767px) {
	.title-round {
		--fs: 22;
		min-width: 280px;
		min-height: 50px;
		margin-bottom: 40px;
	}
}

.wow:not(.animate__animated) {
    animation-name: none;
    visibility: hidden;
}


figure.wp-block-gallery {
	display: grid;
	grid-template-columns: repeat(3,1fr);
}

.wp-block-gallery figure.wp-block-image {
	width: 100%!important;
}

.wp-block-gallery.has-nested-images figure.wp-block-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.wp-lightbox-overlay .lightbox-image-container {
	height: auto;
	width: auto;
}

.wp-lightbox-overlay .wp-block-image img {
	height: auto;
	max-height: 85svh;
	width: auto;
	max-width: 90vw;
	min-width: auto;
}

@media(max-width: 767px) {
	figure.wp-block-gallery {
		grid-template-columns: repeat(2,1fr);
	}
}
