.site-footer {
    background-color: var(--brand-bgSecondary, #f2f3f5);
    padding: 48px 40px;
    margin-top: 180px;
}

.footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 48px;
    padding-bottom: 100px;
}

.footer-info-box {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background-color: var(--brand-bgYellow, #fcf4a3);
    border-radius: 24px;
    padding: 32px;
    width: 40%;
    margin-top: -140px;
}

.footer-illust-placeholder {
    position: relative;
    width: 220px;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 24px;
    color: #a0aec0; font-size: 14px;
}
.footer-illust {
    width: 100%;
    height: auto;
    display: block;
    margin-top: -80px;
}
.footer-info-detail {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.footer-title { font-size: clamp(1.25rem, 1.13rem + 0.57vw, 1.625rem); font-weight: 500; margin: 0; }
.footer-subtitle { font-size: clamp(0.594rem, 0.504rem + 0.42vw, 0.875rem); margin: 0 0 28px; }
.footer-address { font-size: clamp(0.875rem, 0.835rem + 0.19vw, 1rem); font-weight: normal; margin: 0; line-height: 1.6; }
.footer-tel { font-size: clamp(0.875rem, 0.835rem + 0.19vw, 1rem); font-weight: normal; margin: 0; }

.footer-links-area {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding-top: 16px;
    gap: 48px;
}
.footer-nav-middle {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.footer-nav-group {
    display: flex;
    gap: 32px;
}
.footer-links-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
    padding-top: 40px;
}
.footer-nav-bottom {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.footer-other-links {
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 40px;
}
.footer-normal-link, .footer-blank-link {
    font-weight: 200;
    display: inline-block; padding: 4px 8px; margin-left: -8px;
}
.footer-socials {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 24px;
}
.footer-socials a { transition: opacity 0.3s; }
.footer-socials a:hover { opacity: 0.5; }

@media screen and (max-width: 920px) {
	.footer-inner {
		flex-direction: column;
	}
	.footer-info-box {
		width: 80%;
		margin: -140px auto 0;
	}
	.footer-links-area {
		margin: 0 auto;
	}
	
	.footer-links-area {
        gap: 50px;
    }
    .footer-nav-bottom {
        flex-direction: column;
    }
    .footer-other-links {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .footer-socials {
        flex-direction: row;
        margin-top: 56px;
        align-items: center;
    }
}

@media (max-width: 768px) {
    .site-footer {
        padding-top: 80px;
        padding-left: 24px; padding-right: 24px;
    }
    .footer-inner {
        flex-direction: column;
        padding-bottom: 50px;
        gap: 48px;
    }
    .footer-info-box {
        width: 100%;
        margin-top: -160px;
    }
    .footer-links-area {
        padding-top: 0;
    }
    .footer-nav-middle {
        gap: 40px;
    }
    .footer-links-list {
        padding-top: 8px;
    }
}
@media (max-width: 520px) {
	.footer-nav-middle {
        flex-direction: column;
	}
}