/* IntraMed – theme styles. Colors and fonts come from theme.json presets. */

:root {
	--im-ink: var(--wp--preset--color--ink, #0E1B33);
	--im-accent: var(--wp--preset--color--accent, #193F83);
	--im-accent-soft: var(--wp--preset--color--accent-soft, #E6ECF6);
	--im-line: var(--wp--preset--color--line, #E2E6EE);
	--im-muted: var(--wp--preset--color--muted, #4A5866);
	--im-on-dark: var(--wp--preset--color--on-dark, #B7C3CE);
	--im-mono: var(--wp--preset--font-family--mono, monospace);
}

/* ---------- Page scaffolding ---------- */

.wp-site-blocks > * + * { margin-block-start: 0; }
.im-main { margin-block: 0; }
.im-main > .wp-block-post-content > .alignfull,
.im-main > .wp-block-post-content > * + .alignfull { margin-block: 0; }
.im-main > .wp-block-post-content > .alignfull + * { margin-block-start: 0; }

/* ---------- Header ---------- */

.im-utility {
	background: var(--im-ink);
	color: #C9D3DC;
	font-size: 13px;
	padding-block: 9px;
}
.im-utility p { margin: 0; }
.im-utility a { color: #E6ECF1; text-decoration: none; }
.im-utility a:hover { color: #FFFFFF; text-decoration: underline; }

.im-header {
	background: #FFFFFF;
	border-bottom: 1px solid var(--im-line);
	padding-block: 18px;
}
.im-header .im-logo img { height: 34px; width: auto; display: block; }
.im-header .wp-block-navigation { font-weight: 500; font-size: 16px; gap: 28px; }
.im-header .wp-block-navigation a { color: var(--im-ink); text-decoration: none; }
.im-header .wp-block-navigation a:hover { color: var(--im-accent); }
.im-header .wp-block-navigation .current-menu-item > a { color: var(--im-accent); font-weight: 700; }
.im-header .wp-block-button__link { background: var(--im-ink); padding: 12px 20px; font-size: 16px; }

/* ---------- Sections ---------- */

.im-section { padding-block: clamp(72px, 9vw, 120px); }
.im-section--tight { padding-block: clamp(56px, 7vw, 96px); }
.im-section--white { background: #FFFFFF; }
.im-section--line { border-top: 1px solid var(--im-line); }
.im-section--hero { background: #FFFFFF; padding-block: clamp(56px, 8vw, 104px) clamp(56px, 7vw, 96px); }
.im-section--dark { background: var(--im-ink); color: #E6ECF1; }
.im-section--dark :is(h1, h2, h3, h4) { color: #FFFFFF; }
.im-section--dark p { color: var(--im-on-dark); }
.im-section--dark a { color: #FFFFFF; }

.im-section :is(h1, h2, h3, h4) { margin-block-end: 0; }
.im-eyebrow + :is(h1, h2, h3, .wp-block-heading) { margin-block-start: 14px !important; }
.im-section--hero h1 { font-size: clamp(36px, 4.2vw, 56px); }

.im-eyebrow {
	font-family: var(--im-mono);
	font-size: 13px !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--im-accent);
}
.im-section--dark .im-eyebrow { color: #9DB8E8; }

.im-lead { font-size: var(--wp--preset--font-size--large); color: #3E4C59; max-width: 580px; }
.im-section--dark .im-lead { color: var(--im-on-dark); max-width: 760px; }
.im-muted { color: var(--im-muted); }
.im-narrow { max-width: 760px; margin-left: max(0px, calc((100% - 1200px) / 2)) !important; margin-right: auto !important; }
.im-small { font-size: 12px; color: #6B7884; }

.im-breadcrumb { font-size: 14px; color: #5A6875; margin-block-end: 16px; }
.im-breadcrumb a { color: #5A6875; }

/* Section header with heading left, text right */
.im-section-head { align-items: flex-end !important; margin-block-end: 48px; }
.im-section-head > .wp-block-group { max-width: 640px; }
.im-section-head > p { max-width: 400px; color: var(--im-muted); margin: 0; }

/* ---------- Buttons ---------- */

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: #FFFFFF;
	color: var(--im-ink);
	border: 1.5px solid #C8D0DE;
	padding: 15px 25px;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--im-ink); }

/* ---------- Stats band ---------- */

.im-stats-band { background: #FFFFFF; border-block: 1px solid var(--im-line); }
.im-stats { gap: 0 !important; }
.im-stat { padding: 30px 24px 30px 0; }
.im-stat p { margin: 0; }
.im-stat-number { font-size: 34px !important; font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; }
.im-stat-label { color: var(--im-muted); font-size: 15px; }

/* ---------- Cards ---------- */

.im-card {
	background: #FFFFFF;
	border: 1px solid var(--im-line);
	border-radius: 20px;
	padding: 28px;
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.im-card > * { margin: 0 !important; }
.im-card p { color: var(--im-muted); font-size: 16px; }
.im-card .im-card-text { flex: 1; }
.im-card--dark { background: var(--wp--preset--color--dark-2, #16264A); border: 0; }
.im-card--dark p { color: var(--im-on-dark); }
.im-card--dark h3 { color: #FFFFFF; }

.im-card-top { justify-content: space-between; align-items: flex-start !important; }

.im-code {
	width: 48px;
	height: 48px;
	border-radius: 14px;
	background: var(--im-accent-soft);
	color: var(--im-accent) !important;
	font-family: var(--im-mono);
	font-size: 14px !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
}
.im-section--dark .im-code { background: transparent; color: #9DB8E8 !important; width: auto; height: auto; justify-content: flex-start; }

.im-badge {
	font-family: var(--im-mono);
	font-size: 12px !important;
	letter-spacing: 0.08em;
	padding: 5px 10px;
	border-radius: 999px;
	border: 1px solid #C8D0DE;
	color: #3E4C59 !important;
	margin: 0;
}

.im-more { font-weight: 600; font-size: 15px !important; }
.im-more a { text-decoration: none; }
.im-more a:hover { text-decoration: underline; }

/* ---------- Lists ---------- */

.im-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.im-chips li { border: 1px solid #3A4B70; border-radius: 999px; padding: 8px 16px; font-size: 15px; color: #E6ECF1; }
.im-chips.im-chips--large li { padding: 10px 18px; font-size: 16px; color: #FFFFFF; }

.im-checks {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 18px 28px;
}
.im-checks li { position: relative; padding-left: 34px; font-size: 16px; }
.im-checks li::before,
.im-features li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 22px;
	height: 22px;
	background-color: var(--im-accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.im-features {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 28px 32px;
}
.im-features li { position: relative; padding-left: 52px; color: var(--im-muted); font-size: 15px; min-height: 36px; }
.im-features li strong { display: block; color: var(--im-ink); font-size: 17px; margin-bottom: 4px; }
.im-features li::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--im-accent-soft);
	z-index: 0;
}
.im-features li::before { left: 9px; top: 9px; width: 18px; height: 18px; z-index: 1; }

/* ---------- Quotes ---------- */

.im-quote-card {
	background: #FFFFFF;
	border: 1px solid var(--im-line);
	border-radius: 24px;
	padding: clamp(28px, 3vw, 40px);
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.im-quote-card > * { margin: 0 !important; }
.im-quote-card--large { border-radius: 28px; padding: clamp(32px, 5vw, 64px); gap: 28px; }
.im-quote-source { font-weight: 700; font-size: 15px !important; color: var(--im-accent); }

.wp-block-quote.im-quote {
	border: 0;
	margin: 0;
	padding: 0;
	flex: 1;
}
.wp-block-quote.im-quote p {
	font-size: clamp(20px, 1.8vw, 24px);
	line-height: 1.4;
	font-weight: 500;
	letter-spacing: -0.01em;
	margin: 0;
}
.im-quote-card--large .wp-block-quote.im-quote p { font-size: clamp(22px, 2.4vw, 32px); line-height: 1.35; max-width: 960px; }
.wp-block-quote.im-quote cite { display: block; margin-top: 24px; font-style: normal; font-size: 15px; color: var(--im-muted); }
.wp-block-quote.im-quote cite strong { display: block; color: var(--im-ink); font-size: 17px; }

.im-ceo-quote { background: var(--wp--preset--color--accent-tint, #EAEFF7); border-radius: 24px; padding: 36px; }
.im-ceo-quote.wp-block-quote { border: 0; margin: 0; }
.im-ceo-quote p { font-size: 20px; line-height: 1.5; font-weight: 500; margin: 0; }
.im-ceo-quote cite { display: block; margin-top: 20px; font-style: normal; color: var(--im-muted); font-size: 15px; }
.im-ceo-quote cite strong { display: block; color: var(--im-ink); font-size: 17px; }

/* ---------- News ---------- */

.im-news { border: 1px solid var(--im-line); border-radius: 20px; padding: 24px; }
.im-news > * { margin: 0 !important; }
.im-news .im-eyebrow { color: #5A6875; font-size: 12px !important; margin-bottom: 8px !important; }
.im-news .wp-block-latest-posts { padding: 0; margin: 0; }
.im-news .wp-block-latest-posts li { margin: 0; }
.im-news .wp-block-latest-posts__post-title { font-weight: 700; font-size: 19px; color: var(--im-ink); text-decoration: none; }
.im-news .wp-block-latest-posts__post-title:hover { color: var(--im-accent); }

.im-links { gap: 24px !important; font-weight: 600; }
.im-links p { margin: 0; }

/* ---------- Resource rows ---------- */

.im-resource {
	border: 1px solid var(--im-line);
	border-radius: 16px;
	padding: 20px 22px;
	justify-content: space-between;
}
.im-resource p { margin: 0; }
.im-resource .im-resource-meta { color: #5A6875; font-size: 14px; }
.im-resource .im-more { flex: none; }

/* ---------- CTA ---------- */

.im-cta {
	background: var(--im-accent);
	border-radius: 32px;
	padding: clamp(36px, 5vw, 72px);
	justify-content: space-between;
	align-items: center !important;
}
.im-cta h2 { color: #FFFFFF; font-size: clamp(30px, 3.4vw, 44px); margin: 0; }
.im-cta p { color: #DCE5F5; font-size: 18px; margin: 16px 0 0; }
.im-cta > .wp-block-group:first-child { max-width: 620px; }
.im-cta .wp-block-button__link { background: #FFFFFF; color: var(--im-ink); font-weight: 700; }
.im-cta .wp-block-button__link:hover { background: #E6ECF6; color: var(--im-ink); }
.im-cta .is-style-outline > .wp-block-button__link { background: transparent; color: #FFFFFF; border-color: rgba(255, 255, 255, 0.6); }
.im-cta .is-style-outline > .wp-block-button__link:hover { border-color: #FFFFFF; background: transparent; color: #FFFFFF; }

/* ---------- Footer ---------- */

.im-footer { background: var(--im-ink); color: var(--im-on-dark); padding-block: 64px 40px; font-size: 15px; }
.im-footer p { margin: 0; }
.im-footer a { color: var(--im-on-dark); }
.im-footer a:hover { color: #FFFFFF; }
.im-footer .im-footer-title { color: #FFFFFF; font-weight: 700; }
.im-footer .im-logo img { height: 28px; width: auto; display: block; }
.im-footer-col { gap: 8px !important; }
.im-footer-bottom { margin-top: 56px; padding-top: 24px; border-top: 1px solid #26365A; font-size: 13px; color: #8C9AA7; }

/* ---------- Plain pages ---------- */

.im-page { padding-block: clamp(48px, 6vw, 80px); }

/* ---------- Small screens ---------- */

@media (max-width: 781px) {
	.im-hide-sm { display: none !important; }
	.im-section-head { align-items: flex-start !important; }
	.im-stat { padding: 20px 0; }
	.im-header .wp-block-navigation { gap: 16px; }
	.im-header .im-logo img { height: 28px; }
	.im-header .wp-block-group.is-layout-flex { flex-wrap: nowrap; }
}

/* ---------- Layout helpers used by patterns ---------- */

.im-section .wp-block-columns.im-columns { gap: clamp(32px, 5vw, 64px); margin-block: 0; }
.im-section--hero .wp-block-columns.im-columns { gap: 56px; }
.im-buttons { margin-top: 12px; gap: 14px; }
.im-grid-spaced { gap: 20px !important; margin-block-start: 48px !important; }
.im-split { margin-block-start: 64px !important; padding-top: 48px; border-top: 1px solid #26365A; }
.im-split h3 { margin-bottom: 18px !important; font-size: 20px; }
.im-eyebrow--inline { margin: 0 !important; }
.im-stack { gap: 12px !important; }
.im-stack > * { width: 100%; box-sizing: border-box; }
.im-phone { margin-inline: auto; }

.im-related { margin: 0; }
.im-related a {
	display: flex;
	align-items: center;
	gap: 12px;
	border: 1px solid var(--im-line);
	border-radius: 16px;
	padding: 16px;
	text-decoration: none;
	color: var(--im-ink);
	font-weight: 600;
}
.im-related a:hover { border-color: var(--im-accent); }
.im-related strong {
	width: 36px;
	height: 36px;
	flex: none;
	border-radius: 10px;
	background: var(--im-accent-soft);
	color: var(--im-accent);
	font-family: var(--im-mono);
	font-size: 12px;
	font-weight: 500;
	display: flex;
	align-items: center;
	justify-content: center;
}
.im-section .wp-block-column > .im-ceo-quote + .im-news { margin-block-start: 20px; }

/* ---------- Content pages ---------- */

.im-section--page { padding-block: clamp(40px, 5vw, 64px) clamp(56px, 7vw, 88px); }
.im-section--page .im-breadcrumb { margin-block-end: 28px; }
.im-section--page h1 { font-size: clamp(34px, 4.2vw, 54px); }

.im-hero-img { margin: 0; }
.im-hero-img img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 28px;
	display: block;
}

.im-prose p { margin-block: 0 1em; }
.im-prose p:last-child { margin-bottom: 0; }

.im-features--simple li { min-height: 36px; display: flex; align-items: center; }
.im-features--simple li:has(br), .im-features--simple li { flex-wrap: wrap; }
.im-features--simple li strong { margin-bottom: 0; }

.im-card--text p { color: var(--im-muted); font-size: 16px; }
.im-card--text h3 a { color: var(--im-ink); text-decoration: none; }
.im-card--text h3 a:hover { color: var(--im-accent); }

.im-about-box {
	background: var(--wp--preset--color--accent-tint, #EAEFF7);
	border-radius: 20px;
	padding: 28px;
	margin-block-start: 32px !important;
}
.im-about-box > * { margin: 0 0 10px !important; }
.im-about-box > *:last-child { margin-bottom: 0 !important; }

.im-people { gap: 24px !important; }
.im-person {
	background: #FFFFFF;
	border: 1px solid var(--im-line);
	border-radius: 24px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	max-width: 520px;
}
.im-person > * { margin: 0 !important; }
.im-person-img img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: top; display: block; }
.im-person-body { padding: 28px; }
.im-person-body > * { margin: 0 0 12px !important; }
.im-person-body p:not(.im-eyebrow) { color: var(--im-muted); font-size: 16px; }

.im-partner-logo img { height: 56px; width: auto; max-width: 220px; object-fit: contain; display: block; }

.im-prose-narrow h2 { font-size: var(--wp--preset--font-size--x-large); margin-block: 48px 12px !important; }
.im-prose-narrow h2:first-child { margin-top: 0 !important; }
.im-prose-narrow h3 { margin-block: 28px 8px !important; font-size: 19px; }

/* Nyheder query grid */
.im-section .wp-block-post-template.is-layout-grid { gap: 20px; }
.im-section .wp-block-post-template .im-card h3 a { color: var(--im-ink); text-decoration: none; }
.im-section .wp-block-post-template .im-card h3 a:hover { color: var(--im-accent); }
.im-card .wp-block-post-excerpt__more-text { display: none; }

/* Contact form (Contact Form 7) */
.im-form-card { background: #FFFFFF; border: 1px solid var(--im-line); border-radius: 24px; padding: clamp(24px, 3vw, 40px); }
.im-form-card h2 { font-size: var(--wp--preset--font-size--x-large); margin: 0 0 20px !important; }
.wpcf7 p { margin: 0 0 16px; }
.wpcf7 label { font-weight: 600; font-size: 15px; display: block; }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	width: 100%;
	box-sizing: border-box;
	margin-top: 6px;
	padding: 12px 14px;
	border: 1.5px solid #C8D0DE;
	border-radius: 12px;
	font: inherit;
	font-weight: 400;
	background: #FFFFFF;
	color: var(--im-ink);
}
.wpcf7 input:focus, .wpcf7 textarea:focus { outline: 2px solid var(--im-accent); outline-offset: 1px; border-color: var(--im-accent); }
.wpcf7 textarea { min-height: 160px; }
.wpcf7 input[type="submit"] {
	background: var(--im-accent);
	color: #FFFFFF;
	border: 0;
	border-radius: 999px;
	padding: 16px 28px;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { background: var(--wp--preset--color--accent-dark, #112D5E); }

.im-prose h2 { font-size: clamp(26px, 2.6vw, 34px); hyphens: auto; -webkit-hyphens: auto; }
.wp-block-quote.im-quote p + p { margin-top: 16px; }

/* ---------- Screenshots & diagrams ---------- */

.im-screenshot { margin: 0; }
.im-screenshot img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 14px;
	border: 1px solid var(--im-line);
	box-shadow: 0 1px 2px rgba(14, 27, 51, 0.06), 0 24px 48px -24px rgba(14, 27, 51, 0.28);
	background: #FFFFFF;
}
.im-diagram { margin: 40px auto 0; max-width: 1000px; }
.im-diagram img { width: 100%; height: auto; display: block; }
.im-features--one { grid-template-columns: 1fr; gap: 22px; margin-top: 28px !important; }
.im-grid-flush { margin-block-start: 0 !important; }
.im-card .wp-block-buttons { margin-top: auto !important; padding-top: 8px; }
