@charset "UTF-8";
/*
    Template: swell
    Theme Name: retrovox
    Version: 1.0.0
*/

.rv-filter__actions {
    margin-top: 23px;
}

span.c-pageTitle__inner {
    padding-bottom: 40px !important;
    text-align: center;
	border-bottom: none !important;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

#body_wrap,
#body_wrap :where(button, input, select, textarea) {
	font-family: "Zen Kaku Gothic New", sans-serif;
}

/* SWELL mobile navigation presentation. SWELL still owns the menu toggle and
   menu ID 97; the child theme only supplies presentation and accessibility
   state that can be removed without changing WordPress menu data. */
@media (max-width: 959px) {
	:root {
		--rv-mobile-menu-bg: rgba(238, 238, 238, .88);
		--rv-mobile-menu-ink: #151515;
		--rv-mobile-menu-muted: #77736d;
		--rv-mobile-menu-accent: #c4643c;
		--rv-mobile-menu-shadow-overhang: 8px;
	}

	#header {
		background-color: rgb(238, 238, 238);
		background-color: var(--rv-mobile-menu-bg);
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
	}

	#header :where(.c-headLogo, .c-iconBtn, .c-iconBtn__icon),
	.p-spMenu :where(.p-spMenu__body, .p-spMenu__closeBtn, .c-spnav, .c-spnav a) {
		opacity: 1;
	}

	.p-spMenu__inner {
		position: absolute;
		top: 0;
		right: 0;
		left: auto;
		width: 100%;
		height: 100%;
		min-height: 100dvh;
		max-width: none;
		max-height: 100%;
		overflow-y: auto;
		overscroll-behavior: contain;
		background-color: rgb(238, 238, 238);
		background-color: var(--rv-mobile-menu-bg);
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
		transform: translate3d(calc(100% + var(--rv-mobile-menu-shadow-overhang)), 0, 0);
		transition: transform .3s cubic-bezier(.22, 1, .36, 1);
		will-change: auto;
	}

	html[data-spmenu="closed"] .p-spMenu.-right .p-spMenu__inner {
		transform: translate3d(calc(100% + var(--rv-mobile-menu-shadow-overhang)), 0, 0);
	}

	html[data-spmenu="opened"] .p-spMenu.-right .p-spMenu__inner {
		transform: translate3d(0, 0, 0);
	}

	html.rv-mobile-menu-closing .p-spMenu__inner { will-change: transform; }

	.p-spMenu {
		transition: opacity .3s cubic-bezier(.22, 1, .36, 1);
	}

	html[data-spmenu="closed"] .p-spMenu {
		opacity: 0;
		transition-delay: 0s;
	}

	html[data-spmenu="closed"]:not(.rv-mobile-menu-closing) .p-spMenu {
		visibility: hidden;
	}

	html.rv-mobile-menu-closing #sp_menu {
		visibility: visible;
		pointer-events: none;
	}

	.p-spMenu__overlay { display: none; }

	.rv-mobile-menu__header {
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		z-index: 3;
		display: flex;
		align-items: center;
		min-height: 88px;
		padding: 20px clamp(24px, 5vw, 32px);
		pointer-events: none;
	}

	.rv-mobile-menu__brand {
		display: inline-flex;
		align-items: center;
		width: clamp(124px, 22vw, 154px);
		min-height: 44px;
		pointer-events: auto;
	}

	.rv-mobile-menu__brand img {
		display: block;
		width: 100%;
		height: auto;
		max-height: 40px;
		object-fit: contain;
	}

	.p-spMenu__closeBtn {
		position: absolute;
		top: 20px;
		right: clamp(24px, 5vw, 32px);
		z-index: 4;
		width: auto;
		height: 48px;
	}

	.p-spMenu__closeBtn .c-iconBtn.-menuBtn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: auto;
		min-width: 96px;
		gap: 9px;
		padding: 0 14px;
		border: 1px solid rgba(21, 21, 21, .2);
		border-radius: 999px;
		background: rgba(255, 255, 255, .55);
	}

	.rv-mobile-menu__close-label {
		color: var(--rv-mobile-menu-ink);
		font-size: 12px;
		font-weight: 700;
		letter-spacing: .08em;
		line-height: 1;
	}

	.p-spMenu__body {
		width: min(100%, 800px);
		margin-inline: auto;
		padding: clamp(132px, 18vh, 164px) clamp(24px, 5vw, 32px) 48px;
	}

	.p-spMenu .c-widget__title.-spmenu { display: none; }

	.p-spMenu .c-spnav {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: clamp(24px, 5vw, 32px);
		row-gap: clamp(30px, 4vh, 40px);
	}

	.p-spMenu .c-spnav > li {
		position: relative;
		min-width: 0;
		border: 0;
	}

	.p-spMenu .c-spnav > li > a {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		min-height: 96px;
		height: 100%;
		padding: 8px 4px 12px;
		border: 0;
		border-bottom: 1px solid rgba(21, 21, 21, .2);
		border-radius: 0;
		background: transparent;
		color: var(--rv-mobile-menu-ink);
		text-decoration: none;
	}

	/* SWELL adds a chevron with its icon font to list-menu links. This menu has
	   no child levels, so remove the glyph and its box inside the dialog only. */
	.p-spMenu .c-spnav > li > a::before {
		content: none;
		display: none;
	}

	.rv-mobile-menu__label {
		display: block;
		margin-bottom: 6px;
		color: var(--rv-mobile-menu-muted);
		font-size: 12px;
		font-weight: 500;
		letter-spacing: .1em;
		line-height: 1.35;
	}

	.rv-mobile-menu__title {
		display: block;
		color: inherit;
		font-size: clamp(18px, 2.4vw, 22px);
		font-weight: 800;
		line-height: 1.45;
		text-wrap: balance;
	}

	.p-spMenu .c-spnav > li:last-child {
		grid-column: 1 / -1;
		margin-top: 4px;
	}

	.p-spMenu .c-spnav > li:last-child > a {
		min-height: 88px;
		height: auto;
		padding: 17px 20px;
		border: 1px solid rgba(21, 21, 21, .18);
		border-radius: 16px;
		background: rgba(255, 255, 255, .72);
	}

	.rv-mobile-menu__phone {
		display: grid;
		justify-items: center;
		gap: 4px;
		min-height: 104px;
		margin-top: 20px;
		padding: 18px 20px;
		border: 1px solid rgba(21, 21, 21, .18);
		border-radius: 16px;
		background: rgba(255, 255, 255, .72);
		color: var(--rv-mobile-menu-ink);
		text-align: center;
		text-decoration: none;
	}

	.rv-mobile-menu__phone-label {
		font-size: 12px;
		font-weight: 500;
		letter-spacing: .08em;
	}

	.rv-mobile-menu__phone-number {
		font-size: clamp(22px, 5.8vw, 28px);
		font-weight: 800;
		letter-spacing: .04em;
		line-height: 1.3;
	}

	.rv-mobile-menu__phone-note {
		color: var(--rv-mobile-menu-muted);
		font-size: 11px;
		line-height: 1.5;
	}

	.p-spMenu .c-spnav > li > a::after {
		content: "";
		position: absolute;
		right: 4px;
		bottom: -1px;
		left: 4px;
		height: 2px;
		border-radius: 999px;
		background: var(--rv-mobile-menu-accent);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform .25s ease;
	}

	.p-spMenu .c-spnav > li:last-child > a::after {
		right: 20px;
		bottom: 12px;
		left: 20px;
	}

	.p-spMenu .c-spnav > li > a:hover,
	.p-spMenu .c-spnav > .current-menu-item > a,
	.p-spMenu .c-spnav > .current-menu-ancestor > a {
		color: #000;
	}

	.p-spMenu .c-spnav > li > a:hover::after,
	.p-spMenu .c-spnav > .current-menu-item > a::after,
	.p-spMenu .c-spnav > .current-menu-ancestor > a::after {
		transform: scaleX(1);
	}

	.p-spMenu .c-spnav > li > a:focus-visible,
	.rv-mobile-menu__phone:focus-visible,
	.c-iconBtn.-menuBtn:focus-visible,
	.rv-mobile-menu__brand:focus-visible {
		outline: 3px solid #204c7a;
		outline-offset: 3px;
	}

	.c-iconBtn.-menuBtn {
		width: 48px;
		height: 48px;
		min-width: 48px;
		min-height: 48px;
		color: var(--rv-mobile-menu-ink);
	}

	#header .l-header__menuBtn {
		width: 48px;
		height: 48px;
		min-width: 48px;
		min-height: 48px;
	}

	.c-iconBtn.-menuBtn .c-iconBtn__icon {
		position: relative;
		display: block;
		flex: none;
		width: 32px;
		height: 20px;
		margin: 0;
		font-size: 0;
	}

	.c-iconBtn.-menuBtn .c-iconBtn__icon::before,
	.c-iconBtn.-menuBtn .c-iconBtn__icon::after {
		content: "";
		position: absolute;
		left: 0;
		width: 32px;
		height: 2px;
		border: 0;
		border-radius: 999px;
		background: currentColor;
		box-shadow: none;
		transform-origin: center;
		transition: transform .3s cubic-bezier(.22, 1, .36, 1);
	}

	.c-iconBtn.-menuBtn .c-iconBtn__icon::before {
		top: 4px;
		transform: translateY(0) rotate(0);
	}

	.c-iconBtn.-menuBtn .c-iconBtn__icon::after {
		top: 14px;
		transform: translateY(0) rotate(0);
	}

	html[data-spmenu="opened"] .c-iconBtn.-menuBtn .c-iconBtn__icon::before {
		transform: translateY(5px) rotate(45deg);
	}

	html[data-spmenu="opened"] .c-iconBtn.-menuBtn .c-iconBtn__icon::after {
		transform: translateY(-5px) rotate(-45deg);
	}

	/* JavaScript-disabled fallback: expose SWELL's existing global navigation
	   rather than leaving the five links behind an inactive toggle. */
	html:not(.rv-mobile-menu-js) #header {
		position: relative !important;
		transform: none !important;
		opacity: 1 !important;
		visibility: visible !important;
	}

	html:not(.rv-mobile-menu-js) #header .l-header__gnav {
		display: block !important;
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		background: rgb(238, 238, 238);
	}

	html:not(.rv-mobile-menu-js) #header .c-gnav {
		display: flex;
		flex-wrap: wrap;
		padding: 12px 20px;
	}

	html:not(.rv-mobile-menu-js) #header .c-gnav > li > a { min-height: 44px; }
	html:not(.rv-mobile-menu-js) #header .l-header__menuBtn { display: none; }
}

