/* ==========================================================================
   Site footer — Figma "Footer / Property 1=Footer"
   Desktop: padding 80/40/33, vertical gap 120; column titles Lora Medium 24 caps,
   links Nunito Sans 24 with 16 gap; logo 1051 wide; legal bar Nunito 18.
   Tablet/mobile: our design, pending approval.
   ========================================================================== */

.site-footer {
	padding-block: 3.5rem 1.5rem;
	color: var(--color-body);
}

.site-footer__top {
	display: grid;
	gap: 2.5rem;
}

.site-footer__cols {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2.5rem 1.5rem;
}

.footer-title {
	margin-bottom: 1rem;
	color: var(--color-body);
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1.32;
	text-transform: uppercase;
}

.footer-links,
.socials,
.site-footer__legal {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-links {
	display: grid;
	gap: 0.125rem;                     /* links carry 0.25rem padding (24px tap targets) */
	white-space: nowrap;
}

.footer-links a,
.socials__link,
.site-footer__legal a {
	color: inherit;
	text-decoration: none;
}

.footer-links a:hover,
.socials__link:hover .socials__label,
.site-footer__legal a:hover {
	text-decoration: underline;
}

/* Hours */
.hours__list {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.625rem 1.5rem;
	margin: 0;
}

.hours__row {
	display: contents;
}

.hours__list dt,
.hours__list dd {
	white-space: nowrap;
}

/* Mobile: hours get a full row; socials sit in two columns. */
@media (max-width: 767px) {
	.site-footer__cols > :nth-child(3) {
		grid-column: 1 / -1;
	}

	.site-footer .socials:not(.socials--icons) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem 1.5rem;
	}
}

.hours__list dd {
	margin: 0;
}

/* Socials */
.socials {
	display: grid;
	gap: 0.625rem;
}

.socials__link {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	min-height: 2rem;
}

.socials .icon {
	width: 1.5rem;
	height: 1.5rem;
	flex-shrink: 0;
}

.socials--icons {
	display: flex;
	gap: 0.5rem;
}

.socials--icons .socials__link {
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
}

.socials--icons .icon {
	width: 1.75rem;
	height: 1.75rem;
}

.site-footer__logo {
	display: block;
	width: 100%;
	max-width: 65.6875rem;   /* 1051 */
	margin: 3.5rem auto;
	color: var(--color-heading);
}

.site-footer__logo svg {
	width: 100%;
	height: auto;
}

.site-footer__bottom {
	display: grid;
	gap: 1rem;
	padding-top: 1rem;
	border-top: 1px solid rgb(90 81 74 / 0.4);
	font-size: 0.875rem;
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
}

.site-footer__copy {
	margin: 0;
}

/* ---------- Tablet ---------- */
@media (min-width: 768px) {
	.site-footer {
		padding-block: 4.5rem 1.5rem;
	}

	.site-footer__top {
		grid-template-columns: 1fr auto;
		align-items: start;
	}

	.site-footer__cols {
		grid-template-columns: repeat(3, auto);
		justify-content: start;
		gap: 2.5rem 3.5rem;
	}

	.site-footer__bottom {
		grid-auto-flow: column;
		justify-content: space-between;
		align-items: center;
	}
}

/* ---------- Desktop (Figma) ---------- */
@media (min-width: 1200px) {
	.site-footer {
		padding-block: 5rem 2.08rem;  /* 80 / 33 */
		font-size: 1.5rem;            /* 24 */
	}

	.site-footer__cols {
		gap: 5rem;                    /* 80 */
	}

	.footer-title {
		margin-bottom: 1.5rem;        /* 24 */
		font-size: 1.5rem;
	}

	.footer-links {
		gap: 0.5rem;                  /* 16 incl. link padding */
	}

	.socials {
		gap: 1rem;                    /* 16 */
	}

	.hours__list {
		gap: 1rem 1.5rem;
	}

	.socials .icon {
		width: 2rem;                  /* 32 */
		height: 2rem;
	}

	.socials__link {
		gap: 0.75rem;
	}

	.site-footer__logo {
		margin-block: 7.5rem;         /* 120 */
	}

	.site-footer__bottom {
		font-size: 1.125rem;          /* 18 */
	}

	.site-footer__legal {
		gap: 2rem;
	}
}
