/* Shared site styles — fonts, header nav, contact form */
/* --- fonts --- */
/* Source Sans Pro — self-hosted (SIL OFL 1.1). See ../fonts/source-sans-pro/LICENSE.txt */

/* latin-ext */
@font-face {
	font-family: "Source Sans Pro";
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url("../fonts/source-sans-pro/source-sans-pro-300-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: "Source Sans Pro";
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url("../fonts/source-sans-pro/source-sans-pro-300-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
	font-family: "Source Sans Pro";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/source-sans-pro/source-sans-pro-400-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
	font-family: "Source Sans Pro";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/source-sans-pro/source-sans-pro-400-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- header nav + footer + product hero --- */
/* Shared top product navigation (AutoMounter / PixelPick / OtoMeter) */

.site-header {
	width: 100%;
}

.header_nav {
	display: flex;
	align-items: center;
	align-self: start;
	box-sizing: border-box;
	width: 100%;
	position: relative;
	z-index: 200;
	padding: 20px 20px 0;
	gap: 10px;
	margin-top: 0;
	font-size: 14pt;
	font-weight: 300;
	line-height: 1.65;
}

.header_nav > a:first-child {
	margin-right: auto;
	border-bottom: none;
}

.header_nav .brand-logo,
.header_nav > a:first-child img {
	display: block;
	width: 200px;
	height: auto;
}

.header_nav .brand-logo.compact {
	width: 160px;
}

.header_nav a {
	color: #ffffff;
	text-decoration: none;
	line-height: 1.65;
	border-bottom: none;
	transition: color 0.2s ease, border-bottom 0.2s ease;
}

.header_nav a:hover,
.header_nav a.active,
.header_nav a[aria-current="page"] {
	border-bottom: 1px solid white;
}

.header_nav > a:first-child:hover {
	border-bottom: none;
}

.header_nav a.active,
.header_nav a[aria-current="page"] {
	font-weight: 400;
}

.header_nav__list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 10px;
}

.header_nav__list > li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-left: 0;
}

.header_nav__list > li:not(:first-child)::before {
	content: "/";
	color: #cccccc;
}

/* Burger enhance (DOM built by site.js) */

.header_nav__panel {
	display: contents;
}

.header_nav__toggle {
	display: none;
	position: relative;
	margin-left: auto;
	align-items: center;
	justify-content: center;
	width: 1.65em;
	height: 1.65em;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: #ffffff;
	cursor: pointer;
}

.header_nav__toggle:after {
	content: "";
	position: absolute;
	inset: -12px;
}

.header_nav__burger,
.header_nav__burger:before,
.header_nav__burger:after {
	display: block;
	width: 22px;
	height: 2px;
	background: currentColor;
}

.header_nav__burger {
	position: relative;
}

.header_nav__burger:before,
.header_nav__burger:after {
	content: "";
	position: absolute;
	left: 0;
}

.header_nav__burger:before { top: -7px; }
.header_nav__burger:after { top: 7px; }

.header_nav.is-open .header_nav__burger { background: transparent; }
.header_nav.is-open .header_nav__burger:before { top: 0; transform: rotate(45deg); }
.header_nav.is-open .header_nav__burger:after { top: 0; transform: rotate(-45deg); }

/* Product hero: logo + app name (AutoMounter reference, fixed size) */

#header.alt,
.content .header {
	font-size: 17pt;
	padding: 2em 0;
	text-align: center;
}

#header.alt .logo {
	display: block;
	margin: 0;
}

#header.alt .logo img,
.content .header img {
	display: block;
	margin: 0 auto;
	width: 300px;
	max-width: 300px;
	height: auto;
}

#header.alt h1,
.content .header h1,
.content .header h1.app {
	margin: 0 0 0.25em 0;
	padding-top: 0;
	font-family: "Helvetica Neue", "Source Sans Pro";
	font-size: 60px;
	font-weight: 100;
	letter-spacing: normal;
	color: #ffffff;
	text-align: center;
	text-shadow: none;
	background: none;
	-webkit-text-fill-color: #ffffff;
}

