/*
----------------------------------------

footer

----------------------------------------
*/

footer {
	margin: 0;
	position: relative;
}

footer .sp-logo {
	display: none;
}

footer a:where(:not(.wp-element-button)):hover {
	display: inline-block;
}

footer .custom-logo-link {
	border: none !important;
}

footer .custom-logo-link img {
	transition: all .4s;
}
footer .custom-logo-link img {
	opacity: 0;
}
footer .custom-logo-link {
	content: "";
	background-image: url(../img/page/2x/logo-white.png);
	background-repeat: no-repeat;
	background-size: contain;
	width: 100%;
	height: 100%;
	background-size: contain;
}

.service-footer-item li {
	margin-block-start: 0;
    margin-block-end: 0;
}

.service-footer-item {
	list-style: none;
    padding-left: .8em;
    padding-top: .6em;
}
@media screen and (max-width: 750px) {
	.service-footer-item {
		width: 100%;
	}
}

.service-footer-item h3 a {
	font-size: var(--wp--preset--font-size--16);
    line-height: 1.5;
    padding: 0;
    padding-left: 0;
    position: relative;
    background-color: transparent;
}
.service-footer-item h3 {
	position: relative;
	line-height: 1;
	font-weight: 500;
    padding-left: 1.2em;
	margin: 0;
	transition: color .5s;
}

.service-footer-item li:not(:first-child) {
	margin-top: .75em !important;
}

.service-footer-item h3::before {
	content: '';
    width: .9em;
    height: 2px;
    background: var(--wp--preset--color--primary);
    position: absolute;
    top: 12px;
    left: 0;
}
@media screen and (max-width: 750px) {
	.service-footer-item h3 a {
		padding: 14px 2.6em 14px 2.4em;
		display: block;
        font-size: var(--wp--preset--font-size--15);
        position: relative;
	}
	.service-footer-item {
		padding: 0;
	}
	.service-footer-item li {
		padding: 0;
		border-bottom: solid 1px rgba(255, 255, 255, 0.2);
        margin: 0 !important;
	}
	.service-footer-item h3 {
		padding-left: 0;
	}
	.service-footer-item li:not(:first-child) {
		margin-top: 0 !important;
	}
	.service-footer-item h3::before {
		content: none;
	}
	.service-footer-item h3 a::before {
		content: "";
        width: 14px;
        height: 2px;
        background-color: var(--wp--preset--color--primary);
        position: absolute;
        top: calc(50% - 1px);
        left: 15px;
        z-index: 99;
	}
	.service-footer-item h3 a::after {
		content: "";
        width: 9px;
        height: 8px;
        background: url(../img/page/2x/arrow-01.png) center center / contain no-repeat;
        position: absolute;
        top: calc(50% - 5px);
        right: 0px;
        transition: all .2s;
	}
}

body:has( .efo-form ) .btn-wrap:has( > #page-top ) {
	display: none;
}

.wp-block-template-part:has( #page-top ) {
	margin: 0 !important;
}

.btn-wrap:has( > #page-top ) {
	position: fixed;
	right: 40px;
	bottom: 60px;
	opacity: 0;
	visibility: hidden;
	z-index: -1;
	transition: all .2s;
}

.btn-wrap:has( > #page-top ).active {
	opacity: 1;
	visibility: visible;
	z-index: 99;
}

#page-top {
	display: grid;
	place-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	line-height: 1;
	background: var(--wp--preset--color--contrast);
	position: relative;
	cursor: pointer;
	transition: all .2s;
}

#page-top img {
	transition: all .2s;
}

#sp-fix {
	display: none;
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	opacity: 0;
	visibility: hidden;
	z-index: -99;
	transform: translateY( 100% );
	transition: all .2s;
}

#sp-fix .is-style-mail-btn .wp-element-button,
#sp-fix .is-style-tel-btn .wp-element-button {
	display: block;
	width: 100%;
	padding-right: 0;
	padding-left: 0;
}

