:root {
	--sdhs-color-primary: #0b4f8a;
	--sdhs-color-secondary: #0f75bc;
	--sdhs-color-accent: #f5b041;
	--sdhs-color-surface: #ffffff;
	--sdhs-color-muted: #f4f7fb;
	--sdhs-color-text: #172033;
	--sdhs-color-text-muted: #5d6b82;
	--sdhs-color-border: #d9e2ef;
	--sdhs-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	--sdhs-space-xs: 0.5rem;
	--sdhs-space-sm: 1rem;
	--sdhs-space-md: 1.5rem;
	--sdhs-space-lg: 2.5rem;
	--sdhs-space-xl: 4rem;
	--sdhs-radius-sm: 0.5rem;
	--sdhs-radius-md: 1rem;
	--sdhs-shadow-sm: 0 8px 24px rgba(23, 32, 51, 0.08);
	--sdhs-container: 1140px;
	--sdhs-wide: 1320px;
}

/* Optional local font example:
@font-face {
	font-family: "SD Local Sans";
	src: url("../fonts/sd-local-sans.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}
*/

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--sdhs-color-surface);
	color: var(--sdhs-color-text);
	font-family: var(--sdhs-font-sans);
	font-size: 16px;
	line-height: 1.65;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--sdhs-color-primary); text-decoration-thickness: 0.08em; text-underline-offset: 0.18em; }
a:hover { color: var(--sdhs-color-secondary); }

.sdhs-container {
	width: min(100% - 2rem, var(--sdhs-container));
	margin-inline: auto;
}

.sdhs-skip-link {
	position: absolute;
	left: -999px;
	top: auto;
	z-index: 9999;
	padding: var(--sdhs-space-sm);
	background: var(--sdhs-color-primary);
	color: #fff;
}
.sdhs-skip-link:focus { left: 1rem; top: 1rem; }

.sdhs-site-header {
	position: relative;
	z-index: 10;
	background: var(--sdhs-color-surface);
	border-bottom: 1px solid var(--sdhs-color-border);
}
.sdhs-site-header__inner {
	display: grid;
	grid-template-columns: minmax(180px, 1fr) minmax(260px, 2fr) minmax(160px, 1fr);
	gap: var(--sdhs-space-md);
	align-items: center;
	min-height: 84px;
}
.sdhs-site-title {
	font-weight: 800;
	font-size: 1.15rem;
	text-decoration: none;
	color: var(--sdhs-color-text);
}
.sdhs-site-header__cta { display: flex; justify-content: flex-end; }

.sdhs-menu-toggle { display: none; }
.sdhs-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--sdhs-space-md);
	justify-content: center;
}
.sdhs-menu a { text-decoration: none; font-weight: 600; color: var(--sdhs-color-text); }
.sdhs-menu a:hover { color: var(--sdhs-color-primary); }

.sdhs-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.75rem 1.15rem;
	border-radius: 999px;
	background: var(--sdhs-color-primary);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid transparent;
}
.sdhs-button:hover { background: var(--sdhs-color-secondary); color: #fff; }
.sdhs-button--small { min-height: 40px; padding: 0.6rem 1rem; }

.sdhs-news {
	background: var(--sdhs-color-muted);
	border-bottom: 1px solid var(--sdhs-color-border);
}
.sdhs-news__inner {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--sdhs-space-md);
	align-items: center;
	padding-block: 0.75rem;
}
.sdhs-news__label {
	padding: 0.25rem 0.6rem;
	border-radius: 999px;
	background: var(--sdhs-color-accent);
	color: #172033;
}
.sdhs-news__items {
	display: flex;
	gap: var(--sdhs-space-md);
	overflow-x: auto;
	white-space: nowrap;
}
.sdhs-news__link { font-weight: 600; text-decoration: none; }