#header.alt p,
.content .header p {
	margin-bottom: 0;
}

/* Product hero load fade (body.is-loading removed by site.js) */

body.is-loading *,
body.is-loading *:before,
body.is-loading *:after {
	animation: none !important;
	transition: none !important;
}

#header.alt > *,
.content .header > * {
	transition: opacity 3s ease;
	transition-delay: 0.5s;
	opacity: 1;
}

#header.alt .logo,
.content .header .logo,
.content .header > div:first-child,
.content .header > img:first-child {
	transition: opacity 1.25s ease, transform 0.5s ease;
	transition-delay: 0s;
}

body.is-loading #header.alt > *,
body.is-loading .content .header > * {
	opacity: 0;
}

body.is-loading #header.alt .logo,
body.is-loading .content .header .logo,
body.is-loading .content .header > div:first-child,
body.is-loading .content .header > img:first-child {
	transform: scale(0.8) rotate(-30deg);
}

@media (prefers-reduced-motion: reduce) {

	#header.alt > *,
	.content .header > *,
	#header.alt .logo,
	.content .header .logo,
	.content .header > div:first-child,
	.content .header > img:first-child {
		transition: none;
		transition-delay: 0s;
		transform: none;
	}

}

@media screen and (max-width: 736px) {

	.header_nav {
		font-size: 12pt;
		gap: 8px;
	}

	.header_nav:not(.header_nav--always-burger)[data-site-nav] > a:first-child {
		margin-right: 0;
	}

	.header_nav:not(.header_nav--always-burger) .header_nav__toggle {
		display: inline-flex;
	}

	.header_nav:not(.header_nav--always-burger) .header_nav__panel {
		display: flex;
		position: absolute;
		top: 70px;
		right: 30px;
		z-index: 200;
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding: 16px 20px;
		border-radius: 10px;
		border: 1px solid rgba(255, 255, 255, 0.18);
		background: rgba(0, 0, 0, 0.55);
		backdrop-filter: blur(16px);
		-webkit-backdrop-filter: blur(16px);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(-0.5rem);
		transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
	}

	.header_nav:not(.header_nav--always-burger).is-open .header_nav__panel {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
	}

	.header_nav:not(.header_nav--always-burger) .header_nav__list {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.header_nav:not(.header_nav--always-burger) .header_nav__list > li:not(:first-child)::before {
		display: none;
	}

	.header_nav:not(.header_nav--always-burger) .header_nav__panel a:hover,
	.header_nav:not(.header_nav--always-burger) .header_nav__panel a.active,
	.header_nav:not(.header_nav--always-burger) .header_nav__panel a[aria-current="page"] {
		border-bottom: none;
		text-decoration: underline;
		text-underline-offset: 3px;
	}

}

/* Always-burger site nav (home, privacy, contact, etc.) */

.header_nav.header_nav--always-burger[data-site-nav] > a:first-child {
	margin-right: 0;
}

.header_nav.header_nav--always-burger .header_nav__toggle {
	display: inline-flex;
}

.header_nav.header_nav--always-burger .header_nav__panel {
	display: flex;
	position: absolute;
	top: 70px;
	right: 30px;
	z-index: 200;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	padding: 16px 20px;
	border-radius: 10px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	background: rgba(0, 0, 0, 0.55);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-0.5rem);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.header_nav.header_nav--always-burger.is-open .header_nav__panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
}