#sp-fix .wp-block-buttons>.wp-block-button {
	width: calc( ( 100% - var(--wp--preset--spacing--10) ) / 2 );
}

#sp-fix .is-style-mail-btn .wp-element-button::before,
#sp-fix .is-style-tel-btn .wp-element-button::before {
	transform: translateY( 4px );
}

#sp-fix .is-style-tel-btn .wp-element-button {
	background: var( --wp--preset--color--base );
	color: var( --wp--preset--color--primary );
}

#sp-fix .is-style-tel-btn .wp-element-button::before {
	color: var( --wp--preset--color--primary );
}


@media screen and ( max-width: 1000px ) {

	footer .has-global-padding > .alignfull {
		gap: 1em;
	}

}


@media screen and ( max-width: 750px ) {

	footer > .wp-block-group {
		padding: 0 !important;
	}

	footer .has-global-padding > .alignfull {
		margin-right: 0;
		margin-left: 0;
		gap: 0;
	}

	footer .sp-logo {
		display: block;
		padding: var(--wp--preset--spacing--20) !important;
		margin-bottom: var(--wp--preset--spacing--20);
	}

	.bottom-head {
		flex-direction: column;
		gap: var(--wp--preset--spacing--20);
	}

	.bottom-head .wp-block-template-part {
		width: 100%;
	}

	footer .wp-block-template-part .btn-set {
		width: 100%;
		flex-direction: column;
		align-items: stretch;
		padding: 0 var(--wp--preset--spacing--20) !important;
		gap: var(--wp--preset--spacing--20);
	}

	footer .btn-set > div {
		flex: 1;
	}

	footer .btn-set .tel-link {
		padding: var( --wp--preset--spacing--20) var( --wp--preset--spacing--20) var(--wp--preset--spacing--20);
		border: solid 1px var( --wp--preset--color--primary );
		background: var( --wp--preset--color--base );
		position: relative;
		transition: all .2s;
	}

	footer .btn-set .wp-block-button {
		width: 100%;
		height: 100%;
	}

	footer .btn-set .is-style-mail-btn .wp-block-button__link {
		display: flex;
		width: 100%;
		height: 100%;
		justify-content: center;
		align-items: center;
	}

	footer .btn-set .is-style-mail-btn .wp-block-button__link::before {
		transform: translateY( 0 );
	}

	.nav-wrap {
		gap: var(--wp--preset--spacing--20) !important;
	}

	.bottom-nav {
		border-top-color: #e5e5e5 !important;
	}

	.bottom-nav > .wp-block-group {
		flex-direction: column;
		gap: 0;
		padding: 0 !important;
	}

	.bottom-nav > .wp-block-group > * {
		width: 100%;
	}

	.bottom-nav .bottom-nav-wrap > .menu-list a {
		display: grid;
		width: 100%;
		height: 100%;
		font-size: var(--wp--preset--font-size--15);
		padding: .98em .98em .9em 0;
		background: var(--wp--preset--color--gray);
		position: relative;
		margin-bottom: .44em;
	}

	.bottom-nav-wrap > .menu-list {
		display: grid;
		grid-template-columns: 1fr;
		gap: 1px;
		text-align: left;
	}

	.bottom-nav-wrap > .menu-list a::after {
		display: none;
	}
	
	.bottom-nav-wrap > .menu-list li:nth-child( 2 ) {
		order: 3;
	}

	.bottom-nav-wrap > .menu-list li:nth-child( 3 ) {
		order: 5;
	}

	.bottom-nav-wrap > .menu-list li:nth-child( 4 ) {
		order: 2;
	}

	.bottom-nav-wrap > .menu-list li:nth-child( 5 ) {
		order: 4;
	}

	.bottom-nav-wrap > .menu-list li:nth-child( 6 ) {
		order: 6;
	}

	footer .has-global-padding > .alignfull {
		margin-top: var(--wp--preset--spacing--20);
	}

	#sp-fix {
		display: block;
	}

	#sp-fix.active {
		opacity: 1;
		visibility: visible;
		z-index: 99;
		transform: none;
	}

}


