/**
 * Global layout — header/footer shell; content rules live in content.css.
 *
 * @package Sanpuku_Yosegi_1007
 */

/* Base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body,
#page.site {
	background-color: var(--sanpuku-white);
}

body {
	margin: 0;
	font-family: var(--sanpuku-font-sans);
	font-size: var(--sanpuku-font-size-body);
	line-height: 1.75;
	color: var(--sanpuku-text);
	overflow-x: clip;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

.site-main {
	background-color: var(--sanpuku-white);
}

@media (min-width: 901px) {
	body {
		font-size: var(--sanpuku-font-size-body-pc);
	}
}

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

a {
	color: inherit;
}

/* Footer
   -------------------------------------------------------------------------- */
.site-footer {
	margin-top: var(--sanpuku-space-section-y);
	padding-block: var(--sanpuku-space-block) max(var(--sanpuku-space-content), env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--sanpuku-border);
	background-color: var(--sanpuku-bg-panel);
}

.site-footer__inner {
	width: min(100% - (var(--sanpuku-gutter) * 2), var(--sanpuku-container-wide));
	margin-inline: auto;
	padding-inline: var(--sanpuku-gutter);
}

.site-footer__main {
	margin-bottom: var(--sanpuku-space-block);
}

.site-footer__columns {
	display: grid;
	grid-template-columns: minmax(180px, 1.1fr) repeat(5, minmax(0, 1fr));
	gap: var(--sanpuku-space-content) var(--sanpuku-space-block);
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__column--info {
	font-size: 0.875rem;
	line-height: 1.7;
}

.site-footer__logo {
	margin-bottom: 0.75rem;
}

.site-footer__logo img {
	display: block;
	max-width: 160px;
	height: auto;
}

.site-footer__name {
	margin: 0 0 0.5rem;
	font-weight: 700;
}

.site-footer__hours,
.site-footer__closed,
.site-footer__zip,
.site-footer__address,
.site-footer__tel,
.site-footer__fax {
	margin: 0 0 0.35rem;
}

.site-footer__label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.site-footer__tel a {
	text-decoration: none;
}

.site-footer__tel a:hover,
.site-footer__tel a:focus-visible {
	text-decoration: underline;
}

.site-footer__heading {
	margin: 0 0 0.75rem;
	font-size: 0.9375rem;
	font-weight: 700;
}

.site-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__list li + li {
	margin-top: 0.4rem;
}

.site-footer__list a {
	font-size: 0.875rem;
	color: #444;
	text-decoration: none;
}

.site-footer__list a:hover,
.site-footer__list a:focus-visible {
	color: #111;
	text-decoration: underline;
}

.site-footer__bottom {
	padding-top: var(--sanpuku-space-content);
	border-top: 1px solid var(--sanpuku-border);
	text-align: center;
}

.site-footer__legal {
	margin: 0 0 0.5rem;
	font-size: 0.8125rem;
}

.site-footer__legal a {
	color: #666;
	text-decoration: none;
}

.site-footer__legal a:hover,
.site-footer__legal a:focus-visible {
	text-decoration: underline;
}

.site-footer__copyright {
	margin: 0;
	font-size: 0.8125rem;
	color: #666;
}

@media (max-width: 1100px) {
	.site-footer__columns {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.site-footer__columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.site-footer__columns {
		grid-template-columns: 1fr;
		gap: var(--sanpuku-space-content);
	}
}
