.site-footer {
	--footer-bg: #06192c;
	--footer-main: #f8fafc;
	--footer-sub: #b5c0cf;
	--footer-gold: #c2a461;
	--footer-line: rgba(255, 255, 255, .2);
	position: relative;
	isolation: isolate;
	border-top: 1px solid rgba(194, 164, 97, .32);
	background: radial-gradient(circle at 50% 40%, #0a2138 0, var(--footer-bg) 65%);
	color: var(--footer-main);
}

.site-footer a { color: inherit; }
.site-footer__main { padding: clamp(5rem, 6vw, 7.25rem) 0 clamp(2.75rem, 4vw, 4rem); }
.site-footer .container { width: min(100% - clamp(3rem, 10vw, 12rem), 1480px); }
.site-footer__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(260px, 1.15fr) minmax(0, .95fr); align-items: stretch; gap: 0; }
.site-footer__brand,
.site-footer__explore,
.site-footer__connect { min-width: 0; }
.site-footer__explore,
.site-footer__connect { border-left: 1px solid var(--footer-line); padding-left: clamp(2.75rem, 4.5vw, 5.25rem); }
.site-footer__brand { padding-right: clamp(2.75rem, 4.5vw, 5.25rem); }
.site-footer__explore { padding-right: clamp(2.75rem, 4.5vw, 5.25rem); }

.site-footer__logo { display: inline-block; font-family: var(--font-logo); font-size: clamp(3rem, 4vw, 4.75rem); font-weight: 400; line-height: .92; letter-spacing: .03em; transition: color .25s ease; }
.site-footer__logo:hover,
.site-footer__logo:focus-visible { color: var(--footer-gold); }
.site-footer__brand-copy { margin-top: clamp(2rem, 3vw, 3rem); font-family: var(--font-serif); font-size: clamp(1.75rem, 2vw, 2.25rem); line-height: 1.65; letter-spacing: .08em; }
.site-footer__brand-subcopy { margin-top: 1.4rem; color: var(--footer-sub); font-family: var(--font-serif); font-size: clamp(1rem, 1.15vw, 1.25rem); line-height: 1.9; letter-spacing: .06em; }