@media (max-width: 390px) {
	.p-spMenu__closeBtn .c-iconBtn.-menuBtn {
		width: 48px;
		min-width: 48px;
		padding: 0 8px;
		border-radius: 50%;
	}

	.rv-mobile-menu__close-label { display: none; }

	.p-spMenu__body {
		padding-right: 24px;
		padding-left: 24px;
	}

	.p-spMenu .c-spnav {
		column-gap: 24px;
		row-gap: 30px;
	}

	.rv-mobile-menu__title { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
	.c-iconBtn.-menuBtn .c-iconBtn__icon::before,
	.c-iconBtn.-menuBtn .c-iconBtn__icon::after,
	.p-spMenu,
	.p-spMenu__inner,
	.p-spMenu .c-spnav > li > a::after {
		transition: none;
	}
}


/* RetroVox compact footer */
#footer .l-footer__foot .l-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

#footer .l-footer__nav,
#footer .copyright {
	margin: 0;
}

#footer .l-footer__nav {
	text-align: left;
}

#footer .copyright {
	flex: 0 0 auto;
	text-align: right;
}

@media (max-width: 599px) {
	#footer .l-footer__foot .l-container {
		gap: 16px;
	}

	#footer .l-footer__nav,
	#footer .copyright {
		font-size: 12px;
	}
}


/* Remove the gap before the site footer. */
.l-content {
	margin-bottom: 0;
}
