/* =========================================================
   County and District School Resource Officer Jobs
   Public Styles
   ========================================================= */

.cdsroj-wrap { max-width:860px; margin:0 auto; padding:0 16px; font-family:inherit; }
.cdsroj-empty { padding:40px 0; text-align:center; color:#666; font-style:italic; }

/* ── Notification box ────────────────────────────────────── */
.cdsroj-notify-box {
	background:linear-gradient(135deg,#eef4ff,#f0f9ff);
	border:1px solid #bfdbfe;
	border-left:4px solid #1a56a0;
	border-radius:8px;
	margin-bottom:36px;
	overflow:hidden;
}

.cdsroj-notify-header {
	display:flex;
	align-items:center;
	gap:16px;
	padding:20px 24px;
	flex-wrap:wrap;
}

.cdsroj-notify-icon { font-size:2rem; flex-shrink:0; }

.cdsroj-notify-text { flex:1; min-width:200px; }
.cdsroj-notify-text strong { display:block; font-size:1.05rem; color:#1e3a5f; margin-bottom:4px; }
.cdsroj-notify-text p { margin:0; font-size:0.88rem; color:#4b6080; line-height:1.5; }

.cdsroj-notify-btn {
	background:#1a56a0;
	color:#fff;
	border:none;
	border-radius:5px;
	padding:10px 20px;
	font-size:0.9rem;
	font-weight:600;
	cursor:pointer;
	flex-shrink:0;
	transition:background .18s;
}
.cdsroj-notify-btn:hover,
.cdsroj-notify-btn:focus { background:#154482; outline:3px solid #93c5fd; outline-offset:2px; }

/* ── Subscribe form ──────────────────────────────────────── */
#cdsroj-notify-panel {
	border-top:1px solid #bfdbfe;
	padding:24px 28px;
	background:#fff;
}

.cdsroj-field { margin-bottom:16px; }
.cdsroj-field label,
.cdsroj-field legend { display:block; font-weight:600; font-size:0.88rem; color:#374151; margin-bottom:6px; }

#cdsroj-email {
	width:100%;
	max-width:420px;
	padding:9px 12px;
	border:1px solid #d1d5db;
	border-radius:5px;
	font-size:0.95rem;
	box-sizing:border-box;
	transition:border-color .15s, box-shadow .15s;
}
#cdsroj-email:focus { border-color:#1a56a0; box-shadow:0 0 0 3px rgba(26,86,160,.15); outline:none; }

.cdsroj-radio { display:flex; align-items:center; gap:8px; font-size:0.92rem; font-weight:400; color:#374151; cursor:pointer; margin-bottom:6px; }
.cdsroj-radio input { accent-color:#1a56a0; width:16px; height:16px; cursor:pointer; }

/* District picker */
#cdsroj-picker { background:#f9fafb; border:1px solid #e5e7eb; border-radius:6px; padding:16px; margin-top:10px; }
.cdsroj-picker-label { font-size:0.85rem; font-weight:600; color:#4b5563; margin:0 0 10px; }

#cdsroj-search {
	width:100%;
	max-width:300px;
	padding:7px 10px;
	border:1px solid #d1d5db;
	border-radius:4px;
	font-size:0.87rem;
	box-sizing:border-box;
	margin-bottom:10px;
}
#cdsroj-search:focus { border-color:#1a56a0; outline:none; box-shadow:0 0 0 2px rgba(26,86,160,.12); }

.cdsroj-checkboxes { max-height:220px; overflow-y:auto; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:4px 12px; }
.cdsroj-cb-label { display:flex; align-items:center; gap:6px; font-size:0.85rem; color:#374151; cursor:pointer; padding:2px 0; }
.cdsroj-cb-label input { accent-color:#1a56a0; width:14px; height:14px; cursor:pointer; flex-shrink:0; }

.cdsroj-submit-btn {
	background:#1a56a0;
	color:#fff;
	border:none;
	border-radius:5px;
	padding:11px 28px;
	font-size:0.92rem;
	font-weight:600;
	cursor:pointer;
	margin-top:16px;
	transition:background .18s;
}
.cdsroj-submit-btn:hover,
.cdsroj-submit-btn:focus { background:#154482; outline:3px solid #93c5fd; outline-offset:2px; }
.cdsroj-submit-btn:disabled { opacity:.65; cursor:not-allowed; }

.cdsroj-msg { margin-top:12px; padding:10px 16px; border-radius:5px; font-size:0.9rem; font-weight:500; }
.cdsroj-success { background:#d1fae5; color:#065f46; border:1px solid #6ee7b7; }
.cdsroj-error   { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; }

/* ── Alpha nav ───────────────────────────────────────────── */
.cdsroj-alpha-nav {
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	margin-bottom:36px;
	padding:16px 20px;
	background:#f4f6f9;
	border:1px solid #dde1e9;
	border-radius:8px;
}

.cdsroj-alpha {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:36px;
	height:36px;
	border-radius:5px;
	font-size:0.95rem;
	font-weight:700;
	text-decoration:none;
	transition:background .15s, transform .1s;
}

a.cdsroj-alpha--on { background:#1a56a0; color:#fff; box-shadow:0 1px 3px rgba(26,86,160,.3); }
a.cdsroj-alpha--on:hover,
a.cdsroj-alpha--on:focus { background:#154482; color:#fff; transform:translateY(-2px); outline:3px solid #93c5fd; outline-offset:2px; }
span.cdsroj-alpha--off { background:#e9ecf0; color:#b0b8c4; cursor:default; }

/* ── Letter groups ───────────────────────────────────────── */
.cdsroj-letter-group { margin-bottom:48px; scroll-margin-top:72px; }
.cdsroj-letter-badge {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:44px; height:44px;
	background:#1a56a0;
	color:#fff;
	font-size:1.4rem;
	font-weight:800;
	border-radius:6px;
	margin-bottom:20px;
	box-shadow:0 2px 6px rgba(26,86,160,.25);
}

/* ── District sections & cards ───────────────────────────── */
.cdsroj-section { margin-bottom:32px; scroll-margin-top:80px; }
.cdsroj-district-heading { font-size:1.25rem; font-weight:700; color:#0d2d5e; border-bottom:2px solid #dde3ed; padding-bottom:7px; margin-bottom:16px; }

.cdsroj-cards { display:flex; flex-direction:column; gap:16px; }

.cdsroj-card { background:#fff; border:1px solid #dde3ed; border-radius:8px; box-shadow:0 1px 4px rgba(0,0,0,.06); padding:22px 26px; transition:box-shadow .18s; }
.cdsroj-card:hover { box-shadow:0 4px 14px rgba(0,0,0,.10); }
.cdsroj-card-title { font-size:1.1rem; font-weight:700; color:#1a2640; margin:0 0 14px; }

.cdsroj-details { margin:0 0 18px; padding:0; }
.cdsroj-row { display:flex; flex-wrap:wrap; gap:4px 12px; padding:7px 0; border-bottom:1px solid #f0f2f6; }
.cdsroj-row:last-child { border-bottom:none; }
.cdsroj-row dt { font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#6b7280; min-width:130px; padding-top:2px; }
.cdsroj-row dd { margin:0; color:#1f2937; font-size:0.95rem; flex:1; }
.cdsroj-row dd a { color:#1a56a0; text-decoration:none; }
.cdsroj-row dd a:hover { text-decoration:underline; }
.cdsroj-row--other dd { font-size:0.9rem; color:#374151; line-height:1.6; }
.cdsroj-row--other dd a { color:#1a56a0; text-decoration:underline; word-break:break-all; }

.cdsroj-badge { display:inline-block; padding:2px 10px; border-radius:20px; font-size:0.78rem; font-weight:700; }
.cdsroj-badge--full-time        { background:#dbeafe; color:#1e40af; }
.cdsroj-badge--part-time        { background:#fde8d8; color:#9a3412; }
.cdsroj-badge--full-time-part-time { background:#ede9fe; color:#5b21b6; }

.cdsroj-card-footer { margin-top:4px; }
.cdsroj-email-btn {
	display:inline-block;
	background:#1a56a0;
	color:#fff !important;
	text-decoration:none !important;
	padding:10px 22px;
	border-radius:5px;
	font-size:0.88rem;
	font-weight:600;
	transition:background .18s, transform .1s;
}
.cdsroj-email-btn:hover,
.cdsroj-email-btn:focus { background:#154482; transform:translateY(-1px); outline:3px solid #93c5fd; outline-offset:2px; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width:600px) {
	.cdsroj-notify-header { flex-direction:column; align-items:flex-start; gap:12px; }
	.cdsroj-notify-btn { width:100%; text-align:center; }
	#cdsroj-notify-panel { padding:18px 16px; }
	.cdsroj-checkboxes { grid-template-columns:1fr; }
	.cdsroj-alpha { width:30px; height:30px; font-size:0.85rem; }
	.cdsroj-card { padding:16px 14px; }
	.cdsroj-row { flex-direction:column; gap:2px; }
	.cdsroj-row dt { min-width:unset; }
}
