/*
 * Footer nav menu — top-level items are column headers (non-clickable, href="#"),
 * their sub-menu items are the real links. wp_nav_menu()'s default nested
 * <ul><li><ul> markup already gives us this structure; this is just layout.
 */

.intimefire-footer-menu-wrap {
	background: var(--contrast, #222222);
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding: 2.5rem 0;
}

.intimefire-footer-menu {
	width: 100%;
}

.intimefire-footer-menu > ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 2rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.intimefire-footer-menu > ul > li > a {
	display: block;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #ffffff;
	margin-bottom: 0.85rem;
	text-decoration: none;
	pointer-events: none;
	cursor: default;
}

.intimefire-footer-menu > ul > li > ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.intimefire-footer-menu > ul > li > ul a {
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
	font-size: 0.875rem;
	/* WCAG 2.5.5 touch target — footer links are text-only, so give them
	   enough vertical padding to reach 44px tap height without changing
	   the visual line length. */
	display: inline-block;
	padding: 0.35rem 0;
	min-height: 44px;
	display: flex;
	align-items: center;
}

.intimefire-footer-menu > ul > li > ul a:hover,
.intimefire-footer-menu > ul > li > ul a:focus {
	color: #ffffff;
	text-decoration: underline;
}

@media (max-width: 480px) {
	.intimefire-footer-menu > ul {
		grid-template-columns: 1fr 1fr;
	}
}

/*
 * GeneratePress's default "back to top" button was 40x40px — 4px under the
 * WCAG 2.5.5 44px minimum. This is a parent-theme default UI element, fixed
 * here in the child theme rather than editing the parent. Phase J audit,
 * 2026-07-25.
 */
.generate-back-to-top {
	min-width: 44px;
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ---------- Global chrome refresh (2026-11-11): utility bar, header highlight, footer ---------- */

/* Utility bar above the header: desktop only. */
.intimefire-topbar {
	display: none;
}

@media (min-width: 900px) {
	.intimefire-topbar {
		display: block;
		background: #14181f;
		color: #fff;
		font-size: 0.8125rem;
	}

	.intimefire-topbar-inner {
		display: flex;
		align-items: center;
		gap: 1.5rem;
		max-width: 1200px;
		margin: 0 auto;
		padding: 0 1rem;
		min-height: 40px;
	}

	.intimefire-topbar-loc {
		margin-left: auto;
	}
}

.intimefire-topbar-link,
.intimefire-topbar-loc {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 40px;
	color: #fff;
	text-decoration: none;
}

.intimefire-topbar-link svg,
.intimefire-topbar-loc svg {
	color: #ff8a9b;
}

.intimefire-topbar-link:hover,
.intimefire-topbar-link:focus-visible {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.intimefire-topbar-link:focus-visible {
	outline: 2px solid #fff;
	outline-offset: -2px;
}

/* Header: current page gets an accent underline, not just a colour change. */
.main-navigation .main-nav > ul > li[class*="current-menu-"] > a,
.main-navigation .main-nav > ul > li.current_page_item > a {
	box-shadow: inset 0 -3px 0 var(--accent, #c8102e);
}

/* Footer layout: brand/contact + menu columns on top, copyright bar underneath. */
.site-footer {
	display: flex;
	flex-direction: column;
}

.site-footer .intimefire-footer-menu-wrap { order: 1; }
.site-footer .site-info { order: 2; }

.intimefire-footer-menu-wrap {
	background: #14181f;
	border-top: 4px solid var(--accent, #c8102e);
	padding: clamp(2rem, 5vw, 3.5rem) 0;
}

.intimefire-footer-menu-wrap .inside-top-bar {
	display: grid;
	gap: 2rem;
	padding: 0 1rem;
}

@media (min-width: 1000px) {
	.intimefire-footer-menu-wrap .inside-top-bar {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr);
		gap: 3rem;
	}
}

.intimefire-footer-name {
	margin: 0 0 0.75rem;
	font-size: 1.25rem;
	font-weight: 800;
	color: #fff;
}

.intimefire-footer-tag {
	margin: 0 0 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #d5d9df;
}

.intimefire-footer-contact {
	display: grid;
	gap: 0.5rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
	color: #d5d9df;
	font-size: 0.9375rem;
}

.intimefire-footer-contact li {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	margin: 0;
}

.intimefire-footer-contact svg {
	flex: 0 0 auto;
	margin-top: 0.125rem;
	color: #ff8a9b;
}

.intimefire-footer-contact a {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	color: #fff;
	text-decoration: none;
	font-weight: 600;
}

.intimefire-footer-contact a:hover,
.intimefire-footer-contact a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.intimefire-footer-quote {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 1.5rem;
	background: var(--accent, #c8102e);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	border-radius: 999px;
}

.intimefire-footer-quote:hover,
.intimefire-footer-quote:focus-visible {
	background: #fff;
	color: #a40d25;
}

.intimefire-footer-menu-wrap a:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

/* Copyright bar */
.site-footer .site-info {
	background: #0c0f14;
	color: #aab0b9;
	font-size: 0.8125rem;
}

.site-footer .site-info a {
	color: #d5d9df;
}

.site-footer .inside-site-info {
	padding: 1rem;
	text-align: center;
}

/* Mobile: footer columns collapse into accordions (see js/footer-accordion.js). */
@media (max-width: 699px) {
	.intimefire-footer-menu > ul {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.intimefire-footer-menu > ul > li {
		border-top: 1px solid rgba(255, 255, 255, 0.14);
	}

	.intimefire-footer-menu > ul > li > a[role="button"] {
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 52px;
		margin: 0;
		pointer-events: auto;
		cursor: pointer;
	}

	.intimefire-footer-menu > ul > li > a[role="button"]::after {
		content: "+";
		font-size: 1.25rem;
		font-weight: 400;
	}

	.intimefire-footer-menu > ul > li > a[aria-expanded="true"]::after {
		content: "–";
	}

	.intimefire-footer-menu > ul > li > ul[hidden] {
		display: none;
	}

	.intimefire-footer-menu > ul > li > ul {
		padding-bottom: 0.75rem;
	}
}

/* Five columns on wide screens; tighter link rows (still >= 32px targets, 44px on phones). */
@media (min-width: 1000px) {
	.intimefire-footer-menu > ul {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 1.5rem;
	}

	.intimefire-footer-menu > ul > li > ul a {
		min-height: 32px;
		padding: 0.1rem 0;
	}
}

/* Footer v2: actions row, newsletter, legal bar */
.intimefire-footer-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 1.5rem; }

.intimefire-footer-survey {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 1.25rem;
	border: 2px solid rgba(255, 255, 255, 0.5);
	border-radius: 999px;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.intimefire-footer-survey:hover,
.intimefire-footer-survey:focus-visible { background: #fff; color: #14181f; border-color: #fff; }

.intimefire-footer-news-title { margin: 0 0 0.5rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #fff; }

.intimefire-footer-news .ff-t-container { display: flex; gap: 0.5rem; align-items: flex-start; }
.intimefire-footer-news .ff-t-cell { flex: 1 1 auto; min-width: 0; padding: 0; }
.intimefire-footer-news .ff-t-cell:last-child { flex: none; }
.intimefire-footer-news .ff-el-group { margin: 0; }
.intimefire-footer-news input[type="email"] { min-height: 48px; width: 100%; padding: 0 1rem; border: 1px solid rgba(255, 255, 255, 0.35); border-radius: 999px; background: rgba(255, 255, 255, 0.08); color: #fff; }
.intimefire-footer-news input[type="email"]::placeholder { color: #c3c8d0; }
.intimefire-footer-news .ff-btn-submit { min-height: 48px; padding: 0 1.25rem; border: 0; border-radius: 999px; background: var(--accent, #c8102e); color: #fff; font-weight: 700; cursor: pointer; }
.intimefire-footer-news .ff-btn-submit:hover, .intimefire-footer-news .ff-btn-submit:focus-visible { background: #fff; color: #a40d25; }
.intimefire-footer-news .ff-message-success, .intimefire-footer-news .error { color: #fff; font-size: 0.875rem; }
.intimefire-footer-news .text-danger { color: #ffb4bf; font-size: 0.8125rem; }

.site-footer .inside-site-info {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 1.5rem;
}

.site-footer .intimefire-footer-factory { flex-basis: 100%; }
.site-footer .intimefire-footer-legal a { display: inline-block; padding: 0.5rem 0.25rem; }

/* Footer v2 fixes: newsletter sizing/colours (Fluent Forms sets inline styles) and legal bar layout */
.intimefire-footer-news .ff-t-container { flex-wrap: nowrap; }
.intimefire-footer-news .ff-t-cell { width: auto !important; }
.intimefire-footer-news .ff-t-cell:first-child { flex: 1 1 auto !important; }
.intimefire-footer-news .ff-btn-submit { background-color: var(--accent, #c8102e) !important; border-color: var(--accent, #c8102e) !important; color: #fff !important; min-width: 0 !important; width: auto !important; white-space: nowrap; }
.intimefire-footer-news .ff-btn-submit:hover, .intimefire-footer-news .ff-btn-submit:focus-visible { background-color: #fff !important; color: #a40d25 !important; }
.intimefire-footer-news input[type="email"] { padding: 0 0.875rem; }

.site-footer .copyright-bar { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.25rem 1.5rem; }
.site-footer .intimefire-footer-factory { flex-basis: 100%; text-align: center; }
.intimefire-footer-news input[type="email"] { font-size: 0.9375rem; }

/* Social links (text pills; shown only for profiles that have a URL) */
.intimefire-footer-social { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.intimefire-footer-social a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; border: 1px solid rgba(255, 255, 255, 0.35); border-radius: 999px; color: #fff; font-weight: 600; font-size: 0.9375rem; text-decoration: none; }
.intimefire-footer-social a:hover, .intimefire-footer-social a:focus-visible { background: #fff; color: #14181f; border-color: #fff; }
