/* DuPartner: tokens, base, header, footer. Loaded on every page. */
:root {
	--dp-navy: #10213d;
	--dp-blue: #3563e9;
	--dp-blue-dark: #2a52c9;
	--dp-teal: #18b8a4;
	--dp-teal-dark: #0b6f63; /* teal for text on light backgrounds (6:1 on white) */
	--dp-bg: #ffffff;
	--dp-bg-soft: #f4f6fa;
	--dp-tint: #eaf0fc;
	--dp-line: #dde3ee;
	--dp-text: #10213d;
	--dp-muted: #4a5b78;
	--dp-on-dark-muted: #c5d0e6;
	--dp-r-sm: 10px;
	--dp-r-md: 16px;
	--dp-r-lg: 24px;
	--dp-shadow-sm: 0 1px 2px rgba(16, 33, 61, 0.06), 0 2px 8px rgba(16, 33, 61, 0.05);
	--dp-shadow-md: 0 2px 4px rgba(16, 33, 61, 0.05), 0 12px 32px rgba(16, 33, 61, 0.1);
	--dp-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--dp-wrap: 1200px;
	--dp-gutter: clamp(1rem, 4vw, 2rem);
}

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--dp-bg);
	color: var(--dp-text);
	font-family: var(--dp-font);
	font-size: 1rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; height: auto; }
img { display: block; }

h1, h2, h3, h4 {
	margin: 0 0 0.5em;
	color: var(--dp-navy);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.02em;
}
h1 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.25rem); }
h2 { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.35rem); }
h3 { font-size: 1.25rem; letter-spacing: -0.01em; }
p { margin: 0 0 1em; }

a { color: var(--dp-blue-dark); text-underline-offset: 0.18em; }
a:hover { color: var(--dp-navy); }

/* Visible keyboard focus everywhere. */
:focus-visible {
	outline: 3px solid var(--dp-blue);
	outline-offset: 3px;
	border-radius: 4px;
}
.dp-footer :focus-visible,
.dp-section--navy :focus-visible { outline-color: var(--dp-teal); }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute; width: 1px; white-space: nowrap; word-wrap: normal;
}
.screen-reader-text:focus {
	background: #fff; clip: auto; clip-path: none; color: var(--dp-navy);
	display: block; height: auto; width: auto; left: 8px; top: 8px; padding: 0.75rem 1rem;
	z-index: 100000; font-weight: 700; box-shadow: var(--dp-shadow-md); border-radius: var(--dp-r-sm);
}

.dp-container { width: 100%; max-width: calc(var(--dp-wrap) + 2 * var(--dp-gutter)); margin-inline: auto; padding-inline: var(--dp-gutter); }

/* Buttons */
.dp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
	min-height: 44px; padding: 0.65rem 1.4rem;
	border: 2px solid transparent; border-radius: 999px;
	font: inherit; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}
