/* Footer Base */
.site-footer {
	width:	100%;
    padding: 0.5em 5%;
    position: relative;
    color: #fff;
    overflow: hidden;
	font-size: 1em;
}


/* 背景画像 */
.footer-background {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    filter: brightness(45%);
    z-index: -1;
}

/* Main Layout */
.footer-main {
	display:	flex;
	gap: 1.6em;
	padding: 6px 0;
}

/* 左右カラム共通 */
.footer-left-column,
.footer-right-column {
    flex: 1;
    min-width: 0;
}

/* Left Column */
.footer-logo {
    width: fit-content;
	margin-left: 1em;
}

.footer-logo img {
	width: 10vw;
}

.footer-catchphrase {
    margin-top: 0.2em;
    font-size: 2.2em;
    line-height: 1.25;
    font-weight: 700;
}

.footer-addresses {
	margin-top:	0.4em;
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.footer-office {
    font-size: 1.1em;
    line-height: 1.5;
}

.office-label {
    font-weight: 700;
    margin-bottom: 0.2em;
}

.office-zip {
    /*font-weight: 600;*/
}

.office-address a {
    color: inherit;
    text-decoration: none;
}

.office-address a:hover {
    text-decoration: underline;
}

.office-tel {
    font-size: 1em;
}

.office-tel a {
    color: inherit;
    text-decoration: none;
}

.office-tel a:hover {
    text-decoration: underline;
}

.office-sep {
    margin: 0 0.4em;
}

.footer-office {
padding-left: clamp(0px, 4vw, 40px);

}


/* Right Column（Menu） */
.footer-right-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
	row-gap:	0.25em;
    column-gap: 0.8em;
	margin-left: auto;
    justify-items: start;
    align-items: center;
}


.footer-right-column h1 a {
    font-size: 1.15rem;
    font-weight: 700;
    color: #fff;
    display: inline-flex;
    align-items: center;
    gap: 6px;
	    padding: 0.2em 0;
}
.footer-right-column a {
    display: inline-flex;
    align-items: center;
	min-height:	1.3em;
}
/* 右メニューのズレ修正 */
.footer-right-column h1 {
    margin: 0;
}

/* Hover Animation */
.footer-link .text {
	display: inline-block; 
	opacity: 0.75; 
	transition: opacity 0.4s ease, transform 0.45s ease; 
} 
.footer-link:hover .text {
	opacity: 1;
	transform: translateX(6px); 
}
.footer-arrow {
	display: inline-block;
	max-width: 18px;
	overflow: hidden;
	white-space: nowrap;
	transition: max-width 0.6s ease, opacity 0.5s ease;
	opacity: 0.6; 
	font-weight: bold; 
}
.footer-link:hover .footer-arrow {
	max-width: 53px;
	opacity: 1; 
}
.footer-link:hover .footer-arrow::before {
	content: "＞＞";
	background: linear-gradient(
		to right, #EB5F51 0%,
		#F07266 30%,
		#FF968C 50%,
		#FFBAB3 80%,
		#ffffff 100% 
	);
	-webkit-background-clip: text; color: transparent; 
}

/* Footer Bottom */
.footer-bottom {
    display: flex;
    align-items: center;
    gap: 1.2em;
        margin: 1em 2em;
    font-size: 0.9em;
    position: relative;
    z-index: 2;
}

.footer-bottom p {
    display: flex;
    align-items: center;
    gap: 0.6em;
}

.footer-instagram-icon {
    width: 20px;
    height: auto;
    opacity: 0.9;
    transition: opacity 0.3s ease;
}

.footer-instagram-icon:hover {
    opacity: 1;
}

/* タブレット */
@media screen and (max-width: 1024px) and (min-width: 768px) {
	.footer-logo {
        margin-left: 1em;
    }
}

/* SP（スマホ） */
@media (max-width: 767px) {

    .footer-main {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .footer-left-column {
        width: 100%;
        margin: 0 auto;
    }

    .footer-right-column {
        display: none;
    }
	
	.footer-logo {
        margin-left: 1em;
    }

    .footer-logo img {
        width: 30vw;
    }

    .footer-bottom {
        flex-direction: column-reverse;
        gap: 0.6em;
        text-align: center;
    }
	
	.footer-addresses {
        text-align: left;
        padding: 0 0.5em;
    }

    .footer-office {
        text-align: left;
		padding-left: 0;
    }
	
	.footer-bottom p:first-child {
        font-size: 0.75em;
        opacity: 0.55;
        letter-spacing: 0.03em;
    }
}
