/* Default theme — light refresh for Bootstrap 5 / IPT */

:root {
	--ipt-navy: #1e2a5a;
	--ipt-blue: #0675aa;
	--ipt-blue-dark: #055a84;
	--ipt-sky: #e8f2f9;
	--ipt-accent: #2f9e44;
	--ipt-accent-hover: #27863a;
	--ipt-text: #1f2933;
	--ipt-muted: #5f6b7a;
	--ipt-card: #ffffff;
	--ipt-radius: 12px;
	--ipt-shadow: 0 8px 24px rgba(15, 40, 70, 0.08);
	--ipt-max: 1100px;
}

html {
	height: 100%;
}

body {
	min-height: 100vh;
	margin: 0;
	display: flex;
	flex-direction: column;
	color: var(--ipt-text);
	font-size: 16px;
	line-height: 1.6;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	text-align: center;
	background:
		radial-gradient(1200px 400px at 50% -80px, rgba(6, 117, 170, 0.18), transparent 60%),
		linear-gradient(180deg, #d7e6f4 0%, #eef3f8 40%, #f5f7fa 100%);
}

a {
	color: var(--ipt-blue);
	text-decoration: none;
}
a:hover {
	color: var(--ipt-blue-dark);
	text-decoration: underline;
}

/* Sticky footer: wrap grows, footer stays at bottom of viewport when content is short */
.wrap {
	position: relative;
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-width: 320px;
}

.main {
	flex: 1 0 auto;
	width: 100%;
	min-width: 320px;
	padding-bottom: 2rem;
}

/* Email tab — top-right of the page content column */
.ipt-email-fab {
	position: fixed;
	top: 0;
	/* Align with right edge of content (max-width column) */
	right: max(0.75rem, calc((100vw - var(--ipt-max)) / 2));
	left: auto;
	z-index: 1030;
	pointer-events: none;
	width: auto;
	display: block;
	text-align: right;
}

.ipt-email-btn {
	pointer-events: auto;
	margin: 0;
	border: 0;
	border-radius: 0 0 12px 12px;
	padding: 0.55rem 1rem;
	background: var(--ipt-accent);
	color: #fff !important;
	font-weight: 600;
	font-size: 0.95rem;
	box-shadow: 0 6px 16px rgba(47, 158, 68, 0.35);
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
	text-decoration: none !important;
}

.ipt-email-btn:hover,
.ipt-email-btn:focus {
	background: var(--ipt-accent-hover);
	color: #fff !important;
	transform: translateY(1px);
	box-shadow: 0 4px 12px rgba(47, 158, 68, 0.3);
}

.ipt-email-btn .bi {
	font-size: 1.05rem;
}
/* ----- Page hero ----- */
.page_header_bar {
	width: 100%;
	background: linear-gradient(135deg, var(--ipt-blue) 0%, #0a5f8f 55%, #134e75 100%);
	box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.08);
	padding: 3.25rem 0 2.25rem;
	margin-bottom: 0;
}

.page_header_inner {
	padding: 0.5rem 1.25rem 0.25rem;
	min-width: 320px;
	max-width: var(--ipt-max);
	width: 100%;
	margin: 0 auto;
	color: #fff;
	text-align: left;
}

.page-title,
.so {
	font-family: inherit;
	color: #fff !important;
	font-weight: 700;
	font-size: clamp(1.6rem, 2.5vw, 2.2rem);
	margin: 0 0 0.35rem;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
	letter-spacing: -0.02em;
}

.page-lead {
	margin: 0;
	color: rgba(255, 255, 255, 0.9);
	font-size: 1.05rem;
	max-width: 40rem;
}

/* ----- Content card ----- */
.page_body_wrap {
	padding: 1.5rem 1rem 2.5rem;
}

.page_inner,
.content-card {
	min-width: 280px;
	max-width: var(--ipt-max);
	width: 100%;
	margin: 0 auto;
	text-align: left;
	background: var(--ipt-card);
	border-radius: var(--ipt-radius);
	box-shadow: var(--ipt-shadow);
	border: 1px solid rgba(15, 40, 70, 0.06);
	padding: 1.5rem 1.75rem;
	color: var(--ipt-text);
	font-size: 1.05rem;
}

.page_inner p:last-child {
	margin-bottom: 0;
}

.page_inner img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}