.sdhs-hero {
	background: linear-gradient(135deg, var(--sdhs-color-primary), var(--sdhs-color-secondary));
	color: #fff;
}
.sdhs-hero__inner {
	display: grid;
	align-items: center;
	gap: var(--sdhs-space-lg);
	min-height: clamp(280px, 45vw, 520px);
	padding-block: var(--sdhs-space-xl);
}
.sdhs-hero--has-image .sdhs-hero__inner { grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr); }
.sdhs-hero__content { max-width: 760px; }
.sdhs-hero__media {
	margin: 0;
	justify-self: end;
	width: min(100%, 560px);
}
.sdhs-hero__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--sdhs-radius-lg);
	box-shadow: var(--sdhs-shadow-md);
}
.sdhs-hero__title {
	margin: 0 0 var(--sdhs-space-sm);
	font-size: clamp(2rem, 5vw, 4rem);
	line-height: 1.05;
}
.sdhs-hero__text {
	max-width: 680px;
	font-size: clamp(1.05rem, 2vw, 1.3rem);
	margin: 0 0 var(--sdhs-space-md);
}
.sdhs-hero .sdhs-button { background: #fff; color: var(--sdhs-color-primary); }

.sdhs-main { padding-block: var(--sdhs-space-xl); }
.sdhs-main--page .sdhs-entry__content { max-width: 960px; }
.sdhs-entry__title,
.sdhs-archive-title { margin-top: 0; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.15; }
.sdhs-entry__meta { color: var(--sdhs-color-text-muted); }
.sdhs-entry__image { margin-block: var(--sdhs-space-md); border-radius: var(--sdhs-radius-md); overflow: hidden; }
.sdhs-entry__content > *:first-child { margin-top: 0; }
.sdhs-elementor-content { width: 100%; }

.sdhs-grid {
	display: grid;
	gap: var(--sdhs-space-md);
}
.sdhs-content-columns-1 .sdhs-grid--posts { grid-template-columns: 1fr; }
.sdhs-content-columns-2 .sdhs-grid--posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sdhs-content-columns-3 .sdhs-grid--posts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sdhs-content-columns-4 .sdhs-grid--posts { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.sdhs-card {
	background: var(--sdhs-color-surface);
	border: 1px solid var(--sdhs-color-border);
	border-radius: var(--sdhs-radius-md);
	overflow: hidden;
	box-shadow: var(--sdhs-shadow-sm);
}
.sdhs-card__body { padding: var(--sdhs-space-md); }
.sdhs-card__title { margin: 0 0 var(--sdhs-space-sm); font-size: 1.25rem; line-height: 1.25; }
.sdhs-card__title a { color: var(--sdhs-color-text); text-decoration: none; }
.sdhs-card__excerpt { color: var(--sdhs-color-text-muted); }

.sdhs-pagination { margin-top: var(--sdhs-space-lg); }
.sdhs-post-nav {
	display: flex;
	justify-content: space-between;
	gap: var(--sdhs-space-md);
	margin-top: var(--sdhs-space-lg);
}

.sdhs-site-footer {
	background: #0b1726;
	color: #dce7f5;
	padding-block: var(--sdhs-space-xl) var(--sdhs-space-md);
}
.sdhs-site-footer a { color: #fff; }
.sdhs-site-footer__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--sdhs-space-lg);
}
.sdhs-widget__title { color: #fff; font-size: 1rem; margin-top: 0; }
.sdhs-site-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: var(--sdhs-space-md);
	align-items: center;
	margin-top: var(--sdhs-space-lg);
	padding-top: var(--sdhs-space-md);
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	font-size: 0.9rem;
}
.sdhs-footer-menu {
	list-style: none;
	display: flex;
	gap: var(--sdhs-space-sm);
	margin: 0;
	padding: 0;
}

.alignwide { max-width: var(--sdhs-wide); margin-inline: auto; }
.alignfull { width: 100%; max-width: none; }

@media (max-width: 900px) {
	.sdhs-site-header__inner { grid-template-columns: 1fr auto; }
	.sdhs-site-header__cta { display: none; }
	.sdhs-site-nav { justify-self: end; }
	.sdhs-menu-toggle {
		display: inline-flex;
		min-height: 40px;
		padding: 0.5rem 0.8rem;
		border: 1px solid var(--sdhs-color-border);
		border-radius: var(--sdhs-radius-sm);
		background: #fff;
	}
	.sdhs-menu {
		display: none;
		position: absolute;
		left: 1rem;
		right: 1rem;
		top: 72px;
		padding: var(--sdhs-space-md);
		background: #fff;
		border: 1px solid var(--sdhs-color-border);
		border-radius: var(--sdhs-radius-md);
		box-shadow: var(--sdhs-shadow-sm);
		flex-direction: column;
		align-items: flex-start;
	}
	.sdhs-menu.is-open { display: flex; }
	.sdhs-content-columns-2 .sdhs-grid--posts,
	.sdhs-content-columns-3 .sdhs-grid--posts,
	.sdhs-content-columns-4 .sdhs-grid--posts,
	.sdhs-site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sdhs-hero--has-image .sdhs-hero__inner { grid-template-columns: 1fr; }
	.sdhs-hero__media { justify-self: start; width: min(100%, 520px); }
}

@media (max-width: 640px) {
	.sdhs-container { width: min(100% - 1.25rem, var(--sdhs-container)); }
	.sdhs-news__inner { grid-template-columns: 1fr; gap: var(--sdhs-space-xs); }
	.sdhs-content-columns-2 .sdhs-grid--posts,
	.sdhs-content-columns-3 .sdhs-grid--posts,
	.sdhs-content-columns-4 .sdhs-grid--posts,
	.sdhs-site-footer__grid { grid-template-columns: 1fr; }
	.sdhs-site-footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* Homepage service tiles */
.sdhs-main--front-page {
	padding-top: 0;
}

.sdhs-home-tiles {
	padding-block: var(--sdhs-space-xl);
	background:
		linear-gradient(180deg, rgba(244, 247, 251, 0.92), rgba(255, 255, 255, 1));
}

.sdhs-section-header {
	max-width: 760px;
	margin-bottom: var(--sdhs-space-lg);
}

.sdhs-section-title {
	margin: 0 0 var(--sdhs-space-sm);
	font-size: clamp(1.8rem, 3vw, 2.75rem);
	line-height: 1.15;
	color: var(--sdhs-color-text);
}

.sdhs-section-text {
	margin: 0;
	font-size: 1.08rem;
	color: var(--sdhs-color-text-muted);
}

.sdhs-tile-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sdhs-space-md);
}