/*
----------------------------------------

footer-02

----------------------------------------
*/

.footer-02 {
	padding-top: 3.6em !important;
	padding-bottom: 3em !important;
	padding-bottom: var(--wp--preset--spacing--80);
	background-position:
		left 17.3% bottom 0,
		center center;
	font-weight: 500;
}

.footer-text {
	margin-top: -9px !important;
}
@media screen and (max-width: 750px) {
	.footer-text {
		margin-top: -6px !important;
		padding: 0 20px;
		letter-spacing: .1em;
	}
}

.footer-addr {
	margin-top: -36px !important;
    line-height: 1.8;
}
@media screen and (max-width: 750px) {
	.footer-addr {
		margin-top: -33px !important;
		line-height: 1.6;
		padding: 0 20px;
		font-size: 13px;
		letter-spacing: .1em;
	}
}
.footer-02 .wp-block-site-logo {
	margin-top: 13px;
}

.footer-02 a.link-to-cover-and-group-blocks {
	display: block;
}
@media screen and (max-width: 750px) {
	.footer-02 a.link-to-cover-and-group-blocks .nav-menu-btn {
		margin: 0 20px;
	}
}
.footer-02 .nav-wrap {
	align-items: flex-start;
	gap: 2.9em;
}

.footer-02 .bottom-info {
	font-size: var(--wp--preset--font-size--15);
	gap: 1.8em;
	line-height: 1.8;
	letter-spacing: .6px;
}

.footer-02 .is-style-notes {
	font-size: var(--wp--preset--font-size--12);
}

.footer-02 .bottom-nav {
	flex: 1;
}

.footer-02 .bottom-nav-wrap {
	gap: 2.7em;
}

.footer-02 .menu-list {
	list-style: none;
	padding-left: 0;
	margin-bottom: 2em;
	flex: 1;
}
.footer-02 .bottom-nav-wrap > .menu-list li + li {
	margin-top: .5em;
}

.footer-02 .nav-menu-wrap {
	flex: 1;
}

.footer-02 p.is-style-arrow-right,
.footer-02 li.is-style-arrow-right a {
	width: 100%;
	min-height: 42px;
	place-content: center left;
	padding: 0 1em 0 1em;
	margin-bottom: .6em;
	color: var(--wp--preset--color--base);
	border: none;
	border-bottom: solid 1px rgba(255, 255, 255, 0.2);
}

.footer-02 li.is-style-arrow-right {
	position: relative;
}

.footer-02 p.is-style-arrow-right::after,
.footer-02 li.is-style-arrow-right::after {
	width: 11px;
	height: 10px;
	right: 0px;
	top: calc( 50% - 6px );
}

.footer-02 li.is-style-arrow-right::after {
	position: absolute;
	content: "";
	width: 11px;
	height: 10px;
	background: url(../img/page/2x/arrow-01.png) center center / contain no-repeat;
	top: calc( 50% - 6px );
	right: 0px;
	transition: all .2s;
}
@media screen and (max-width:750px) {
	.footer-02 p.is-style-arrow-right::after,
	.footer-02 li.is-style-arrow-right::after,
	.footer-02 .cat-item a::after {
		right: -1px;
        top: calc(50% - 4px);
		width: 9px;
    	height: 8px;
	}
}


.footer-02 .wp-block-group .nav-menu {
	gap: .4em;
	margin-bottom: .9em;
}

.footer-02 .parent {
	background-color: var(--wp--preset--color--primary);
	letter-spacing: .1em;
	padding: 7px 13px;
    line-height: 1;
    margin-left: 4px;
    margin-top: 9px;
	color: #ffffff;
}

.footer-02 .sub-menu {
	list-style: none;
	padding-left: .8em;
	padding-top: .6em;
}