/* Landing icons: one horizontal row, not a grid and not stacked */
.landing-body {
	padding: 2rem 1rem 2.5rem;
	width: 100%;
	text-align: center;
}

.icon-row,
.landing-body .row {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 1.5rem;
	width: 100%;
	margin: 0;
	padding: 0;
	text-align: center;
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
}

.icon-row a,
.landing-body .row > a {
	display: inline-flex;
	flex: 0 0 auto;
	text-decoration: none;
}

.icon-row img,
.landing-body .row img,
.col1 img {
	width: 182px;
	height: 182px;
	max-width: none;
	border-radius: 0;
	display: block;
}

.col1 {
	display: inline-flex;
	min-width: 0;
	max-width: none;
	padding: 0;
	margin: 0;
	text-align: center;
	vertical-align: middle;
}

/* ----- Footer (sticky to bottom via body flex) ----- */
.footer {
	flex-shrink: 0;
	width: 100%;
	min-width: 320px;
	padding: 1.75rem 0;
	margin-top: auto;
	background: var(--ipt-navy);
	color: #d7dde8;
	box-shadow: inset 0 3px 0 rgba(8, 90, 128, 0.85);
}

.footer_inner {
	padding: 0 1.25rem;
	min-width: 320px;
	max-width: var(--ipt-max);
	width: 100%;
	margin: 0 auto;
	text-align: left;
}

.footer-brand {
	font-size: 0.98rem;
	margin-bottom: 0.35rem;
}

.footer-brand strong {
	color: #fff;
	margin-right: 0.35rem;
}

.footer-copy {
	opacity: 0.85;
	margin-right: 0.35rem;
}

.footer-meta {
	margin: 0;
	font-size: 0.88rem;
	opacity: 0.85;
}

.footer a {
	color: #c5e7ff;
	text-decoration: none;
}
.footer a:hover {
	color: #fff;
	text-decoration: underline;
}

/* ----- Modal polish ----- */
.modal-content {
	border: 0;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
}

.modal-header {
	border-bottom: 0;
}

.modal-footer {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.modal-body label {
	font-weight: 600;
	font-size: 0.92rem;
	margin-top: 0.65rem;
	display: block;
}

.modal-body .form-control {
	margin-bottom: 0.35rem;
}

/* Keep BS3-ish light secondary buttons readable when used in modal footers */
.modal-footer .btn-secondary {
	background: #fff;
	border-color: #cfd6dd;
	color: #333;
}
.modal-footer .btn-primary {
	background: #0d6efd;
	border-color: #0d6efd;
}

/* ----- Navbar overrides (if theme navbar used) ----- */
.navbar_extra.navbar,
.navbar.navbar-dark.navbar_extra {
	background-color: var(--ipt-navy);
	border-bottom: 1px solid #3d4a7a;
}
.navbar_extra .navbar-toggler {
	/* Collapsed hamburger sits on the right */
	margin-left: auto;
	border-color: rgba(255, 255, 255, 0.35);
}
.navbar_extra .navbar-nav .nav-link {
	color: #ecf0f1;
}
.navbar_extra .navbar-nav .nav-link:hover,
.navbar_extra .navbar-nav .nav-link:focus {
	color: #c4e8ff;
}

/* ----- Utility / legacy classes still referenced ----- */
.co7 { color: #fff; }
.co9 { color: #333; }
.hlink { color: #c5e8ff; }
.theme_font { font-family: inherit; }

.ph_div {
	text-align: center;
}

/* Captions / carousel leftovers */
.carousel-caption {
	background-color: rgba(0, 0, 0, 0.55);
	border-radius: 8px;
}

@media (max-width: 767px) {
	.ipt-email-fab {
		right: 0.5rem;
	}
	.ipt-email-btn {
		padding: 0.45rem 0.75rem;
		font-size: 0.85rem;
	}
	.page_header_bar {
		padding-top: 3rem;
		padding-bottom: 1.5rem;
	}
	.page_inner,
	.content-card {
		padding: 1.15rem 1.1rem;
		border-radius: 10px;
	}
	.ipt-email-btn-label {
		/* keep label; just slightly smaller */
		font-size: 0.9rem;
	}
}