.sdhs-service-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 260px;
	padding: var(--sdhs-space-lg);
	border: 1px solid var(--sdhs-color-border);
	border-radius: var(--sdhs-radius-md);
	background: var(--sdhs-color-surface);
	box-shadow: var(--sdhs-shadow-sm);
	overflow: hidden;
}

.sdhs-service-tile::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 5px;
	background: linear-gradient(180deg, var(--sdhs-color-primary), var(--sdhs-color-accent));
}

.sdhs-service-tile__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: var(--sdhs-space-md);
	border-radius: 999px;
	background: var(--sdhs-color-muted);
	color: var(--sdhs-color-primary);
	font-weight: 800;
}

.sdhs-service-tile__title {
	margin: 0 0 var(--sdhs-space-sm);
	font-size: 1.3rem;
	line-height: 1.2;
}

.sdhs-service-tile__text {
	margin: 0 0 var(--sdhs-space-md);
	color: var(--sdhs-color-text-muted);
}

.sdhs-service-tile__link {
	margin-top: auto;
	font-weight: 800;
	text-decoration: none;
	color: var(--sdhs-color-primary);
}

.sdhs-service-tile__link::after {
	content: " →";
}

.sdhs-service-tile:focus-within,
.sdhs-service-tile:hover {
	border-color: rgba(11, 79, 138, 0.35);
	transform: translateY(-2px);
	transition: transform 160ms ease, border-color 160ms ease;
}

@media (max-width: 900px) {
	.sdhs-tile-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.sdhs-tile-grid {
		grid-template-columns: 1fr;
	}

	.sdhs-service-tile {
		min-height: auto;
		padding: var(--sdhs-space-md);
	}
}


/* WordPress content card system: used by generated pages and Gutenberg. */
.sd-page-detail,
.sd-start-page,
.sd-services-page,
.sd-partner-page {
	max-width: var(--sdhs-container);
	margin-inline: auto;
}

.sd-lead {
	font-size: 1.12rem;
	color: var(--sdhs-color-text-muted);
	max-width: 860px;
}

.sd-card-grid,
.sd-icon-card-grid,
.sd-partner-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sdhs-space-md);
	margin-block: var(--sdhs-space-lg);
}

