@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 200 1000;
	font-display: swap;
	src: url(../fonts/nunito-latin-wght-normal.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;
}
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 200 1000;
	font-display: swap;
	src: url(../fonts/nunito-latin-ext-wght-normal.woff2) format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, 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;
}

:root {
	--dm-navy: #0C234D;
	--dm-blue: #0077FF;
	--dm-blue-dark: #005FCC;
	--dm-ink: #0C1A33;
	--dm-text: #33415C;
	--dm-muted: #4A5872;
	--dm-line: #E2E8F1;
	--dm-ground: #F4F7FB;
	--dm-white: #FFFFFF;
	--dm-green: #0F7A55;
	--dm-green-bg: #E8F6EF;
	--dm-radius: 14px;
}

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

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

body.dm {
	margin: 0;
	font-family: 'Nunito', ui-rounded, system-ui, -apple-system, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.55;
	color: var(--dm-ink);
	background: var(--dm-ground);
}

.dm a { color: var(--dm-blue-dark); }
.dm a:hover { color: var(--dm-navy); }
.dm img { max-width: 100%; height: auto; }
.dm code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .92em; background: #EEF2F8; padding: 1px 6px; border-radius: 6px; }
.dm :focus-visible { outline: 3px solid rgba(0, 119, 255, .45); outline-offset: 2px; }

.dm-wrap { max-width: 1200px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.dm-nowrap { white-space: nowrap; }
.dm-center { text-align: center; }

.dm-skip { position: absolute; left: -9999px; top: 8px; z-index: 10; padding: 10px 14px; background: var(--dm-white); border-radius: 8px; }
.dm-skip:focus { left: 16px; }

.dm-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; border-radius: 10px; font-weight: 700; font-size: 15px; text-decoration: none; }
.dm-btn-ghost { border: 1px solid #C9D3E1; color: var(--dm-ink) !important; background: var(--dm-white); }
.dm-btn-ghost:hover { border-color: var(--dm-blue); }

/* Header */
.dm-header { background: var(--dm-white); border-bottom: 1px solid var(--dm-line); }
.dm-header-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-top: 14px; padding-bottom: 14px; }
.dm-brand { display: inline-flex; align-items: center; min-height: 44px; }
.dm-brand img { width: 171px; height: auto; display: block; }
.dm-nav { display: flex; flex-wrap: wrap; gap: 4px 22px; margin-left: auto; }
.dm-nav a { color: var(--dm-text); text-decoration: none; font-weight: 600; padding: 10px 0; }
.dm-nav a:hover { color: var(--dm-blue-dark); }

