/* IPS header & footer — Elementor-free rebuild of header #3348 / footer #3337 */

/* Sticky header needs ancestors that don't clip (theme sets overflow hidden). */
html:has(> body.ips-hf), body.ips-hf { overflow-x: clip !important; overflow-y: visible !important; }

.ipsh, .ipsf { font-family: "Inter", sans-serif; -webkit-font-smoothing: antialiased; }
.ipsh *, .ipsh *::before, .ipsh *::after,
.ipsf *, .ipsf *::before, .ipsf *::after { box-sizing: border-box; }
.ipsh p, .ipsf p { margin: 0; }
.ipsh ul, .ipsf ul { list-style: none; margin: 0; padding: 0; }
.ipsh a, .ipsf a { text-decoration: none; }
.ipsh img, .ipsf img { display: block; max-width: 100%; height: auto; border: 0; }

/* ---------- Header ---------- */
.ipsh { position: relative; z-index: 99; }
.ipsh-bar { background: #06162B; padding: 9px 20px; }
.ipsh-bar__text { color: #E8F1FF; font-size: 16px; font-weight: 800; line-height: 26px; text-align: center; }

.ipsh-main {
	position: relative; background: #fff; padding: 10px 25px;
	border-top: 4px solid transparent;
	border-image: linear-gradient(90deg, #2a92f9 0%, #5bea8c 100%) 1;
}
.ipsh-inner { max-width: 1400px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; }
.ipsh-logo { display: block; width: 137px; flex: 0 0 auto; }
.ipsh-logo img { width: 100%; }

.ipsh-nav { width: 50%; margin-left: 80px; padding-top: 5px; }
.ipsh-menu { display: flex; justify-content: center; align-items: center; }
.ipsh-menu > li { position: relative; margin: 0 12.5px; }
.ipsh-menu > li > a {
	display: flex; align-items: center; padding: 0 3px;
	color: #07182F; font-size: 16px; font-weight: 800; line-height: 25px; white-space: nowrap;
	transition: color .2s;
}
.ipsh-menu > li > a:hover, .ipsh-menu > li > a:focus-visible,
.ipsh-menu > li:hover > a, .ipsh-menu > li:focus-within > a,
.ipsh-menu > li.current-menu-item > a, .ipsh-menu > li.current-menu-ancestor > a { color: #2A92F9; }

/* Desktop dropdown (pure CSS, works before any script loads) */
.ipsh-menu .sub-menu {
	position: absolute; top: 100%; left: 0; z-index: 10; min-width: 250px;
	margin-top: 15px; padding: 15px; background: #fff;
	border: 1px solid #E3EAF3; border-radius: 14px;
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .15s, transform .15s, visibility 0s .15s;
}
.ipsh-menu .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -20px; height: 20px; } /* hover bridge */
.ipsh-menu > li:hover > .sub-menu, .ipsh-menu > li:focus-within > .sub-menu {
	opacity: 1; visibility: visible; transform: none; transition: opacity .15s, transform .15s;
}
.ipsh-menu .sub-menu a {
	display: block; padding: 15px; border-radius: 14px;
	color: #33373D; font-size: 15px; font-weight: 800; line-height: 20px; white-space: nowrap;
}
.ipsh-menu .sub-menu a:hover, .ipsh-menu .sub-menu a:focus-visible,
.ipsh-menu .sub-menu .current-menu-item > a { background: #F5F8FC; color: #2A92F9; }

.ipsh-cta-wrap { width: 26%; display: flex; justify-content: flex-end; align-items: center; }
.ipsh-cta, .ipsf-cta {
	display: inline-block; padding: 15px 25px; border-radius: 30px;
	background: linear-gradient(90deg, #2a92f9, #5bea8c);
	box-shadow: 0 16px 35px rgba(42, 146, 249, .24);
	font-size: 15px; font-weight: 800; line-height: 25px; white-space: nowrap;
	transition: transform .3s;
}
.ipsh-cta { color: #06162B; }
.ipsh-cta:hover, .ipsh-cta:focus { color: #06162B; transform: translateY(-3px); }

/* Mobile menu (native <details>, so it opens even before scripts load) */
.ipsh-mnav { display: none; }
.ipsh-toggle {
	list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; border-radius: 3px; background: #2A92F9; color: #fff;
}
.ipsh-toggle::-webkit-details-marker { display: none; }
.ipsh-toggle::marker { content: ""; }
.ipsh-toggle svg { width: 25px; height: 25px; fill: #fff; }
.ipsh-toggle__close, .ipsh-mnav[open] .ipsh-toggle__open { display: none; }
.ipsh-mnav[open] .ipsh-toggle__close { display: block; }
.ipsh-toggle:focus-visible { outline: 2px solid #07182F; outline-offset: 2px; }

.ipsh-drop {
	position: absolute; left: 0; right: 0; z-index: 20;
	top: calc(83px + var(--ipsh-row, 56px) / 2);
	background: #fff; border: 1px solid #E3EAF3; border-radius: 14px; overflow: hidden;
}
.ipsh-dmenu a {
	display: block; padding: 13px 20px;
	color: #33373D; font-size: 15px; font-weight: 800; line-height: 25px;
}
.ipsh-dmenu .sub-menu a { padding-left: 40px; }
.ipsh-dmenu a:hover, .ipsh-dmenu a:focus-visible,
.ipsh-dmenu .current-menu-item > a { background: #F5F8FC; color: #2A92F9; }

/* Desktop: the white bar stays on screen while scrolling (announcement bar scrolls away). */
@media (min-width: 1025px) {
	.ipsh { position: sticky; top: -44px; }
	body.admin-bar .ipsh { top: -12px; }
}
@media (max-width: 1200px) and (min-width: 1025px) {
	.ipsh-menu > li > a { padding: 13px 4px; }
}
@media (max-width: 1024px) {
	.ipsh-inner { flex-wrap: wrap; row-gap: 30px; }
	.ipsh-nav { display: none; }
	.ipsh-mnav { display: block; }
	.ipsh-cta-wrap { width: 100%; justify-content: center; }
}
@media (max-width: 767px) {
	.ipsh-main { --ipsh-row: 62px; }
	.ipsh-logo { width: 150px; }
}

/* ---------- Footer ---------- */
.ipsf { background: #07182F; padding: 60px 25px; }
.ipsf-inner { max-width: 1400px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px; }
.ipsf-top { display: flex; justify-content: space-between; gap: 20px; }
.ipsf-brand { width: 30%; }
.ipsf-logo { display: block; width: 220px; margin-bottom: 15px; padding: 10px; background: #fff; border-radius: 14px; }
.ipsf-logo img { width: 100%; }
.ipsf-tagline { color: #DFEAF8; font-size: 16px; line-height: 26px; }
.ipsf .ipsf-tagline { margin-bottom: .9rem; }
.ipsf-cta { color: #fff; }
.ipsf-cta:hover, .ipsf-cta:focus { color: #fff; transform: translateY(-3px); }

.ipsf-cols { width: 68%; display: flex; }
.ipsf-col { flex: 1 1 0; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ipsf-title { color: #fff; font-size: 17px; font-weight: 900; line-height: 19px; letter-spacing: -0.51px; }
.ipsf-list li + li { margin-top: 8px; }
.ipsf-list a, .ipsf-list span { color: #DCE8F7; font-size: 16px; line-height: 26px; transition: color .3s; }
.ipsf-list a:hover, .ipsf-list a:focus-visible { color: #D2D2D2; }
.ipsf-col--contact .ipsf-list a:hover { color: #fff; }
.ipsf-bbb { display: block; width: 280px; margin: 20px 0 6px; }

.ipsf-bottom {
	display: flex; justify-content: space-between; align-items: flex-end; gap: 20px;
	margin-top: 34px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .12);
}
.ipsf-copy { color: #A9B8CA; font-size: 14px; line-height: 24px; }
.ipsf-legal { display: flex; flex-wrap: wrap; }
.ipsf-legal li + li::before { content: "·"; margin: 0 8px; color: #A9B8CA; font-size: 14px; line-height: 24px; }
.ipsf-legal a { color: #A9B8CA; font-size: 14px; line-height: 24px; transition: color .3s; }
.ipsf-legal a:hover, .ipsf-legal a:focus-visible { color: #fff; }

@media (max-width: 1024px) {
	.ipsf-top { flex-direction: column; gap: 40px; }
	.ipsf-brand, .ipsf-cols { width: 100%; }
	.ipsf-cols { flex-wrap: wrap; gap: 30px; }
	.ipsf-col { flex: 0 0 47%; max-width: 47%; }
	.ipsf-col--contact { flex-basis: 100%; max-width: 100%; }
	.ipsf-bottom { flex-direction: column; align-items: center; }
}
@media (max-width: 767px) {
	.ipsf-logo { width: 300px; }
	.ipsf-col { flex-basis: 100%; max-width: 100%; }
	.ipsf-cta { font-size: 14px; padding: 10px 25px; }
}

/* Compact footer for paid landing pages */
.ipsf--min { padding: 40px 25px 32px; }
.ipsf-min { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.ipsf-min__talk { color: #DCE8F7; font-size: 16px; line-height: 26px; }
.ipsf-min__talk a { color: #fff; font-weight: 800; }
.ipsf-min__talk a:hover { color: #5DEF86; }
.ipsf--min .ipsf-bbb { margin: 0; width: 220px; }
.ipsf--min .ipsf-bottom { margin-top: 24px; }
@media (max-width: 767px) {
	.ipsf-min { flex-direction: column; align-items: center; text-align: center; }
}

/* Anchor jumps to a form land below sticky bars (used by /launch/ buttons). */
#form { scroll-margin-top: 60px; }
@media (max-width: 767px) { #form { scroll-margin-top: 90px; } }
.ips-bar-away { opacity: 0 !important; transform: translateY(120%) !important; pointer-events: none !important; transition: opacity .2s, transform .2s !important; }