.sd-card,
.sd-icon-card,
.sd-partner-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 220px;
	padding: var(--sdhs-space-lg);
	border: 1px solid var(--sdhs-color-border);
	border-radius: var(--sdhs-radius-md);
	background: var(--sdhs-color-surface);
	box-shadow: var(--sdhs-shadow-sm);
	overflow: hidden;
}

.sd-card::before,
.sd-icon-card::before,
.sd-partner-card::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 5px;
	background: linear-gradient(180deg, var(--sdhs-color-primary), var(--sdhs-color-accent));
}

.sd-card h2,
.sd-card h3,
.sd-icon-card h2,
.sd-icon-card h3,
.sd-partner-card h2,
.sd-partner-card h3 {
	margin-top: 0;
	line-height: 1.2;
}

.sd-card p:last-child,
.sd-icon-card p:last-child,
.sd-partner-card p:last-child {
	margin-top: auto;
}

.sd-card a,
.sd-icon-card a,
.sd-partner-card a {
	font-weight: 800;
	text-decoration: none;
}

.sd-card a::after,
.sd-icon-card a::after,
.sd-partner-card a::after {
	content: " →";
}

.sd-card-icon,
.sd-icon-card__icon,
.sd-partner-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	margin-bottom: var(--sdhs-space-md);
	border-radius: 1rem;
	background: var(--sdhs-color-muted);
	border: 1px solid var(--sdhs-color-border);
}

.sd-card-icon img,
.sd-icon-card__icon img,
.sd-partner-card__icon img {
	width: 2rem;
	height: 2rem;
}

.sd-notice,
.sd-affiliate-notice {
	margin-block: var(--sdhs-space-lg);
	padding: var(--sdhs-space-lg);
	border: 1px solid rgba(11, 79, 138, 0.22);
	border-radius: var(--sdhs-radius-md);
	background: #eef6ff;
}

.sd-notice h2,
.sd-affiliate-notice h2 {
	margin-top: 0;
}

.sd-comparison-table table {
	width: 100%;
	border-collapse: collapse;
}

.sd-comparison-table th,
.sd-comparison-table td {
	padding: 0.85rem;
	border: 1px solid var(--sdhs-color-border);
	text-align: left;
	vertical-align: top;
}

.sd-comparison-table th {
	background: var(--sdhs-color-muted);
}

@media (max-width: 900px) {
	.sd-card-grid,
	.sd-icon-card-grid,
	.sd-partner-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.sd-card-grid,
	.sd-icon-card-grid,
	.sd-partner-grid {
		grid-template-columns: 1fr;
	}

	.sd-card,
	.sd-icon-card,
	.sd-partner-card {
		min-height: auto;
		padding: var(--sdhs-space-md);
	}
}

/* Editable content layout with optional right widget area. */
.sdhs-content-layout {
	display: block;
}

.sdhs-content-layout.has-content-sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
	gap: var(--sdhs-space-lg);
	align-items: start;
}

.sdhs-content-primary {
	min-width: 0;
}

.sdhs-content-sidebar {
	position: sticky;
	top: 1rem;
	display: grid;
	gap: var(--sdhs-space-md);
}

.sdhs-content-widget {
	padding: var(--sdhs-space-md);
	border: 1px solid var(--sdhs-color-border);
	border-radius: var(--sdhs-radius-md);
	background: var(--sdhs-color-muted);
	box-shadow: var(--sdhs-shadow-sm);
}

.sdhs-content-widget__title {
	margin-top: 0;
	color: var(--sdhs-color-text);
}

.sdhs-content-widget ul {
	padding-left: 1.15rem;
}

.sdhs-content-widget a {
	font-weight: 700;
}

.sdhs-news__link--manual {
	padding-inline: 0.2rem;
}

.sdhs-main--front-page .sdhs-home-tiles {
	margin-inline: calc(var(--sdhs-space-lg) * -1);
	padding-inline: var(--sdhs-space-lg);
	border-radius: var(--sdhs-radius-md);
}

@media (max-width: 1024px) {
	.sdhs-content-layout.has-content-sidebar {
		grid-template-columns: 1fr;
	}

	.sdhs-content-sidebar {
		position: static;
	}

	.sdhs-main--front-page .sdhs-home-tiles {
		margin-inline: 0;
		padding-inline: 0;
	}
}