.site-footer__heading { color: var(--footer-main); font-family: var(--font-logo); font-size: clamp(1rem, 1.25vw, 1.35rem); font-weight: 400; line-height: 1; letter-spacing: .16em; }
.site-footer__menu { margin-top: 2rem; counter-reset: footer-menu; }
.site-footer__menu li { position: relative; counter-increment: footer-menu; border-bottom: 1px solid var(--footer-line); }
.site-footer__menu a { display: flex; min-height: 52px; align-items: center; padding: .8rem 3.25rem .7rem 0; font-family: var(--font-logo); font-size: clamp(.9rem, 1vw, 1.08rem); letter-spacing: .04em; transition: color .25s ease, transform .25s ease; }
.site-footer__menu li::after { content: counter(footer-menu, decimal-leading-zero); position: absolute; top: 50%; right: .1rem; color: var(--footer-sub); font-family: var(--font-logo); font-size: .86rem; transform: translateY(-50%); transition: color .25s ease; }
.site-footer__menu li:hover::after,
.site-footer__menu li:focus-within::after { color: var(--footer-gold); }
.site-footer__menu a:hover,
.site-footer__menu a:focus-visible { color: #fff; transform: translateX(4px); }

.site-footer__socials { display: flex; align-items: center; gap: clamp(1.6rem, 2.8vw, 3rem); min-height: 100px; margin-top: 1rem; }
.site-footer__social { display: grid; width: 46px; height: 52px; place-items: center; color: var(--footer-main); transition: color .25s ease, transform .25s ease; }
.site-footer__social svg { width: 34px; height: 34px; fill: currentColor; }
a.site-footer__social:hover,
a.site-footer__social:focus-visible { color: var(--footer-gold); transform: translateY(-2px); }
.site-footer__social--inactive { opacity: .92; }
.site-footer__connect-links { margin-top: 1.8rem; }
.site-footer__ornament { display: flex; max-width: 17rem; align-items: center; gap: .8rem; color: var(--footer-gold); font-size: .8rem; }
.site-footer__ornament i { display: block; flex: 1; height: 1px; background: var(--footer-gold); }
.site-footer__connect-links nav { display: grid; gap: .95rem; margin-top: 2rem; }
.site-footer__connect-links a { width: fit-content; font-family: var(--font-serif); font-size: clamp(.9rem, 1.05vw, 1.05rem); letter-spacing: .08em; transition: color .25s ease, transform .25s ease; }
.site-footer__connect-links a:hover,
.site-footer__connect-links a:focus-visible { color: var(--footer-gold); transform: translateX(4px); }

.site-footer__utility { border-top: 1px solid var(--footer-gold); }
.site-footer__utility-inner { display: flex; min-height: 76px; align-items: center; justify-content: center; text-align: center; }
.site-footer__utility p { font-family: var(--font-logo); font-size: .8rem; letter-spacing: .08em; }
.site-footer :focus-visible { outline: 1px solid var(--footer-gold); outline-offset: 5px; }

@media (max-width: 1100px) {
	.site-footer .container { width: min(100% - 3rem, 1480px); }
	.site-footer__main { padding-top: 4.75rem; }
	.site-footer__grid { grid-template-columns: minmax(0, .9fr) minmax(235px, 1.1fr) minmax(0, .9fr); }
	.site-footer__brand { padding-right: 2.25rem; }
	.site-footer__explore { padding-inline: 2.25rem; }
	.site-footer__connect { padding-left: 2.25rem; }
	.site-footer__brand-copy { font-size: clamp(1.5rem, 2.7vw, 1.8rem); }
}

@media (max-width: 820px) {
	.site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 3.75rem; }
	.site-footer__brand { grid-column: 1 / -1; padding-right: 0; }
	.site-footer__brand-copy br,
	.site-footer__brand-subcopy br { display: none; }
	.site-footer__explore { border-left: 0; padding-left: 0; }
	.site-footer__connect { padding-left: clamp(2.25rem, 7vw, 3.5rem); }
}

@media (max-width: 600px) {
	.site-footer .container { width: calc(100% - 44px); }
	.site-footer__main { padding: 3.75rem 0 2.75rem; }
	.site-footer__grid { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
	.site-footer__brand { padding-bottom: 3.25rem; }
	.site-footer__logo { font-size: clamp(2.75rem, 13vw, 3.35rem); }
	.site-footer__brand-copy { margin-top: 1.9rem; font-size: clamp(1.5rem, 7vw, 1.75rem); }
	.site-footer__brand-subcopy { font-size: clamp(.94rem, 4.2vw, 1.05rem); }
	.site-footer__brand-copy br,
	.site-footer__brand-subcopy br { display: initial; }
	.site-footer__explore,
	.site-footer__connect { border-left: 0; border-top: 1px solid var(--footer-line); padding-inline: 0; padding-top: 3rem; }
	.site-footer__explore { padding-bottom: 3.25rem; }
	.site-footer__heading { font-size: 1.05rem; }
	.site-footer__menu { margin-top: 1.6rem; }
	.site-footer__menu a { min-height: 48px; }
	.site-footer__socials { min-height: 88px; }
	.site-footer__connect-links { margin-top: 1.25rem; }
	.site-footer__ornament { max-width: none; }
	.site-footer__connect-links nav { margin-top: 1.8rem; }
	/* 2026-09-24 レスポンシブ総点検：プライバシーポリシー／サイトマップのタップ領域が高さ26pxだった。
	   見た目の文字サイズ・間隔はほぼそのままに、リンク自体の高さを44pxへ（gapを詰めて相殺）。 */
	.site-footer__connect-links nav { gap: .2rem; }
	.site-footer__connect-links a { display: flex; align-items: center; min-height: 44px; }
	.site-footer__utility-inner { min-height: 72px; justify-content: center; }
}

@media (max-width: 374px) {
	.site-footer .container { width: calc(100% - 40px); }
	.site-footer__main { padding-top: 3.4rem; }
}

@media (prefers-reduced-motion: reduce) {
	.site-footer *,
	.site-footer *::before,
	.site-footer *::after { transition: none !important; }
}