.footer-02 .parent + .sub-menu {	
	padding-left: 0;
}

.footer-02 .sub-menu li {
	line-height: 1.5;
	padding-left: 1.3em;
	position: relative;
}

.footer-02 .sub-menu li::before {
	content: '';
	width: 1em;
	height: 2px;
	background: var( --wp--preset--color--primary );
	position: absolute;
	top: 12px;
	left: 0;
}

.footer-02 .sub-menu li + li {
	margin-top: .75em;
}

.footer-02 .cat-item a {
	font-size: var(--wp--preset--font-size--16);
	line-height: 1.5;
	padding: 0;
    padding-left: 0;
    position: relative;
	background-color: transparent;
}
.footer-02 .cat-item a::before {
	content: none;
}

.footer-02.is-style-bg-logo {
	background-position: left -90px bottom -280px;
    background-size: 70%;
}

.footer-flex-c {
	padding: 34px 20px 33px !important;
}

.footer-flex-c-inner {
	width: 100%;
    max-width: 1200px;
    margin: 0 auto !important;
	justify-content: space-between;
}

@media screen and ( max-width: 1200px ) {
	.footer-02 .nav-wrap {
		flex-direction: column;
		gap: 0 !important;
		align-items: stretch;
	}

	.footer-02.is-style-bg-logo {
		padding-bottom: 20px !important;
		padding-top: 20px !important;
	}

	.wp-block-group.alignwide.is-style-bg-logo {
		background: none;
		padding-bottom: 6.8em !important;
	}

	.footer-02 .bottom-info {
		align-items: center;
		text-align: center;
	}

	.footer-02 .bottom-nav-wrap {
		gap: var(--wp--preset--spacing--40);
	}
	.footer-flex-c-inner {
		flex-direction: column;
    	font-size: 12px !important;
	}
	.footer-flex-c-inner .is-style-notes {
		font-size: 12px !important;
	}
}


