/* ==========================================================================
   Site overrides (loaded last on every page, versioned by file mtime).
   Colors come from the theme's existing "red" skin; no new brand colors.
   ========================================================================== */

:root {
	--xw-base: #e86343;        /* theme .pi-text-base / .pi-btn-base */
	--xw-base-hover: #dd5437;  /* theme .pi-btn-base border */
	--xw-dark: #2e343a;        /* theme dark section */
	--xw-sticky-offset: 100px; /* height of the sticky header row */
	--xw-gap: 30px;
}

/* --------------------------------------------------------------------------
   Sticky header (CSS only; the theme's JS fixed header is disabled for
   .site-sticky-header in scripts/pi.global.js)
   -------------------------------------------------------------------------- */
html {
	scroll-padding-top: var(--xw-sticky-offset);
}
/* overflow:hidden on the page wrapper would stop position:sticky from working */
#pi-all {
	overflow: visible;
	overflow-x: clip;
}
.site-sticky-header {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 1000;
}
.site-header-top {
	z-index: 1001; /* keep its dropdown-free row above the sticky bar edge */
}
.site-sticky-header .pi-row-block-logo img.site-logo {
	display: block;
	width: auto;
	height: 64px;
	max-height: none;
	margin: 16px 0;
}
/* the open mobile menu can be taller than the screen */
.site-sticky-header .pi-section-menu-mobile-w {
	max-height: calc(100vh - var(--xw-sticky-offset));
	overflow-y: auto;
}
/* main menu: no underline on hover (active item has its own border) */
.pi-simple-menu a:hover,
.pi-simple-menu a:focus,
.pi-menu-mobile a:hover,
.pi-menu-mobile a:focus {
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   Social icons: X logo (inline SVG) sized like the font icons
   -------------------------------------------------------------------------- */
.xw-social .xw-icon-x {
	display: inline-block;
	width: 0.95em;
	height: 0.95em;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.xw-social a.pi-social-icon-x {
	position: relative;
}
.pi-social-icons.pi-colored-bg a:hover.pi-social-icon-x,
.pi-social-icons.pi-active-bg a.pi-social-icon-x {
	background: #000 !important;
}
.pi-social-icons.pi-colored a:hover.pi-social-icon-x,
.pi-social-icons-simple.pi-colored a:hover.pi-social-icon-x {
	color: #000 !important;
}

/* --------------------------------------------------------------------------
   Headings retagged for a valid outline keep their previous look.
   Copied from the theme's typo.css heading rules.
   -------------------------------------------------------------------------- */
.tag-h1, .tag-h2, .tag-h3, .tag-h4, .tag-h5, .tag-h6 {
	padding: 0;
	margin: 0 0 15px;
	font-family: 'Open Sans', Arial, sans-serif;
	line-height: 100%;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: inherit;
}
.tag-h1 { font-size: 50px; line-height: 1.2em; margin-bottom: 15px; font-weight: 300; letter-spacing: -1px; }
.tag-h2 { font-size: 30px; line-height: 1.3em; margin-bottom: 10px; letter-spacing: 0; }
.tag-h3 { font-size: 26px; line-height: 1.2em; margin-bottom: 10px; }
.tag-h4 { font-size: 20px; line-height: 1.3em; margin-bottom: 10px; letter-spacing: 0; }
.tag-h5 { font-size: 16px; line-height: 1.5em; margin-bottom: 10px; letter-spacing: 0; }
.tag-h6 { font-size: 14px; line-height: 1.6em; margin-bottom: 10px; letter-spacing: 0; font-weight: 600; }
/* a paragraph promoted to <h1> (careers) keeps paragraph metrics */
.tag-p {
	margin: 0 0 20px;
	font-family: inherit;
	letter-spacing: 0;
}
/* theme helper classes must still win over the base reset above */
.tag-h1.pi-weight-300, .tag-h2.pi-weight-300 { font-weight: 300; }
.pi-weight-600.tag-h1, .pi-weight-600.tag-h2, .pi-weight-600.tag-h3, .pi-weight-600.tag-h4, .pi-weight-600.tag-h5, .pi-weight-600.tag-h6 { font-weight: 600; }
.pi-weight-700.tag-h1, .pi-weight-700.tag-h2, .pi-weight-700.tag-h3, .pi-weight-700.tag-h4, .pi-weight-700.tag-h5, .pi-weight-700.tag-h6, .pi-weight-700.tag-p { font-weight: 700; }
.pi-uppercase.tag-h1, .pi-uppercase.tag-h2, .pi-uppercase.tag-h3, .pi-uppercase.tag-h4, .pi-uppercase.tag-h5, .pi-uppercase.tag-h6 { text-transform: uppercase; }
.pi-letter-spacing.tag-h3, .pi-letter-spacing.tag-h4, .pi-letter-spacing.tag-h5, .pi-letter-spacing.tag-h6 { letter-spacing: 1px; }

/* --------------------------------------------------------------------------
   Phone numbers moved out of headings
   -------------------------------------------------------------------------- */
.heading-with-phone {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 0.6em;
	margin-bottom: 10px;
}
.heading-with-phone > h2,
.heading-with-phone > h3,
.heading-with-phone > h4 {
	margin-bottom: 0;
}
.heading-with-phone .heading-phone,
.heading-with-phone > .tag-h3 {
	margin: 0;
	white-space: nowrap;
}
.hero-phone {
	margin-top: -4px;
}
.hero-phone a {
	color: inherit;
}

/* --------------------------------------------------------------------------
   Images never overflow narrow screens
   -------------------------------------------------------------------------- */
#page img,
.tp-banner-container img {
	max-width: 100%;
	height: auto;
}
.tp-banner-container img {
	display: block;
	width: 100%;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.site-footer-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 var(--xw-gap);
	margin: 0;
}
.site-footer-row::before,
.site-footer-row::after,
.site-footer-row > .pi-clearfix {
	content: none;
	display: none;
}
.site-footer-row > [class*="pi-col-"] {
	float: none;
	width: auto;
	min-width: 0;
	padding-left: 0;
	padding-right: 0;
}
@media (min-width: 480px) {
	.site-footer-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
	.site-footer-row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.site-footer-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 12px;
}
.site-footer-logo {
	display: block;
	max-width: 240px;
	margin-top: 6px;
}
.site-footer-logo img {
	display: block;
	width: 100%;
	height: auto;
}
.site-footer-brand p {
	margin: 0;
}
.site-footer .xw-social {
	display: inline-flex;
	justify-content: center;
}

/* bottom bar: copyright + links separated by CSS pipes that never start a line */
.site-subfooter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px var(--xw-gap);
	padding-top: 18px;
	padding-bottom: 18px;
	font-size: 13px;
	line-height: 1.6;
}
.site-subfooter::before,
.site-subfooter::after {
	content: none;
}
.site-copyright {
	margin: 0;
}
.site-subfooter-links {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0 0 0 -24px;
	padding: 0;
	-webkit-clip-path: inset(0 0 0 24px);
	clip-path: inset(0 0 0 24px);
}
.site-subfooter-links li {
	display: flex;
	margin: 0;
	padding: 0;
}
.site-subfooter-links li::before {
	content: "|";
	flex: 0 0 24px;
	width: 24px;
	text-align: center;
	opacity: 0.5;
}
.site-subfooter-links a {
	white-space: nowrap;
}
/* left-aligned on all sizes: the clipped pipe strip only works at the left edge */

/* --------------------------------------------------------------------------
   Terms of Service
   -------------------------------------------------------------------------- */
.tos-content h2 {
	margin-top: 30px;
}
.tos-content h2:first-child {
	margin-top: 0;
}