.dp-btn--primary { background: var(--dp-blue); color: #fff; }
.dp-btn--primary:hover { background: var(--dp-blue-dark); color: #fff; }
.dp-btn--ghost { background: transparent; color: var(--dp-navy); border-color: var(--dp-line); }
.dp-btn--ghost:hover { border-color: var(--dp-navy); color: var(--dp-navy); }
.dp-btn--teal { background: var(--dp-teal); color: var(--dp-navy); }
.dp-btn--teal:hover { background: #14a391; color: var(--dp-navy); }
.dp-btn--sm { min-height: 40px; padding: 0.5rem 1.1rem; font-size: 0.9rem; }
.dp-btn.is-disabled { opacity: 0.55; cursor: not-allowed; pointer-events: none; }

/* Announcement bar */
.dp-announce { background: var(--dp-navy); color: #fff; font-size: 0.9rem; }
.dp-announce__in { padding-block: 0.5rem; text-align: center; }
.dp-announce a { color: #fff; font-weight: 600; }
.dp-announce a:hover { color: var(--dp-teal); }

/* Header */
.dp-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, 0.96); border-bottom: 1px solid var(--dp-line); }
.admin-bar .dp-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .dp-header { top: 46px; } }
.dp-header__in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 72px; }

.dp-logo { display: inline-flex; align-items: center; gap: 0.6rem; text-decoration: none; color: var(--dp-navy); }
.dp-mark { width: 40px; height: 40px; flex: none; }
.dp-wordmark { font-size: 1.4rem; font-weight: 800; letter-spacing: -0.03em; color: var(--dp-blue-dark); }
.dp-wordmark__b { color: var(--dp-navy); }
.dp-logo--light .dp-wordmark, .dp-logo--light .dp-wordmark__b { color: #fff; }
.custom-logo-link img { max-height: 48px; width: auto; }

.dp-nav { display: flex; align-items: center; gap: 1.5rem; }
.dp-nav__list, .dp-nav .menu { display: flex; align-items: center; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.dp-nav__list a, .dp-nav .menu a {
	display: block; padding: 0.5rem 0.85rem; border-radius: 999px;
	color: var(--dp-navy); font-weight: 600; font-size: 0.95rem; text-decoration: none;
}
.dp-nav__list a:hover, .dp-nav .menu a:hover,
.dp-nav .current-menu-item > a, .dp-nav .current_page_item > a { background: var(--dp-tint); }
.dp-nav .sub-menu { display: none; position: absolute; margin: 0; padding: 0.5rem; list-style: none; background: #fff; border: 1px solid var(--dp-line); border-radius: var(--dp-r-md); box-shadow: var(--dp-shadow-md); min-width: 200px; }
.dp-nav li { position: relative; }
.dp-nav li:hover > .sub-menu, .dp-nav li:focus-within > .sub-menu { display: block; }
.dp-auth { display: flex; align-items: center; gap: 0.5rem; }

.dp-nav-toggle { display: none; width: 44px; height: 44px; padding: 0; border: 1px solid var(--dp-line); border-radius: var(--dp-r-sm); background: #fff; cursor: pointer; align-items: center; justify-content: center; }
.dp-nav-toggle__bars, .dp-nav-toggle__bars::before, .dp-nav-toggle__bars::after { display: block; width: 20px; height: 2px; background: var(--dp-navy); border-radius: 2px; content: ""; transition: transform 0.2s; }
.dp-nav-toggle__bars { position: relative; }
.dp-nav-toggle__bars::before { position: absolute; top: -6px; }
.dp-nav-toggle__bars::after { position: absolute; top: 6px; }
.dp-nav-toggle[aria-expanded="true"] .dp-nav-toggle__bars { background: transparent; }
.dp-nav-toggle[aria-expanded="true"] .dp-nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.dp-nav-toggle[aria-expanded="true"] .dp-nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 960px) {
	.dp-header__in { flex-wrap: wrap; }
	.dp-js .dp-nav-toggle { display: inline-flex; }
	.dp-nav { flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 1rem; padding-block: 0.5rem 1rem; }
	.dp-js .dp-nav { display: none; }
	.dp-js .dp-nav.is-open { display: flex; }
	.dp-nav__list, .dp-nav .menu { flex-direction: column; align-items: stretch; }
	.dp-nav .sub-menu { display: block; position: static; border: 0; box-shadow: none; padding: 0 0 0 1rem; }
	.dp-auth { flex-direction: column; align-items: stretch; }
}

/* Footer */
.dp-footer { background: var(--dp-navy); color: var(--dp-on-dark-muted); margin-top: 4rem; }
.dp-footer a { color: #fff; text-decoration: none; }
.dp-footer a:hover { color: var(--dp-teal); text-decoration: underline; }
.dp-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 2.5rem; padding-block: 3.5rem 2.5rem; }
.dp-footer__brand p { margin-top: 1rem; max-width: 34ch; }
.dp-footer__title, .dp-footer .widget-title { margin: 0 0 1rem; color: #fff; font-size: 1rem; letter-spacing: 0; }
.dp-footer__list, .dp-footer ul { margin: 0; padding: 0; list-style: none; }
.dp-footer__list li, .dp-footer .widget li { margin-bottom: 0.5rem; }
.dp-footer address { font-style: normal; }
.dp-social { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem !important; }
.dp-social a { display: inline-block; padding: 0.35rem 0.8rem; border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 999px; font-size: 0.85rem; }
.dp-footer__bar { border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: 0.9rem; }
.dp-footer__bar-in { padding-block: 1.25rem; }
.dp-footer__bar p { margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
@media (max-width: 860px) { .dp-footer__grid { grid-template-columns: 1fr 1fr; } .dp-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .dp-footer__grid { grid-template-columns: 1fr; } }

.dp-canvas .site-main { display: block; }
.site-main:focus { outline: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