@media screen and ( max-width: 750px ) {

	footer {
		background-color: var(--wp--preset--color--gray) !important;
	}

	.footer-02.is-style-bg-logo {
		padding-bottom: 0 !important;
		padding-top: 0px !important;
	}



	.footer-02 .bottom-nav-wrap > .menu-list {
		padding: 25px 20px 0;
	}

	.footer-02 .wp-block-site-logo {
		padding: 14px 46px 0;
	}

	footer > .wp-block-group.footer-flex-c {
		flex-direction: column;
		gap: 0px;
		padding: 10px 0!important;
		margin-top: 30px;
	}

	.footer-02 .is-style-bg-logo {
		padding-left: 20px;
        padding-right: 20px;
		padding-bottom: 20px !important;
		gap: 0;
	}

	.footer-02 .group {
		margin: 0 !important;
		padding: 0 !important;
		border: none !important;
	}

	.footer-02 .group {
		pointer-events: auto;
	}

	.footer-02 .bottom-nav {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
	}

	.footer-02 .group a {
		background: var( --wp--preset--color--primary );
		color: var( --wp--preset--color--base );
	}

	.footer-02 .group a::after {
		content: '\e145';
		color: var( --wp--preset--color--base );
	}

	.footer-02 .group a.open {
		background: var( --wp--preset--color--contrast) !important;
	}

	.footer-02 .group a.open::after {
		content: '\e15b';
	}

	.footer-02 .nav-menu {
		padding: 0 20px!important;
		margin: 0 !important;
		gap: 0 !important;
		font-size: var(--wp--preset--font-size--16) !important;
	}

	.footer-02 .parent {
		width: 100%;
		letter-spacing: .05em;
		line-height: 1;
        padding: 7px;
		font-size: 14px;
		text-align: center;
        letter-spacing: .2em;
		border-top: solid 1px rgba(255, 255, 255, 0.2);
		border-bottom: solid 2px var(--wp--preset--color--primary);
	}

	.footer-02 .parent a {
		background: var( --wp--preset--color--light-gray );
		text-align: left;
	}

	.footer-02 .sub-menu {
		width: 100%;
		padding-left: .4em;
    	padding-top: 0;
	}

	.footer-02 .sub-menu li {
		padding: 0;
	}

	.footer-02 .sub-menu li::before {
		display: none;
	}

	.footer-02 .cat-item,
	.bottom-nav .nav-menu-wrap .menu-list li {
		border-bottom: solid 1px rgba(255, 255, 255, 0.2);
		padding-left: 0;
		margin: 0 !important;
	}

	.footer-02 .cat-item:first-of-type {
		border-top: none;
	}

	.footer-02 .cat-item a,
	.bottom-nav .nav-menu-wrap .menu-list a {
		display: block;
		font-size: var(--wp--preset--font-size--15);
		padding: 1.05em 3em 1.05em var(--wp--preset--spacing--40);
		position: relative;
	}

	.footer-02 .sub-menu .cat-item a {
		padding: 14px 2.6em 14px 2.4em;
	}

	.footer-02 .sub-menu .cat-item a::before {
		content: "";
		width: 14px;
		height: 2px;
		background-color: var(--wp--preset--color--primary);
		position: absolute;
		top: calc( 50% - 1px );
		left: 15px;
		z-index: 99;
	}

	.footer-02 .cat-item a::after,
	.bottom-nav .nav-menu-wrap .menu-list a::after {
		content: "";
        width: 9px;
        height: 8px;
        background: url(../img/page/2x/arrow-01.png) center center / contain no-repeat;
        position: absolute;
        top: calc(50% - 5px);
        right: 0px;
        transition: all .2s;
	}

	.footer-02 .bottom-nav-wrap {
		gap: 0;
		background-color: var(--wp--preset--color--gray);
	}

	.footer-02 .menu-list {
		margin: 0;
		border: none;
	}

	.footer-02 .bottom-nav-wrap > .menu-list li + li {
		margin-top: 0;
	}

	.footer-02 p.is-style-arrow-right {
		min-height: 48px;
		padding: 16px 0px;
		margin: 0;
		font-size: var(--wp--preset--font-size--15);	
	}

	.footer-02 li.is-style-arrow-right a::after {
		width: 11px;
        height: 10px;
		right: 38px;
	}
	.footer-02 p.is-style-arrow-right::after {
		right: 0px;
	}

	.footer-02 .bottom-info {
		padding: 3.8em var(--wp--preset--spacing--40);
		line-height: 1.7;
		gap: 1.3em;
	}

	.footer-02 .bottom-info .logo img {
		width: auto;
		height: 33px;
	}

	.footer-02 .is-style-notes {
		font-size: var(--wp--preset--font-size--10);
	}

	.btn-wrap:has( > #page-top ) {
		right: 10px;
		bottom: 10px;
	}

	#page-top {
		width: 40px;
		height: 40px;
	}

	#page-top img {
		width: 14px !important;
	}
	.footer-02 .parent {
		margin-left: 0px;
    	margin-top: 0px;
	}

}


/*
----------------------------------------

hover

----------------------------------------
*/

@media screen and ( min-width: 780px ) {

	footer .custom-logo-link:hover img {
		transform: scale( 1.05 );
	}

	footer a:where(:not(.wp-element-button)):hover {
		color: var(--wp--preset--color--primary);
	}

	#page-top:hover {
		background-color: var(--wp--preset--color--primary);
	}

	#page-top:hover img {
		transform: translateY( -15% );
	}

	.footer-02 a:hover {
		color: var(--wp--preset--color--primary) !important;
	}

	.footer-02 .link-to-cover-and-group-blocks:hover p.is-style-arrow-right {
		color: var(--wp--preset--color--primary) !important;
	}

	.footer-02 .link-to-cover-and-group-blocks:hover p.is-style-arrow-right::after,
	.footer-02 li.is-style-arrow-right:hover::after {
		right: -5px;
	}

}