/* Hero */
.dm-hero { background: var(--dm-white); }
.dm-hero-in { display: flex; flex-wrap: wrap; align-items: center; gap: 48px; padding-top: 64px; padding-bottom: 72px; }
.dm-hero-text { flex: 1 1 460px; min-width: 0; }
.dm-badge { margin: 0 0 18px; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: var(--dm-green-bg); color: #0B5E41; font-size: 14px; font-weight: 700; }
.dm h1 { margin: 0; font-size: clamp(34px, 6vw, 54px); line-height: 1.08; letter-spacing: -0.025em; font-weight: 900; color: var(--dm-navy); }
.dm-lead { margin: 20px 0 0; font-size: 19px; color: var(--dm-text); max-width: 560px; }
.dm-checks { margin: 26px 0 0; padding: 0; list-style: none; display: grid; gap: 12px; color: #24324A; }
.dm-checks li { position: relative; padding-left: 30px; }
.dm-checks li::before { content: ''; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: var(--dm-green-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F7A55' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center / 14px no-repeat; }

/* Login card */
.dm-card { flex: 1 1 360px; max-width: 440px; min-width: 0; background: var(--dm-white); border: 1px solid var(--dm-line); border-radius: 18px; padding: 32px; box-shadow: 0 24px 60px -28px rgba(12, 35, 77, .30); }
.dm-card h2 { margin: 0; font-size: 24px; font-weight: 800; color: var(--dm-navy); }
.dm-card-sub { margin: 4px 0 20px; font-size: 15px; color: var(--dm-muted); }

.dm-form table, .dm-form tbody, .dm-form tr, .dm-form td { display: block; width: 100%; }
.dm-form table { border-collapse: collapse; }
.dm-form tr + tr { margin-top: 14px; }
.dm-form td.title { padding: 0 0 6px; }
.dm-form label { font-size: 15px; font-weight: 700; color: #24324A; }
.dm-form input[type="text"], .dm-form input[type="email"], .dm-form input[type="password"] {
	display: block; width: 100%; height: 50px; padding: 0 14px;
	font: inherit; font-size: 16px; color: var(--dm-ink);
	background: var(--dm-white); border: 1px solid #C9D3E1; border-radius: 10px;
	transition: border-color .15s, box-shadow .15s;
}
.dm-form input:focus { outline: none; border-color: var(--dm-blue); box-shadow: 0 0 0 4px rgba(0, 119, 255, .15); }
.dm-form .formbuttons { margin: 20px 0 0; }
.dm-form #rcmloginsubmit {
	width: 100%; height: 52px; border: 0; border-radius: 10px; cursor: pointer;
	font: inherit; font-size: 17px; font-weight: 800; color: var(--dm-white);
	background: var(--dm-blue);
	transition: background-color .15s;
}
.dm-form #rcmloginsubmit:hover { background: var(--dm-blue-dark); }
.dm-form #rcmloginsubmit:disabled { background: #93A1B8; cursor: default; }

#messagestack { margin: 0; }
#messagestack:empty { display: none; }
#messagestack > div { margin: 0 0 16px; padding: 12px 14px; border-radius: 10px; font-size: 15px; line-height: 1.45; background: #EEF4FF; border: 1px solid #C9DCFF; color: var(--dm-navy); cursor: pointer; }
#messagestack > div.warning, #messagestack > div.error { background: #FDECEA; border-color: #F3C2BA; color: #8A2414; }
#messagestack > div.confirmation { background: var(--dm-green-bg); border-color: #BFE3D2; color: #0B5E41; }
#messagestack > div.loading { background: #F4F7FB; border-color: var(--dm-line); color: var(--dm-muted); }

.dm-noscript { margin: 16px 0 0; padding: 12px 14px; border-radius: 10px; background: #FFF4E5; color: #7A4A06; }

.dm-card-notes { margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid #EDF1F6; list-style: none; display: grid; gap: 10px; font-size: 14px; color: var(--dm-muted); }
.dm-card-notes li { display: flex; align-items: center; gap: 8px; }
.dm-card-notes a { font-weight: 700; }

/* Strip */
.dm-strip { background: var(--dm-white); border-top: 1px solid var(--dm-line); border-bottom: 1px solid var(--dm-line); }
.dm-strip-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 18px; padding-top: 22px; padding-bottom: 22px; }
.dm-strip-in div { display: flex; flex-direction: column; }
.dm-strip-in strong { font-size: 17px; color: var(--dm-navy); }
.dm-strip-in span { font-size: 14px; color: var(--dm-muted); }

/* Sections */
.dm-section { padding-top: 80px; padding-bottom: 24px; }
.dm-eyebrow { margin: 0; font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--dm-blue-dark); }
.dm-h2 { margin: 8px 0 0; font-size: clamp(26px, 4vw, 36px); line-height: 1.15; letter-spacing: -0.02em; font-weight: 900; color: var(--dm-navy); }
.dm-sub { margin: 12px 0 0; font-size: 17px; color: var(--dm-muted); max-width: 680px; }

.dm-grid { margin-top: 36px; display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 20px; }
.dm-feature { position: relative; background: var(--dm-white); border: 1px solid var(--dm-line); border-radius: var(--dm-radius); padding: 26px; }
.dm-feature h3 { margin: 16px 0 6px; font-size: 18px; font-weight: 800; color: var(--dm-navy); }
.dm-feature p { margin: 0; font-size: 15px; color: var(--dm-muted); }
.dm-icon { width: 44px; height: 44px; border-radius: 12px; background: #E6F1FF; color: var(--dm-blue-dark); display: inline-flex; align-items: center; justify-content: center; }
.dm-soon { position: absolute; top: 26px; right: 26px; padding: 4px 10px; border-radius: 999px; background: #FFF1EC; color: #A63A22; font-size: 12px; font-weight: 800; }

.dm-setup { margin-top: 28px; background: var(--dm-white); border: 1px solid var(--dm-line); border-radius: var(--dm-radius); padding: 8px 24px 20px; overflow-x: auto; }
.dm-setup table { width: 100%; border-collapse: collapse; font-size: 15px; }
.dm-setup th, .dm-setup td { padding: 14px 0; border-bottom: 1px solid #EDF1F6; text-align: left; vertical-align: top; }
.dm-setup th { width: 34%; padding-right: 16px; color: var(--dm-muted); font-weight: 600; }
.dm-setup-note { margin: 14px 0 0; font-size: 14px; color: var(--dm-muted); }

.dm-privacy-wrap { padding-top: 72px; }
.dm-privacy { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; padding: 32px; border-radius: 18px; background: var(--dm-green-bg); }
.dm-privacy-icon { flex: none; width: 56px; height: 56px; border-radius: 14px; background: var(--dm-white); color: var(--dm-green); display: inline-flex; align-items: center; justify-content: center; }
.dm-privacy > div { flex: 1 1 380px; min-width: 0; }
.dm-privacy h2 { margin: 0; font-size: 23px; font-weight: 900; color: #0B4A34; }
.dm-privacy p { margin: 6px 0 0; color: #24453A; }

.dm-faq { max-width: 860px; padding-bottom: 88px; }
.dm-faq .dm-h2 { margin-bottom: 24px; }
.dm-faq details { background: var(--dm-white); border: 1px solid var(--dm-line); border-radius: 12px; padding: 0 22px; margin-top: 12px; }
.dm-faq summary { cursor: pointer; list-style: none; padding: 18px 28px 18px 0; font-size: 17px; font-weight: 800; color: var(--dm-navy); position: relative; }
.dm-faq summary::-webkit-details-marker { display: none; }
.dm-faq summary::after { content: '+'; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 22px; font-weight: 700; color: var(--dm-blue-dark); }
.dm-faq details[open] summary::after { content: '–'; }
.dm-faq details p { margin: 0 0 18px; color: var(--dm-muted); }

/* Footer */
.dm-footer { background: var(--dm-navy); color: #C9D4E6; }
.dm-footer-in { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 36px; padding-top: 48px; padding-bottom: 28px; }
.dm-footer-brand { flex: 1 1 300px; min-width: 0; }
.dm-footer-brand img { width: 151px; display: block; }
.dm-footer-brand p { margin: 14px 0 0; font-size: 14px; max-width: 360px; }
.dm-address { color: #9FB0CC; font-size: 13px !important; }
.dm-footer-nav { display: flex; flex-wrap: wrap; gap: 48px; font-size: 15px; }
.dm-footer-nav div { display: flex; flex-direction: column; gap: 4px; }
.dm-footer-nav strong { color: var(--dm-white); margin-bottom: 6px; }
.dm-footer-nav a { color: #C9D4E6; text-decoration: none; padding: 6px 0; }
.dm-footer-nav a:hover { color: var(--dm-white); }
.dm-copy { padding-top: 18px; padding-bottom: 28px; border-top: 1px solid #1E3866; font-size: 13px; color: #9FB0CC; }

@media (max-width: 640px) {
	.dm-wrap { padding-left: 16px; padding-right: 16px; }
	.dm-nav { order: 3; width: 100%; margin-left: 0; gap: 0 18px; }
	.dm-brand img { width: 150px; }
	.dm-hero-in { padding-top: 36px; padding-bottom: 48px; gap: 32px; }
	.dm-lead { font-size: 17px; }
	.dm-card { padding: 24px 20px; }
	.dm-section { padding-top: 56px; }
	.dm-setup { padding: 4px 16px 16px; }
	.dm-setup th { width: auto; display: block; padding-bottom: 2px; border-bottom: 0; }
	.dm-setup td { display: block; padding-top: 0; }
	.dm-privacy { padding: 24px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; }
}
