/**
 * Footer columns, info pages, FAQ, store locator.
 * Uses existing --dinc-* / --dc-* tokens.
 */

/* ===== Equal 3-column footer (native + builder) ===== */
html body .dinc-footer__grid--native,
html body .dinc-footer__grid--3,
html body .dinc-footer-builder .dinc-footer__grid {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 0 !important;
	align-items: start;
	max-width: var(--dinc-container, 1200px);
	margin: 0 auto;
	padding: 0 var(--dinc-gutter, 1.25rem);
}

@media (min-width: 768px) {
	html body .dinc-footer__grid--native {
		grid-template-columns: 1.25fr 1fr 1fr 1fr !important;
		gap: 2rem 2.5rem !important;
	}

	html body .dinc-footer__grid--3,
	html body .dinc-footer-builder .dinc-footer__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 2rem 2.5rem !important;
	}

	html body .dinc-footer__accordion {
		display: none !important;
	}

	html body .dinc-footer__desktop {
		display: block !important;
	}
}

@media (max-width: 767px) {
	html body .dinc-footer__desktop {
		display: none !important;
	}

	html body .dinc-footer__col--newsletter {
		padding-bottom: 1.25rem;
		margin-bottom: 0.25rem;
		border-bottom: 1px solid rgba(17, 17, 17, 0.1);
	}

	html body .dinc-footer__accordion {
		display: block;
		border-bottom: 1px solid rgba(17, 17, 17, 0.1);
	}

	html body .dinc-footer__summary {
		list-style: none;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 0.95rem 0;
		font-size: 0.85rem;
		font-weight: 700;
		color: #111;
	}

	html body .dinc-footer__summary::-webkit-details-marker {
		display: none;
	}

	html body .dinc-footer__summary::after {
		content: "+";
		font-weight: 400;
		font-size: 1.1rem;
		line-height: 1;
	}

	html body .dinc-footer__accordion[open] .dinc-footer__summary::after {
		content: "–";
	}

	html body .dinc-footer__panel {
		padding: 0 0 1rem;
	}
}

html body .dinc-footer h3,
html body .dinc-footer__heading {
	font-family: var(--dinc-font-body, var(--dc-font-body, sans-serif)) !important;
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	color: #111 !important;
	margin: 0 0 0.85rem !important;
}

html body .dinc-footer ul,
html body .dinc-footer__menu {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

html body .dinc-footer li {
	margin: 0 0 0.45rem !important;
	font-size: 0.88rem !important;
	line-height: 1.35;
}

html body .dinc-footer a {
	color: #222 !important;
	text-decoration: none !important;
}

html body .dinc-footer a:hover {
	opacity: 0.65;
}

html body .dinc-footer__meta {
	max-width: var(--dinc-container, 1200px);
	margin: 2.25rem auto 0 !important;
	padding: 1.1rem var(--dinc-gutter, 1.25rem) 0 !important;
	border-top: 1px solid rgba(17, 17, 17, 0.12) !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

/* When Elementor global footer is used, still show meta if builder includes it */
html body .dinc-footer__global .dinc-footer__meta {
	margin-top: 2rem !important;
}

/* ===== Store locator ===== */
.dinc-store-locator {
	max-width: var(--dinc-container, 1200px);
	margin: 0 auto;
	padding: 1rem 0 2rem;
}

.dinc-store-locator__title {
	font-family: var(--dinc-font-display, var(--dc-font-display, serif));
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 500;
	margin: 0 0 1.5rem;
	color: var(--dinc-ink, #111);
}

.dinc-store-locator__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
}

@media (min-width: 900px) {
	.dinc-store-locator__grid {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
		gap: 2.5rem;
		align-items: start;
	}
}

.dinc-store-locator__row {
	margin: 0 0 1rem;
}

.dinc-store-locator__label {
	display: block;
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dinc-ink-muted, #666);
	margin-bottom: 0.25rem;
}

.dinc-store-locator__value {
	font-size: 0.95rem;
	line-height: 1.5;
	color: #111;
}

.dinc-store-locator__directions {
	display: inline-flex;
	align-items: center;
	min-height: 2.6rem;
	padding: 0 1.1rem;
	border: 1px solid #111;
	color: #111 !important;
	text-decoration: none !important;
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.dinc-store-locator__map {
	position: relative;
	background: #eee;
	min-height: 280px;
}

.dinc-store-locator__iframe {
	display: block;
	width: 100%;
	min-height: 320px;
	height: 100%;
	border: 0;
}

.dinc-store-locator__map-fallback {
	font-size: 0.8rem;
	color: #555;
	margin: 0.65rem 0 0;
}

/* ===== FAQ accordion ===== */
.dinc-faq {
	max-width: 46rem;
	margin: 0 auto;
}

.dinc-faq__section {
	margin: 0 0 2rem;
}

.dinc-faq__category {
	font-family: var(--dinc-font-display, var(--dc-font-display, serif));
	font-size: 1.35rem;
	font-weight: 500;
	margin: 0 0 0.85rem;
	color: #111;
}

.dinc-faq__item {
	border-bottom: 1px solid rgba(17, 17, 17, 0.12);
}

.dinc-faq__question {
	list-style: none;
	cursor: pointer;
	padding: 0.95rem 1.75rem 0.95rem 0;
	font-size: 0.95rem;
	font-weight: 600;
	color: #111;
	position: relative;
}

.dinc-faq__question::-webkit-details-marker {
	display: none;
}

.dinc-faq__question::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-weight: 400;
	font-size: 1.15rem;
}

.dinc-faq__item[open] .dinc-faq__question::after {
	content: "–";
}

.dinc-faq__answer {
	padding: 0 0 1rem;
}

.dinc-faq__answer p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.6;
	color: #444;
}

/* Info page content rhythm */
.page .dinc-store-locator,
.page .dinc-faq,
.page .dinc-contact-form-wrap {
	padding-left: var(--dinc-gutter, 1.25rem);
	padding-right: var(--dinc-gutter, 1.25rem);
}