.header_nav.header_nav--always-burger .header_nav__list {
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.header_nav.header_nav--always-burger .header_nav__list > li:not(:first-child)::before {
	display: none;
}

.header_nav.header_nav--always-burger .header_nav__panel a:hover,
.header_nav.header_nav--always-burger .header_nav__panel a.active,
.header_nav.header_nav--always-burger .header_nav__panel a[aria-current="page"] {
	border-bottom: none;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Shared site footer (copyright + privacy) */

.site-footer-bar {
	position: absolute;
	bottom: 4px;
	left: 0;
	width: 100%;
}

.site-footer {
	display: block;
	text-align: center;
	margin: 0;
	font-size: 12px;
	line-height: 1.4;
	font-weight: 300;
}

.site-footer a {
	font-size: 12px;
	line-height: 1.4;
	color: inherit;
	text-decoration: none;
	border-bottom: 1px dotted currentColor;
}

/* --- contact form --- */
/* Frosted form controls (used by shared contact forms) */
input, textarea {
  background-color: rgba(255, 255, 255, 0.2);
  padding: 10px 20px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 6px;
  font-size: 1em;
  color: rgba(255,255,255,0.85);
}

/* Shared contact form layout */

.contact-wrap {
	width: 70%;
	margin: 0 auto;
	position: relative;
}

.contact-panel {
	box-sizing: border-box;
	width: 70%;
	margin: 0 auto;
	padding: 40px;
	background-color: rgba(0, 0, 0, 0.5);
	box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border-radius: 20px;
	border: 1px solid rgba(255, 255, 255, 0.1);
}

.contact-panel > h2 {
	margin-bottom: 50px;
}

#contact.contact-section {
	margin: 0;
}

#contactform {
	position: relative;
	text-align: left;
}

#contactform .contact-field {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	margin-bottom: 20px;
}

#contactform .contact-field label {
	flex: 0 0 auto;
	min-width: 5.5em;
	padding-top: 10px;
	line-height: 1.2;
}

#contactform .contact-field input,
#contactform .contact-field textarea {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
	margin: 0;
	float: none;
	display: block;
	box-sizing: border-box;
	font-family: inherit;
}

#contactform .contact-actions {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	gap: 12px;
	min-height: 50px;
	flex-wrap: wrap;
}

#contactform #contactformStatus {
	display: none;
	align-items: center;
	box-sizing: border-box;
	padding: 0.45em 1em;
	border-radius: 999px;
	border: 1px solid transparent;
	font-size: 0.9em;
	font-weight: 400;
	line-height: 1.35;
	text-align: left;
	background: rgba(255, 255, 255, 0.1);
	opacity: 0;
	transition: opacity 0.25s ease;
}

#contactform #contactformStatus.is-visible {
	display: inline-flex;
	opacity: 1;
}

#contactform #contactformStatus.is-success {
	color: #6bd269;
	background: rgba(107, 210, 105, 0.16);
	border-color: rgba(107, 210, 105, 0.4);
}

#contactform #contactformStatus.is-error {
	color: #ff8d54;
	background: rgba(255, 141, 84, 0.16);
	border-color: rgba(255, 141, 84, 0.4);
}

/* Main /contact/ page: vertically center the form */

.content.contact-page {
	display: flex;
	flex-direction: column;
}

.content.contact-page .grid {
	flex: 1 1 auto;
	align-content: center;
	min-height: 0;
	padding-bottom: 2.5rem;
}

.content.contact-page .section {
	margin: 0;
}

@media screen and (max-width: 736px) {
	.contact-wrap,
	.contact-panel {
		box-sizing: border-box;
		width: calc(100% - 40px);
		margin-left: 20px;
		margin-right: 20px;
	}

	#contactform {
		box-sizing: border-box;
		width: 100%;
	}

	#contactform .contact-field {
		display: block;
		margin-bottom: 16px;
	}

	#contactform .contact-field label {
		display: block;
		min-width: 0;
		margin-bottom: 8px;
		padding-top: 0;
		text-align: left;
	}

	#contactform .contact-field input,
	#contactform .contact-field textarea {
		width: 100%;
	}

	#contactform .contact-actions {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	#contactform #contactformSubmit {
		float: none;
		margin: 0;
	}
}
