/* =========================================================================
   Liechtenstein — hovedstylesheet
   -------------------------------------------------------------------------
   Palet:  marineblå (ink), papir (paper), messing (brass)
   Skrift: Playfair Display (display) + Instrument Sans (brød)
   Rytme:  4px-baseret spacing, fluid typografi via clamp()
   ========================================================================= */

/* ---------- Fonte (selvhostede, variable) ------------------------------- */

@font-face {
	font-family: "Playfair Display";
	src: url("../fonts/playfair-display-normal.woff2") format("woff2-variations");
	font-weight: 400 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Playfair Display";
	src: url("../fonts/playfair-display-italic.woff2") format("woff2-variations");
	font-weight: 400 700;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "Instrument Sans";
	src: url("../fonts/instrument-sans-normal.woff2") format("woff2-variations");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Instrument Sans";
	src: url("../fonts/instrument-sans-italic.woff2") format("woff2-variations");
	font-weight: 400 700;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "Mrs Saint Delafield";
	src: url("../fonts/mrs-saint-delafield-normal.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* ---------- Tokens ------------------------------------------------------ */

:root {
	/* Farver */
	--ink-900: #030c16;
	--ink-800: #071524;
	--ink-700: #0b1e30;
	--ink-600: #12293e;
	--ink-500: #1b3448;
	--line-dark: rgba(211, 164, 107, 0.22);
	--line-dark-soft: rgba(244, 241, 234, 0.12);

	--paper: #f4f1ea;
	--paper-raised: #fbf9f4;
	--paper-sunk: #eae5da;
	--line-light: #e0dacd;

	--brass: #a47c4c;
	--brass-solid: #966e3a;   /* fyldte knapper — AA med hvid tekst */
	--brass-lit: #d3a46b;     /* messing på mørk baggrund */
	--brass-deep: #8a6236;    /* messing på papir */
	--brass-glow: rgba(211, 164, 107, 0.16);

	--text-on-dark: #f2efe8;
	--text-on-dark-dim: #b9c2cc;
	--text-on-light: #14202c;
	--text-on-light-dim: #55606b;

	/* Skrift */
	--font-display: "Playfair Display", "Iowan Old Style", Georgia, "Times New Roman", serif;
	--font-body: "Instrument Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
	--font-script: "Mrs Saint Delafield", "Snell Roundhand", cursive;

	--fs-hero: clamp(2.6rem, 1.35rem + 5vw, 5rem);
	--fs-h1: clamp(2.2rem, 1.5rem + 3vw, 3.6rem);
	--fs-h2: clamp(1.9rem, 1.35rem + 2.3vw, 3rem);
	--fs-h3: clamp(1.3rem, 1.15rem + 0.6vw, 1.6rem);
	--fs-h4: clamp(1.1rem, 1.03rem + 0.3vw, 1.25rem);
	--fs-body: 1.0625rem;
	--fs-body-lg: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
	--fs-small: 0.875rem;
	--fs-xs: 0.75rem;

	/* Mål */
	--container: 1320px;
	--container-narrow: 760px;
	--gutter: clamp(1.25rem, 4vw, 3.5rem);
	--section-y: clamp(4.5rem, 8vw, 8rem);
	--radius: 2px;
	--header-h: 84px;

	/* Bevægelse */
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--dur: 0.42s;
}

/* ---------- Reset ------------------------------------------------------- */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 1.5rem);
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--text-on-light);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: 1.65;
	font-synthesis-weight: none;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

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

h1, h2, h3, h4, h5, h6 {
	margin: 0;
	font-family: var(--font-display);
	font-weight: 500;
	line-height: 1.14;
	letter-spacing: -0.012em;
	text-wrap: balance;
}

p, ul, ol, figure, blockquote, table { margin: 0; }

a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.22em; }

button, input, select, textarea { font: inherit; color: inherit; }

::selection { background: var(--brass); color: #fff; }

:focus-visible {
	outline: 2px solid var(--brass-lit);
	outline-offset: 3px;
	border-radius: 1px;
}

.ml-skip {
	position: absolute;
	left: 1rem;
	top: -100px;
	z-index: 999;
	padding: 0.85rem 1.4rem;
	background: var(--ink-800);
	color: var(--text-on-dark);
	font-size: var(--fs-small);
	font-weight: 600;
	transition: top 0.2s var(--ease);
}
.ml-skip:focus { top: 1rem; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* ---------- Layout ------------------------------------------------------ */

.ml-container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.ml-container--narrow { max-width: calc(var(--container-narrow) + var(--gutter) * 2); }

.ml-section { padding-block: var(--section-y); position: relative; }
.ml-section--tight { padding-block: clamp(3rem, 5vw, 4.5rem); }

.ml-section--dark {
	background: var(--ink-800);
	color: var(--text-on-dark);
}
.ml-section--paper { background: var(--paper); }
.ml-section--raised {
	background: var(--paper-raised);
	border-top: 1px solid var(--line-light);
}

/* Asymmetrisk grid: overskriftsspalte + indhold */
.ml-split {
	display: grid;
	gap: clamp(2.5rem, 5vw, 4rem);
	align-items: start;
}
@media (min-width: 62rem) {
	.ml-split { grid-template-columns: minmax(15rem, 3.4fr) 8.6fr; }
	.ml-split--wide-head { grid-template-columns: minmax(16rem, 4fr) 8fr; }
}

/* align-content: start er vigtig. Uden den fordeler grid'et overskydende
   højde ud i raekkerne, og fx et billede strækkes til et tomt farvefelt. */
.ml-stack { display: grid; gap: 1.25rem; align-content: start; }
.ml-stack--sm { gap: 0.6rem; }
.ml-stack--lg { gap: 2rem; }

/* ---------- Typografi --------------------------------------------------- */

.ml-eyebrow {
	margin: 0 0 1.1rem;
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--brass-deep);
}
.ml-eyebrow--light { color: var(--brass-lit); }
.ml-eyebrow--muted { color: var(--text-on-light-dim); }

.ml-title { font-size: var(--fs-h2); }
.ml-title--sm { font-size: var(--fs-h3); }

.ml-lead {
	font-size: var(--fs-body-lg);
	line-height: 1.6;
	color: var(--text-on-light-dim);
	max-width: 46ch;
}
.ml-section--dark .ml-lead { color: var(--text-on-dark-dim); }

/* Messing-streg som skiller under overskrifter */
.ml-rule {
	width: 2.75rem;
	height: 2px;
	margin: 1.5rem 0 0;
	background: var(--brass);
	border: 0;
}
.ml-section--dark .ml-rule { background: var(--brass-lit); }

/* ---------- Knapper ----------------------------------------------------- */

.ml-btn {
	--btn-bg: transparent;
	--btn-fg: currentColor;
	--btn-bd: currentColor;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.9rem;
	padding: 1rem 1.6rem;
	min-height: 3.25rem;
	background: var(--btn-bg);
	color: var(--btn-fg);
	border: 1px solid var(--btn-bd);
	border-radius: var(--radius);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	position: relative;
	overflow: hidden;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease),
		border-color var(--dur) var(--ease), transform 0.25s var(--ease);
}
.ml-btn__icon { width: 1.1rem; height: 1.1rem; flex: none; transition: transform 0.35s var(--ease-out); }
.ml-btn:hover .ml-btn__icon { transform: translateX(4px); }
.ml-btn:active { transform: translateY(1px); }

.ml-btn--gold {
	--btn-bg: var(--brass-solid);
	--btn-fg: #fff;
	--btn-bd: var(--brass-solid);
}
.ml-btn--gold:hover { --btn-bg: #7f5c2f; --btn-bd: #7f5c2f; }

.ml-btn--ghost-light {
	--btn-fg: var(--text-on-dark);
	--btn-bd: rgba(242, 239, 232, 0.32);
}
.ml-btn--ghost-light:hover { --btn-bd: var(--brass-lit); --btn-bg: rgba(211, 164, 107, 0.1); }

.ml-btn--ghost-dark {
	--btn-fg: var(--text-on-light);
	--btn-bd: rgba(20, 32, 44, 0.24);
}
.ml-btn--ghost-dark:hover { --btn-bd: var(--brass); --btn-bg: rgba(164, 124, 76, 0.07); }

/* Tekstlink med pil */
.ml-link {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--brass-deep);
	text-decoration: none;
}
.ml-link svg { width: 1.05rem; height: 1.05rem; transition: transform 0.35s var(--ease-out); }
.ml-link:hover svg { transform: translateX(5px); }
.ml-link:hover { color: var(--text-on-light); }
.ml-section--dark .ml-link, .ml-link--light { color: var(--brass-lit); }
.ml-section--dark .ml-link:hover, .ml-link--light:hover { color: #fff; }

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

.ml-header {
	position: fixed;
	inset-block-start: 0;
	inset-inline: 0;
	z-index: 100;
	transition: background-color 0.4s var(--ease), box-shadow 0.4s var(--ease),
		border-color 0.4s var(--ease), padding 0.4s var(--ease);
	border-bottom: 1px solid transparent;
	padding-block: 0.75rem;
}
.ml-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: 3.5rem;
}
body:not(.ml-front) .ml-header,
.ml-header.is-stuck {
	background: rgba(7, 21, 36, 0.94);
	backdrop-filter: saturate(140%) blur(14px);
	border-bottom-color: var(--line-dark);
}
.ml-header.is-stuck { padding-block: 0.35rem; }

/* Sider uden mørk hero får en spacer, så indhold ikke ligger under headeren */
.ml-header-spacer { height: var(--header-h); }

.ml-brand {
	display: inline-grid;
	gap: 0.4rem;
	text-decoration: none;
	color: var(--text-on-dark);
	line-height: 1;
}
.ml-brand__name {
	font-family: var(--font-display);
	font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.75rem);
	font-weight: 400;
	letter-spacing: 0.005em;
}
.ml-brand__tag {
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--text-on-dark-dim);
}
.ml-brand:hover .ml-brand__name { color: var(--brass-lit); }
.ml-brand__name, .ml-brand__tag { transition: color 0.3s var(--ease); }

.ml-nav { display: none; }
@media (min-width: 64rem) { .ml-nav { display: block; } }

.ml-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2.2vw, 2.1rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.ml-nav__link {
	display: inline-block;
	padding-block: 0.4rem;
	font-size: 0.9rem;
	color: var(--text-on-dark);
	text-decoration: none;
	position: relative;
}
.ml-nav__link span { position: relative; }
.ml-nav__link span::after {
	content: "";
	position: absolute;
	left: 0; right: 100%;
	bottom: -3px;
	height: 1px;
	background: var(--brass-lit);
	transition: right 0.4s var(--ease-out);
}
.ml-nav__link:hover span::after,
.ml-nav__item.is-current .ml-nav__link span::after { right: 0; }
.ml-nav__item.is-current .ml-nav__link { color: var(--brass-lit); }

.ml-header__cta { display: none; }
@media (min-width: 64rem) { .ml-header__cta { display: inline-flex; padding: 0.85rem 1.35rem; min-height: 2.9rem; } }

/* Mobilknap */
.ml-burger {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.6rem 0.75rem;
	background: none;
	border: 1px solid rgba(242, 239, 232, 0.25);
	border-radius: var(--radius);
	color: var(--text-on-dark);
	cursor: pointer;
	font-size: var(--fs-xs);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-weight: 600;
}
.ml-burger svg { width: 1.15rem; height: 1.15rem; }
@media (min-width: 64rem) { .ml-burger { display: none; } }

/* Mobilmenu */
.ml-drawer {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: var(--ink-900);
	color: var(--text-on-dark);
	display: grid;
	grid-template-rows: auto 1fr auto;
	padding: 1.25rem var(--gutter) 2.5rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity 0.35s var(--ease), transform 0.35s var(--ease), visibility 0.35s;
	overflow-y: auto;
}
.ml-drawer.is-open { opacity: 1; visibility: visible; transform: none; }
.ml-drawer__top { display: flex; align-items: center; justify-content: space-between; min-height: 3.5rem; }
.ml-drawer__nav .ml-nav__list {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	margin-block: 2rem;
}
.ml-drawer__nav .ml-nav__item { border-bottom: 1px solid var(--line-dark-soft); }
.ml-drawer__nav .ml-nav__link {
	display: block;
	padding-block: 1.15rem;
	font-family: var(--font-display);
	font-size: 1.65rem;
	letter-spacing: -0.01em;
}
.ml-drawer__nav .ml-nav__link span::after { display: none; }
.ml-drawer__foot { display: grid; gap: 1rem; }
.ml-drawer__meta { font-size: var(--fs-small); color: var(--text-on-dark-dim); }
.ml-drawer__meta a { color: var(--brass-lit); }
body.ml-locked { overflow: hidden; }
html.ml-lead-locked,
body.ml-lead-locked { overflow: hidden; }

/* ---------- Hero -------------------------------------------------------- */

.ml-hero {
	position: relative;
	background: var(--ink-800);
	color: var(--text-on-dark);
	overflow: hidden;
	isolation: isolate;
	padding-block: calc(var(--header-h) + clamp(2.5rem, 6vw, 5rem)) clamp(3rem, 6vw, 5.5rem);
	min-height: min(92vh, 52rem);
	display: flex;
	align-items: center;
}

/* Portrættet */
.ml-hero__media {
	position: absolute;
	inset: 0 0 0 auto;
	width: min(62%, 60rem);
	z-index: -2;
}
.ml-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 22%;
}
.ml-hero__scrim {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(100deg, var(--ink-800) 0%, var(--ink-800) 30%, rgba(7, 21, 36, 0.86) 44%, rgba(7, 21, 36, 0.28) 62%, rgba(7, 21, 36, 0.42) 100%),
		linear-gradient(to top, rgba(3, 12, 22, 0.75) 0%, transparent 42%);
}
@media (max-width: 63.9375rem) {
	.ml-hero__media { width: 100%; opacity: 0.5; }
	.ml-hero__scrim {
		background:
			linear-gradient(180deg, rgba(7, 21, 36, 0.72) 0%, rgba(7, 21, 36, 0.9) 55%, var(--ink-800) 100%);
	}
}

.ml-hero__inner { position: relative; width: 100%; }
.ml-hero__body { max-width: min(38rem, 92%); }

.ml-hero__title {
	font-size: var(--fs-hero);
	font-weight: 400;
	line-height: 1.03;
	letter-spacing: -0.02em;
	margin-bottom: 1.6rem;
}
.ml-hero__title .l1 { display: block; color: var(--text-on-dark); }
.ml-hero__title .l2 { display: block; color: var(--brass-lit); }

.ml-hero__text {
	font-size: var(--fs-body-lg);
	line-height: 1.62;
	color: #cdd5dd;
	max-width: 34ch;
	margin-bottom: 2.4rem;
}

.ml-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	margin-bottom: clamp(2.75rem, 5vw, 4rem);
}
@media (min-width: 64rem) {
	.ml-hero__actions .ml-btn { padding-inline: 1.25rem; }
}

/* Kerneværdier */
.ml-pillars {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: 0;
	max-width: 44rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.ml-pillar {
	padding: 0 1.5rem;
	border-left: 1px solid var(--line-dark-soft);
}
.ml-pillar:first-child { padding-left: 0; border-left: 0; }
.ml-pillar__head {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin-bottom: 0.5rem;
}
.ml-pillar__head svg { width: 1.35rem; height: 1.35rem; color: var(--brass-lit); flex: none; }
.ml-pillar__title { font-family: var(--font-body); font-size: 0.9375rem; font-weight: 600; letter-spacing: 0; }
.ml-pillar__text { font-size: var(--fs-small); line-height: 1.5; color: var(--text-on-dark-dim); }

/* Dekorative messinglinjer + monogram */
.ml-flourish {
	position: absolute;
	color: var(--brass);
	pointer-events: none;
	z-index: -1;
}
.ml-flourish--hero {
	inset: 0 0 0 auto;
	width: min(48%, 44rem);
	height: 100%;
	opacity: 0.65;
}
.ml-flourish--band { right: 0; bottom: 0; width: 22rem; opacity: 0.5; }

.ml-monogram {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	user-select: none;
}
.ml-monogram img { display: block; width: 1.65em; height: auto; }

.ml-hero__seal {
	position: absolute;
	right: clamp(1.5rem, 5vw, 5rem);
	bottom: clamp(1.5rem, 4vw, 3.5rem);
	width: clamp(4.5rem, 7vw, 6.5rem);
	aspect-ratio: 1;
	border: 1px solid var(--line-dark);
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: rgba(7, 21, 36, 0.35);
	backdrop-filter: blur(2px);
	font-size: clamp(1.35rem, 2vw, 1.85rem);
}
@media (max-width: 47.9375rem) { .ml-hero__seal { display: none; } }

/* ---------- Kort -------------------------------------------------------- */

.ml-cards {
	display: grid;
	gap: clamp(1.25rem, 2vw, 1.75rem);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}
.ml-cards--3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr)); }
@media (min-width: 48rem) {
	.ml-cards--3 { grid-template-columns: repeat(3, 1fr); }
}

.ml-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--paper-raised);
	border: 1px solid var(--line-light);
	border-radius: var(--radius);
	overflow: hidden;
	transition: transform 0.45s var(--ease-out), box-shadow 0.45s var(--ease),
		border-color 0.45s var(--ease);
}
.ml-card:hover {
	transform: translateY(-4px);
	border-color: rgba(164, 124, 76, 0.45);
	box-shadow: 0 1px 1px rgba(7, 21, 36, 0.04), 0 10px 28px -12px rgba(7, 21, 36, 0.28);
}

.ml-card__media {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--ink-700);
}
.ml-card__img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--ease-out);
}
.ml-card:hover .ml-card__img { transform: scale(1.045); }
.ml-card__placeholder {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background:
		radial-gradient(120% 120% at 70% 10%, rgba(211, 164, 107, 0.14), transparent 60%),
		var(--ink-700);
	font-size: 2rem;
}
.ml-card__kicker {
	position: absolute;
	left: 0.85rem;
	top: 0.85rem;
	padding: 0.3rem 0.6rem;
	background: rgba(7, 21, 36, 0.82);
	color: var(--brass-lit);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	border-radius: var(--radius);
	backdrop-filter: blur(3px);
}

.ml-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	flex: 1;
	padding: clamp(1.15rem, 2vw, 1.5rem);
}
.ml-card__title {
	font-size: var(--fs-h4);
	font-weight: 500;
	letter-spacing: -0.005em;
	line-height: 1.25;
}
.ml-card__title a { text-decoration: none; }
.ml-card__title a::after { content: ""; position: absolute; inset: 0; }
.ml-card__text {
	font-size: var(--fs-small);
	line-height: 1.6;
	color: var(--text-on-light-dim);
	margin-bottom: auto;
}
.ml-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 0.9rem;
	margin-top: 0.4rem;
	border-top: 1px solid var(--line-light);
}
.ml-card__meta {
	font-size: 0.6875rem;
	color: var(--text-on-light-dim);
	letter-spacing: 0.02em;
	text-align: right;
	white-space: nowrap;
}
.ml-card .ml-link { position: relative; z-index: 1; white-space: nowrap; }

/* Kort på mørk baggrund */
.ml-section--dark .ml-card {
	background: var(--ink-700);
	border-color: var(--line-dark);
}
.ml-section--dark .ml-card__title { color: var(--text-on-dark); }
.ml-section--dark .ml-card__text { color: var(--text-on-dark-dim); }
.ml-section--dark .ml-card__foot { border-top-color: var(--line-dark); }
.ml-section--dark .ml-card__meta { color: var(--text-on-dark-dim); }

/* ---------- Badges ------------------------------------------------------ */

.ml-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ml-badges__item a {
	display: inline-block;
	padding: 0.25rem 0.65rem;
	border: 1px solid var(--line-light);
	border-radius: 999px;
	font-size: var(--fs-xs);
	letter-spacing: 0.03em;
	color: var(--text-on-light-dim);
	text-decoration: none;
	transition: border-color 0.3s var(--ease), color 0.3s var(--ease), background-color 0.3s var(--ease);
	position: relative;
	z-index: 2;
}
.ml-badges__item a:hover { border-color: var(--brass); color: var(--brass-deep); background: rgba(164, 124, 76, 0.06); }
.ml-section--dark .ml-badges__item a { border-color: var(--line-dark); color: var(--text-on-dark-dim); }
.ml-section--dark .ml-badges__item a:hover { border-color: var(--brass-lit); color: var(--brass-lit); }

/* ---------- Temabånd ---------------------------------------------------- */

.ml-themes {
	display: grid;
	gap: clamp(2rem, 3vw, 2.5rem) 0;
	grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}
@media (min-width: 75rem) { .ml-themes { grid-template-columns: repeat(6, 1fr); } }

.ml-theme {
	padding-inline: clamp(0.75rem, 1.4vw, 1.35rem);
	border-left: 1px solid var(--line-dark-soft);
	text-align: center;
}
.ml-theme:first-child { border-left: 0; }
@media (max-width: 74.9375rem) {
	.ml-theme:nth-child(3n + 1) { border-left: 0; }
}
@media (max-width: 47.9375rem) {
	.ml-theme:nth-child(odd) { border-left: 0; }
	.ml-theme:nth-child(3n + 1) { border-left: 1px solid var(--line-dark-soft); }
	.ml-theme:nth-child(1) { border-left: 0; }
}

.ml-theme__link { display: block; text-decoration: none; color: inherit; }
.ml-theme__icon {
	width: 2rem; height: 2rem;
	margin: 0 auto 1.1rem;
	color: var(--brass-lit);
	transition: transform 0.45s var(--ease-out), color 0.3s var(--ease);
}
.ml-theme__link:hover .ml-theme__icon { transform: translateY(-3px); color: #e6c495; }
.ml-theme__title {
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.3;
	margin-bottom: 0.6rem;
	color: var(--text-on-dark);
}
.ml-theme__text { font-size: var(--fs-small); line-height: 1.5; color: var(--text-on-dark-dim); }

/* ---------- Om-sektion -------------------------------------------------- */

.ml-about { display: grid; gap: clamp(2rem, 4vw, 3rem); align-items: stretch; }
@media (min-width: 62rem) {
	.ml-about { grid-template-columns: 3.6fr 8.4fr; }
	.ml-about__panels { display: grid; grid-template-columns: 1.55fr 1fr; }
}

.ml-about__intro .ml-eyebrow { margin-bottom: 0.35rem; }
.ml-about__name {
	font-size: clamp(1.7rem, 1.2rem + 1.7vw, 2.35rem);
	margin-bottom: 1.5rem;
}
.ml-about__text p { margin-bottom: 1.1rem; color: var(--text-on-light-dim); }
.ml-about__points {
	display: grid;
	gap: 0.75rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
}
.ml-about__points li {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	font-size: var(--fs-small);
	line-height: 1.5;
}
.ml-about__points svg { width: 1.15rem; height: 1.15rem; flex: none; margin-top: 0.15rem; color: var(--brass); }

.ml-about__media { position: relative; min-height: 18rem; background: var(--ink-700); overflow: hidden; }
.ml-about__media img { width: 100%; height: 100%; object-fit: cover; }

.ml-quote {
	position: relative;
	background: var(--ink-800);
	color: var(--text-on-dark);
	padding: clamp(1.75rem, 3vw, 2.75rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1.5rem;
	overflow: hidden;
}
.ml-quote__mark { width: 2rem; height: 2rem; color: var(--brass-lit); opacity: 0.75; }
.ml-quote__text {
	font-family: var(--font-display);
	font-size: clamp(1.1rem, 0.95rem + 0.6vw, 1.4rem);
	line-height: 1.42;
	font-weight: 400;
}
.ml-quote__sign {
	font-family: var(--font-script);
	font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem);
	line-height: 1;
	color: var(--brass-lit);
	opacity: 0.9;
}

/* ---------- Redaktionel liste (Viden på forsiden) ----------------------- */

.ml-insights { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
@media (min-width: 62rem) {
	.ml-insights { grid-template-columns: 1.35fr 1fr; align-items: start; }
}

.ml-lead-article {
	display: grid;
	gap: 1.35rem;
	text-decoration: none;
	color: inherit;
	position: relative;
}
.ml-lead-article__media {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--radius);
	background: var(--ink-700);
}
.ml-lead-article__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ease-out); }
.ml-lead-article:hover .ml-lead-article__media img { transform: scale(1.04); }
.ml-lead-article__title {
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem);
	line-height: 1.2;
}
.ml-lead-article:hover .ml-lead-article__title { color: var(--brass-deep); }
.ml-lead-article__title { transition: color 0.3s var(--ease); }
.ml-lead-article__text { color: var(--text-on-light-dim); max-width: 52ch; }

.ml-article-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.ml-article-list__item { border-top: 1px solid var(--line-light); }
.ml-article-list__item:last-child { border-bottom: 1px solid var(--line-light); }
.ml-article-list__link {
	display: grid;
	gap: 0.5rem;
	padding-block: 1.35rem;
	text-decoration: none;
	color: inherit;
	transition: padding-inline 0.35s var(--ease);
}
.ml-article-list__link:hover { padding-inline: 0.5rem 0; }
.ml-article-list__meta {
	font-size: var(--fs-xs);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--brass-deep);
	font-weight: 600;
}
.ml-article-list__title { font-size: var(--fs-h4); line-height: 1.3; }
.ml-article-list__link:hover .ml-article-list__title { color: var(--brass-deep); }

/* ---------- Kontaktsektion ---------------------------------------------- */

.ml-contact { display: grid; gap: clamp(2.25rem, 4vw, 3.5rem); }
@media (min-width: 62rem) {
	.ml-contact { grid-template-columns: 3.5fr 5.5fr 3fr; align-items: start; }
}

.ml-contact__aside {
	display: grid;
	gap: 1.75rem;
	align-content: start;
}
@media (min-width: 62rem) {
	.ml-contact__aside {
		padding-left: clamp(1.5rem, 3vw, 2.75rem);
		border-left: 1px solid var(--line-dark);
	}
}
.ml-contact__item { display: grid; gap: 0.45rem; }
.ml-contact__item > svg { width: 1.55rem; height: 1.55rem; color: var(--brass-lit); margin-bottom: 0.35rem; }
.ml-contact__label { font-size: var(--fs-small); color: var(--brass-lit); }
.ml-contact__value { font-size: 0.8125rem; color: var(--text-on-dark); text-decoration: none; overflow-wrap: anywhere; }
.ml-contact__value:hover { color: var(--brass-lit); }

/* ---------- Formular ---------------------------------------------------- */

.ml-form { display: grid; gap: 1.5rem; }
.ml-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.ml-form__grid {
	display: grid;
	gap: 0.9rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
}
.ml-field--full { grid-column: 1 / -1; }

.ml-field { display: grid; gap: 0.4rem; position: relative; }
.ml-field__label {
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-on-dark-dim);
}
.ml-field__req { color: var(--brass-lit); }

.ml-form input[type="text"],
.ml-form input[type="email"],
.ml-form input[type="tel"],
.ml-form textarea,
.ml-form select {
	width: 100%;
	padding: 0.85rem 1rem;
	background: rgba(255, 255, 255, 0.035);
	border: 1px solid var(--line-dark-soft);
	border-radius: var(--radius);
	color: var(--text-on-dark);
	font-size: 0.9375rem;
	transition: border-color 0.3s var(--ease), background-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
	appearance: none;
}
.ml-form textarea { resize: vertical; min-height: 8.5rem; line-height: 1.6; }
.ml-form ::placeholder { color: rgba(185, 194, 204, 0.6); }
.ml-form input:hover, .ml-form textarea:hover, .ml-form select:hover { border-color: rgba(211, 164, 107, 0.35); }
.ml-form input:focus, .ml-form textarea:focus, .ml-form select:focus {
	outline: none;
	border-color: var(--brass-lit);
	background: rgba(255, 255, 255, 0.06);
	box-shadow: 0 0 0 3px var(--brass-glow);
}
.ml-form [aria-invalid="true"] { border-color: #d98b7a; }

.ml-select { position: relative; }
.ml-select__chevron {
	position: absolute;
	right: 1rem; top: 50%;
	width: 1rem; height: 1rem;
	transform: translateY(-50%);
	color: var(--brass-lit);
	pointer-events: none;
}
.ml-form select option { background: var(--ink-800); color: var(--text-on-dark); }

.ml-field__hint { font-size: var(--fs-xs); color: var(--text-on-dark-dim); margin-top: 0.15rem; }
.ml-field__error { font-size: var(--fs-xs); color: #efa997; margin-top: 0.15rem; }

.ml-check { display: flex; align-items: flex-start; gap: 0.7rem; cursor: pointer; }
.ml-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ml-check__box {
	width: 1.2rem; height: 1.2rem;
	flex: none;
	margin-top: 0.15rem;
	border: 1px solid var(--line-dark-soft);
	border-radius: var(--radius);
	display: grid;
	place-items: center;
	transition: border-color 0.25s var(--ease), background-color 0.25s var(--ease);
}
.ml-check__tick { width: 0.9rem; height: 0.9rem; color: var(--ink-900); opacity: 0; transform: scale(0.6); transition: all 0.25s var(--ease-out); }
.ml-check input:checked + .ml-check__box { background: var(--brass-lit); border-color: var(--brass-lit); }
.ml-check input:checked + .ml-check__box .ml-check__tick { opacity: 1; transform: none; }
.ml-check input:focus-visible + .ml-check__box { outline: 2px solid var(--brass-lit); outline-offset: 2px; }
.ml-check__text { font-size: var(--fs-small); line-height: 1.5; color: var(--text-on-dark-dim); }
.ml-check__text a { color: var(--brass-lit); }

.ml-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; }
.ml-form__note { font-size: var(--fs-small); color: var(--text-on-dark-dim); }

.ml-form__status { font-size: var(--fs-small); }
.ml-form__status:empty { display: none; }
.ml-form__status[data-state="ok"] {
	padding: 1rem 1.15rem;
	border-left: 2px solid var(--brass-lit);
	background: rgba(211, 164, 107, 0.1);
	color: var(--text-on-dark);
}
.ml-form__status[data-state="error"] {
	padding: 1rem 1.15rem;
	border-left: 2px solid #d98b7a;
	background: rgba(217, 139, 122, 0.12);
	color: #f4d9d2;
}
.ml-form.is-sending { opacity: 0.65; pointer-events: none; }

/* Formular på lys baggrund */
.ml-form--light .ml-field__label { color: var(--text-on-light-dim); }
/* Basisreglen bruger attribut-selektorer og har derfor højere specificitet.
   Den lyse variant skal matche den, ellers arver felterne den mørke ramme. */
.ml-form--light input[type="text"],
.ml-form--light input[type="email"],
.ml-form--light input[type="tel"],
.ml-form--light textarea,
.ml-form--light select {
	background: #fff;
	border-color: var(--line-light);
	color: var(--text-on-light);
}
.ml-form--light ::placeholder { color: #9aa2ab; }
.ml-form--light input[type="text"]:focus,
.ml-form--light input[type="email"]:focus,
.ml-form--light input[type="tel"]:focus,
.ml-form--light textarea:focus,
.ml-form--light select:focus {
	border-color: var(--brass);
	box-shadow: 0 0 0 3px rgba(164, 124, 76, 0.14);
}
.ml-form--light .ml-check__box { border-color: var(--line-light); background: #fff; }
.ml-form--light .ml-check input:checked + .ml-check__box { background: var(--brass-solid); border-color: var(--brass-solid); }
.ml-form--light .ml-check input:focus-visible + .ml-check__box { outline-color: var(--brass-deep); }
.ml-form--light .ml-check__tick { color: #fff; }
.ml-form--light .ml-check__text, .ml-form--light .ml-field__hint, .ml-form--light .ml-form__note { color: var(--text-on-light-dim); }
.ml-form--light .ml-check__text a { color: var(--brass-deep); }
.ml-form--light .ml-select__chevron { color: var(--brass); }

/* ---------- Kontakt- og leadflows -------------------------------------- */

.ml-contact-page {
	display: grid;
	gap: clamp(3rem, 7vw, 6.5rem);
	align-items: start;
}
.ml-contact-page__form { display: grid; gap: 1.5rem; min-width: 0; }
.ml-contact-page__form .ml-form__status { margin-bottom: 0.25rem; }
.ml-contact-page .ml-contact__aside { min-width: 0; }
.ml-contact-page .ml-contact__aside > .ml-title--sm { margin-bottom: 0.75rem; }
.ml-contact-copy { max-width: 48rem; }
.ml-contact-copy .ml-prose { font-size: var(--fs-body); }

@media (min-width: 62rem) {
	.ml-contact-page { grid-template-columns: minmax(0, 7fr) minmax(17rem, 4fr); }
}
@media (max-width: 61.9375rem) {
	.ml-contact-page .ml-contact__aside {
		padding-top: 2.5rem;
		border-top: 1px solid var(--line-light);
	}
}

.ml-contact-prompt {
	display: grid;
	gap: clamp(2.5rem, 7vw, 6rem);
	align-items: end;
}
.ml-contact-prompt .ml-lead { margin-top: 1.5rem; }
.ml-contact-prompt__action { display: grid; justify-items: start; gap: 1rem; }
.ml-contact-prompt__action > p { color: var(--text-on-dark-dim); font-size: var(--fs-small); }
.ml-contact-prompt__direct a { color: var(--brass-lit); }
@media (min-width: 48rem) {
	.ml-contact-prompt { grid-template-columns: minmax(0, 7fr) minmax(18rem, 4fr); }
}

.ml-lead-dialog {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: grid;
	place-items: center;
	padding: clamp(0.75rem, 3vw, 2rem);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.25s var(--ease), visibility 0.25s var(--ease);
}
.ml-lead-dialog.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.ml-lead-dialog__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(2, 9, 16, 0.82);
	backdrop-filter: blur(7px);
}
.ml-lead-dialog__panel {
	position: relative;
	width: min(100%, 61rem);
	max-height: min(92dvh, 54rem);
	overflow: auto;
	overscroll-behavior: contain;
	padding: clamp(1.5rem, 4vw, 3.5rem);
	background: var(--ink-800);
	color: var(--text-on-dark);
	border: 1px solid rgba(211, 164, 107, 0.25);
	border-radius: 3px;
	box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.45);
	transform: translateY(1rem) scale(0.99);
	transition: transform 0.32s var(--ease-out);
}
.ml-lead-dialog__panel--light {
	background: var(--paper);
	color: var(--text-on-light);
	border-color: var(--line-light);
}
.ml-lead-dialog.is-open .ml-lead-dialog__panel { transform: none; }
.ml-lead-dialog__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid var(--line-dark-soft);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.03);
	color: var(--text-on-dark);
	cursor: pointer;
}
.ml-lead-dialog__close:hover { border-color: var(--brass-lit); color: var(--brass-lit); }
.ml-lead-dialog__panel--light .ml-lead-dialog__close {
	border-color: var(--line-light);
	background: var(--paper-raised);
	color: var(--text-on-light);
}
.ml-lead-dialog__panel--light .ml-lead-dialog__close:hover { border-color: var(--brass); color: var(--brass-deep); }
.ml-lead-dialog__close svg { width: 1.1rem; height: 1.1rem; }
.ml-lead-dialog__header { max-width: 43rem; padding-right: 3.25rem; }
.ml-lead-dialog__title { font-size: clamp(1.85rem, 4vw, 3.15rem); }
.ml-lead-dialog__header > p:last-child { margin-top: 0.85rem; color: var(--text-on-dark-dim); }
.ml-lead-dialog__panel--light .ml-lead-dialog__header > p:last-child { color: var(--text-on-light-dim); }
.ml-lead-dialog__form { margin-top: clamp(1.75rem, 4vw, 3rem); }
.ml-lead-dialog__panel--light :focus-visible { outline-color: var(--brass-deep); }

.ml-lead-progress {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	max-width: 34rem;
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
	padding: 0;
	list-style: none;
}
.ml-lead-progress li {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.55rem;
	color: var(--text-on-dark-dim);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}
.ml-lead-progress li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 2rem;
	right: 0.65rem;
	height: 1px;
	background: var(--line-dark-soft);
	z-index: -1;
}
.ml-lead-progress li span {
	display: grid;
	place-items: center;
	width: 1.65rem;
	height: 1.65rem;
	border: 1px solid var(--line-dark-soft);
	border-radius: 50%;
	background: var(--ink-800);
	color: inherit;
}
.ml-lead-progress li.is-current { color: var(--brass-lit); }
.ml-lead-progress li.is-current span { border-color: var(--brass-lit); }
.ml-lead-progress li.is-complete span { border-color: var(--brass); background: var(--brass-solid); color: #fff; }
.ml-lead-progress li.is-complete::after { background: var(--brass); }
.ml-lead-dialog__panel--light .ml-lead-progress li { color: var(--text-on-light-dim); }
.ml-lead-dialog__panel--light .ml-lead-progress li:not(:last-child)::after { background: var(--line-light); }
.ml-lead-dialog__panel--light .ml-lead-progress li span { border-color: var(--line-light); background: var(--paper); }
.ml-lead-dialog__panel--light .ml-lead-progress li.is-current { color: var(--brass-deep); }
.ml-lead-dialog__panel--light .ml-lead-progress li.is-current span { border-color: var(--brass); }
.ml-lead-dialog__panel--light .ml-lead-progress li.is-complete span { border-color: var(--brass-solid); background: var(--brass-solid); color: #fff; }

.ml-lead-step { display: grid; gap: 1.5rem; }
.ml-lead-step[hidden] { display: none !important; }
.ml-lead-step > h3 { font-size: var(--fs-h3); }
.ml-lead-step__intro { margin-top: -0.75rem; color: var(--text-on-dark-dim); }
.ml-lead-step__actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.85rem; padding-top: 0.35rem; }
.ml-lead-step__actions--end { justify-content: flex-end; }
.ml-lead-offering { margin-top: 0.25rem; }
.ml-lead-dialog__panel--light .ml-lead-step__intro { color: var(--text-on-light-dim); }

.ml-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.ml-choice { position: relative; cursor: pointer; }
.ml-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ml-choice span {
	display: flex;
	align-items: center;
	min-height: 4.25rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--line-dark-soft);
	border-radius: var(--radius);
	background: rgba(255, 255, 255, 0.025);
	font-weight: 600;
	transition: border-color 0.25s var(--ease), background-color 0.25s var(--ease), color 0.25s var(--ease);
}
.ml-choice:hover span { border-color: rgba(211, 164, 107, 0.55); }
.ml-choice input:checked + span { border-color: var(--brass-lit); background: rgba(211, 164, 107, 0.12); color: var(--brass-lit); }
.ml-choice input:focus-visible + span { outline: 2px solid var(--brass-lit); outline-offset: 3px; }
.ml-choice input[aria-invalid="true"] + span { border-color: #d98b7a; }
.ml-lead-dialog__panel--light .ml-choice span { border-color: var(--line-light); background: var(--paper-raised); }
.ml-lead-dialog__panel--light .ml-choice:hover span { border-color: var(--brass); }
.ml-lead-dialog__panel--light .ml-choice input:checked + span { border-color: var(--brass); background: rgba(164, 124, 76, 0.09); color: var(--brass-deep); }
.ml-lead-dialog__panel--light .ml-choice input:focus-visible + span { outline-color: var(--brass-deep); }
.ml-lead-dialog__panel--light .ml-choice input[aria-invalid="true"] + span { border-color: #9b4437; }
.ml-lead-dialog__panel--light .ml-form--light input:hover,
.ml-lead-dialog__panel--light .ml-form--light textarea:hover,
.ml-lead-dialog__panel--light .ml-form--light select:hover { border-color: var(--brass); }
.ml-lead-dialog__panel--light .ml-form--light input[aria-invalid="true"],
.ml-lead-dialog__panel--light .ml-form--light textarea[aria-invalid="true"],
.ml-lead-dialog__panel--light .ml-form--light select[aria-invalid="true"] { border-color: #9b4437; }
.ml-lead-dialog__panel--light .ml-form--light .ml-field__error { color: #9b4437; }
.ml-lead-dialog__panel--light .ml-form--light select option { background: var(--paper-raised); color: var(--text-on-light); }
.ml-lead-dialog__panel--light .ml-form--light .ml-form__status[data-state="ok"] {
	border-left-color: var(--brass);
	background: rgba(164, 124, 76, 0.09);
	color: var(--text-on-light);
}
.ml-lead-dialog__panel--light .ml-form--light .ml-form__status[data-state="error"] {
	border-left-color: #9b4437;
	background: rgba(155, 68, 55, 0.09);
	color: var(--text-on-light);
}
.ml-form--lead.is-complete .ml-form__status { font-size: var(--fs-body); padding: clamp(1.25rem, 4vw, 2.25rem); }

@media (max-width: 39.9375rem) {
	.ml-lead-dialog { padding: 0; place-items: stretch; }
	.ml-lead-dialog__panel {
		width: 100%;
		height: 100dvh;
		max-height: none;
		padding: 1.35rem var(--gutter) 2rem;
		border: 0;
		border-radius: 0;
	}
	.ml-lead-dialog__close { position: fixed; top: 0.75rem; right: 0.75rem; }
	.ml-lead-dialog__header { padding-right: 2.5rem; }
	.ml-lead-dialog__title { font-size: clamp(1.7rem, 8vw, 2.25rem); }
	.ml-lead-dialog__header > p:last-child { font-size: var(--fs-small); }
	.ml-lead-progress li { gap: 0.35rem; font-size: 0.64rem; letter-spacing: 0.06em; }
	.ml-lead-progress li:not(:last-child)::after { left: 1.7rem; right: 0.35rem; }
	.ml-choice-grid { grid-template-columns: 1fr; }
	.ml-choice span { min-height: 3.4rem; }
	.ml-lead-step__actions .ml-btn { flex: 1 1 auto; padding-inline: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
	.ml-lead-dialog, .ml-lead-dialog__panel { transition: none; }
}

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

.ml-footer {
	background: var(--paper);
	border-top: 1px solid var(--line-light);
	padding-block: clamp(2.75rem, 5vw, 4rem) 0;
	font-size: var(--fs-small);
	color: var(--text-on-light-dim);
}

.ml-footer__cols {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(2.25rem, 4vw, 3rem);
}
@media (min-width: 48rem) {
	.ml-footer__cols { grid-template-columns: 1.6fr 1fr 1.2fr; }
}

.ml-footer__mark {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	text-decoration: none;
	color: var(--text-on-light);
}
.ml-footer__mark .ml-monogram { color: var(--ink-800); font-size: 1.75rem; flex: none; }
.ml-footer__name {
	display: block;
	font-family: var(--font-display);
	font-size: 1.2rem;
	line-height: 1.2;
}
.ml-footer__tagline {
	display: block;
	margin-top: 0.3rem;
	font-size: 0.625rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--text-on-light-dim);
}
.ml-footer__mark:hover .ml-footer__name { color: var(--brass-deep); }
.ml-footer__pitch {
	margin-top: 1.1rem;
	max-width: 30ch;
	line-height: 1.6;
}

.ml-footer__heading {
	font-family: var(--font-body);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--brass-deep);
	margin-bottom: 1.1rem;
}

.ml-footer__nav,
.ml-footer__contact {
	display: grid;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 1.5;
}

.ml-footer a { color: var(--text-on-light-dim); text-decoration: none; }
.ml-footer a:hover { color: var(--brass-deep); text-decoration: underline; text-underline-offset: 0.2em; }

.ml-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 2rem;
	padding-block: 1.35rem;
	border-top: 1px solid var(--line-light);
	font-size: var(--fs-xs);
}
.ml-footer__bottom p { margin: 0; }

/* ---------- Sidehoved på undersider ------------------------------------- */

.ml-page-hero {
	position: relative;
	background: var(--ink-800);
	color: var(--text-on-dark);
	padding-block: calc(var(--header-h) + clamp(2.5rem, 5vw, 4.5rem)) clamp(2.5rem, 5vw, 4.5rem);
	overflow: hidden;
	isolation: isolate;
}
.ml-page-hero::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--line-dark) 25%, var(--line-dark) 75%, transparent);
}
.ml-page-hero__inner { position: relative; max-width: 52rem; }
.ml-page-hero__title { font-size: var(--fs-h1); font-weight: 400; margin-bottom: 1rem; }
.ml-page-hero__text { font-size: var(--fs-body-lg); color: var(--text-on-dark-dim); max-width: 46ch; }
.ml-page-hero__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 2rem;
	margin-top: 2rem;
	padding: 0;
	list-style: none;
}
.ml-page-hero__facts li { display: flex; align-items: center; gap: 0.55rem; font-size: var(--fs-small); color: var(--text-on-dark-dim); }
.ml-page-hero__facts svg { width: 1.1rem; height: 1.1rem; color: var(--brass-lit); flex: none; }

/* Brødkrummer */
.ml-crumbs { margin-bottom: 1.5rem; }
.ml-crumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--fs-xs);
	letter-spacing: 0.06em;
	color: var(--text-on-dark-dim);
}
.ml-crumbs__item + .ml-crumbs__item::before { content: "/"; margin-right: 0.5rem; opacity: 0.5; }
.ml-crumbs a { color: inherit; text-decoration: none; }
.ml-crumbs a:hover { color: var(--brass-lit); }
.ml-crumbs [aria-current] { color: var(--brass-lit); }

/* ---------- Artikel / prosa --------------------------------------------- */

.ml-prose {
	max-width: 68ch;
	font-size: var(--fs-body-lg);
	line-height: 1.72;
	color: #24303c;
}
.ml-prose > * + * { margin-top: 1.35em; }
.ml-prose h2 {
	font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem);
	margin-top: 2.4em;
	margin-bottom: -0.2em;
}
.ml-prose h3 {
	font-size: clamp(1.2rem, 1.1rem + 0.5vw, 1.4rem);
	margin-top: 2em;
	margin-bottom: -0.35em;
}
.ml-prose a { color: var(--brass-deep); text-decoration-color: rgba(138, 98, 54, 0.4); }
.ml-prose a:hover { color: var(--ink-800); text-decoration-color: currentColor; }
.ml-prose ul, .ml-prose ol { padding-left: 1.35em; }
.ml-prose li + li { margin-top: 0.5em; }
.ml-prose li::marker { color: var(--brass); }
.ml-prose blockquote {
	margin-inline: 0;
	padding: 0.35em 0 0.35em 1.5rem;
	border-left: 2px solid var(--brass);
	font-family: var(--font-display);
	font-size: 1.2em;
	line-height: 1.45;
	color: var(--ink-800);
}
.ml-prose blockquote p + p { margin-top: 0.6em; }
.ml-prose hr, .ml-prose .wp-block-separator {
	border: 0;
	height: 1px;
	background: var(--line-light);
	margin-block: 2.75em;
	max-width: none;
}
.ml-prose img, .ml-prose figure { border-radius: var(--radius); }
.ml-prose figcaption { font-size: var(--fs-small); color: var(--text-on-light-dim); margin-top: 0.6em; }
.ml-prose table { width: 100%; border-collapse: collapse; font-size: var(--fs-small); }
.ml-prose th, .ml-prose td { padding: 0.7rem 0.9rem; border-bottom: 1px solid var(--line-light); text-align: left; }
.ml-prose th { font-weight: 600; background: var(--paper-sunk); }

.ml-standfirst {
	font-family: var(--font-display);
	font-size: clamp(1.25rem, 1.05rem + 0.9vw, 1.6rem);
	line-height: 1.42;
	color: var(--ink-800);
	max-width: 34ch;
}

.ml-takeaways {
	margin: 0 0 2.5rem;
	padding: clamp(1.35rem, 2.5vw, 1.85rem);
	background: var(--paper-raised);
	border: 1px solid var(--line-light);
	border-left: 2px solid var(--brass);
	border-radius: var(--radius);
	max-width: 68ch;
}
.ml-takeaways__title {
	font-family: var(--font-body);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--brass-deep);
	margin-bottom: 0.9rem;
}
.ml-takeaways ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.6rem; }
.ml-takeaways li { display: flex; gap: 0.7rem; font-size: var(--fs-small); line-height: 1.55; }
.ml-takeaways svg { width: 1.1rem; height: 1.1rem; flex: none; margin-top: 0.18rem; color: var(--brass); }

.ml-article__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1.25rem;
	font-size: var(--fs-small);
	color: var(--text-on-dark-dim);
	margin-top: 1.5rem;
}
.ml-article__meta span { display: inline-flex; align-items: center; gap: 0.45rem; }
.ml-article__meta svg { width: 1rem; height: 1rem; color: var(--brass-lit); }

/* Detaljer på ydelser */
.ml-detail-grid {
	display: grid;
	gap: clamp(2rem, 4vw, 3.5rem);
	align-items: start;
}
@media (min-width: 62rem) { .ml-detail-grid { grid-template-columns: 7.5fr 4.5fr; } }

.ml-facts {
	position: sticky;
	top: calc(var(--header-h) + 1.5rem);
	display: grid;
	gap: 0;
	padding: clamp(1.35rem, 2.5vw, 1.85rem);
	background: var(--ink-800);
	color: var(--text-on-dark);
	border-radius: var(--radius);
}
.ml-facts__row { display: grid; gap: 0.2rem; padding-block: 0.9rem; border-bottom: 1px solid var(--line-dark); }
.ml-facts__row:last-of-type { border-bottom: 0; }
.ml-facts__row:first-child { padding-top: 0; }
.ml-facts__label {
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--brass-lit);
}
.ml-facts__value { font-size: var(--fs-small); }
.ml-facts .ml-btn { margin-top: 1.35rem; width: 100%; }

.ml-outcomes { display: grid; gap: 0.85rem; margin: 0; padding: 0; list-style: none; }
.ml-outcomes li { display: flex; gap: 0.75rem; align-items: flex-start; }
.ml-outcomes svg { width: 1.25rem; height: 1.25rem; flex: none; margin-top: 0.2rem; color: var(--brass); }

.ml-agenda { counter-reset: step; display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.ml-agenda li {
	counter-increment: step;
	display: grid;
	grid-template-columns: 2.75rem 1fr;
	gap: 1rem;
	padding-block: 1.1rem;
	border-top: 1px solid var(--line-light);
}
.ml-agenda li:last-child { border-bottom: 1px solid var(--line-light); }
.ml-agenda li::before {
	content: counter(step, decimal-leading-zero);
	font-family: var(--font-display);
	font-size: 1.1rem;
	color: var(--brass);
}

/* ---------- Arkiv-hoved -------------------------------------------------- */

.ml-archive-intro { display: grid; gap: 1.25rem; max-width: 44rem; }

.ml-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 clamp(2rem, 3vw, 2.75rem);
	padding: 0;
	list-style: none;
}
.ml-filters a {
	display: inline-block;
	padding: 0.5rem 1rem;
	border: 1px solid var(--line-light);
	border-radius: 999px;
	font-size: var(--fs-small);
	text-decoration: none;
	color: var(--text-on-light-dim);
	transition: all 0.3s var(--ease);
}
.ml-filters a:hover, .ml-filters .is-active a {
	border-color: var(--brass);
	color: var(--brass-deep);
	background: rgba(164, 124, 76, 0.07);
}

/* ---------- Pagination -------------------------------------------------- */

.ml-pagination { margin-top: clamp(2.5rem, 4vw, 3.5rem); }
.ml-pagination__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ml-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding-inline: 0.9rem;
	border: 1px solid var(--line-light);
	border-radius: var(--radius);
	font-size: var(--fs-small);
	text-decoration: none;
	color: var(--text-on-light-dim);
	transition: all 0.3s var(--ease);
}
.ml-pagination .page-numbers:hover { border-color: var(--brass); color: var(--brass-deep); }
.ml-pagination .page-numbers.current { background: var(--ink-800); border-color: var(--ink-800); color: var(--text-on-dark); }
.ml-pagination .dots { border-color: transparent; }

/* ---------- CTA-bånd ---------------------------------------------------- */

.ml-cta-band {
	position: relative;
	background: var(--ink-800);
	color: var(--text-on-dark);
	overflow: hidden;
	isolation: isolate;
}
.ml-cta-band__inner {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: center;
	padding-block: clamp(3rem, 6vw, 5rem);
}
@media (min-width: 55rem) {
	.ml-cta-band__inner { grid-template-columns: 1fr auto; }
}
.ml-cta-band__title { font-size: var(--fs-h2); max-width: 24ch; }
.ml-cta-band__text { color: var(--text-on-dark-dim); max-width: 48ch; margin-top: 1rem; }

/* ---------- Søgeformular ------------------------------------------------ */

.ml-search { display: flex; gap: 0.5rem; max-width: 30rem; }
.ml-search__input {
	flex: 1;
	padding: 0.85rem 1rem;
	background: #fff;
	border: 1px solid var(--line-light);
	border-radius: var(--radius);
	font-size: 0.9375rem;
}
.ml-search__input:focus { outline: none; border-color: var(--brass); box-shadow: 0 0 0 3px rgba(164, 124, 76, 0.14); }
.ml-search__btn {
	display: grid;
	place-items: center;
	width: 3rem;
	background: var(--ink-800);
	border: 1px solid var(--ink-800);
	border-radius: var(--radius);
	color: var(--text-on-dark);
	cursor: pointer;
}
.ml-search__btn svg { width: 1.15rem; height: 1.15rem; }
.ml-search__btn:hover { background: var(--brass-solid); border-color: var(--brass-solid); }

/* ---------- 404 --------------------------------------------------------- */

.ml-404 { text-align: center; display: grid; gap: 1.5rem; justify-items: center; max-width: 34rem; margin-inline: auto; }
.ml-404__code { font-family: var(--font-display); font-size: clamp(4rem, 12vw, 8rem); line-height: 1; color: var(--brass-lit); }

/* ---------- Noter og tomme tilstande ------------------------------------ */

.ml-note {
	padding: 1.15rem 1.35rem;
	background: var(--paper-raised);
	border: 1px dashed var(--line-light);
	border-radius: var(--radius);
	color: var(--text-on-light-dim);
	font-size: var(--fs-small);
}
.ml-empty { display: grid; gap: 1rem; justify-items: start; max-width: 40rem; }

/* ---------- Bevægelse --------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
	.js .ml-reveal {
		opacity: 0;
		transform: translateY(18px);
		transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
		transition-delay: var(--reveal-delay, 0s);
	}
	.js .ml-reveal.is-in { opacity: 1; transform: none; }

	.ml-hero__body > * {
		animation: ml-rise 0.9s var(--ease-out) both;
	}
	.ml-hero__title { animation-delay: 0.05s; }
	.ml-hero__text { animation-delay: 0.16s; }
	.ml-hero__actions { animation-delay: 0.26s; }
	.ml-pillars { animation-delay: 0.36s; }
	.ml-hero__seal { animation: ml-fade 1.4s 0.6s var(--ease-out) both; }
	.ml-flourish--hero { animation: ml-fade 2s 0.3s var(--ease-out) both; }
}

@keyframes ml-rise {
	from { opacity: 0; transform: translateY(22px); }
	to { opacity: 1; transform: none; }
}
@keyframes ml-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

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

/* ---------- Print ------------------------------------------------------- */

@media print {
	.ml-header, .ml-drawer, .ml-footer, .ml-cta-band, .ml-form, .ml-flourish, .ml-hero__media { display: none !important; }
	body { background: #fff; color: #000; }
	.ml-hero, .ml-page-hero { background: #fff; color: #000; padding-block: 1rem; }
}

/* =========================================================================
   Bevægelse
   -------------------------------------------------------------------------
   Alt herunder er progressiv forbedring. Uden JavaScript eller med
   prefers-reduced-motion vises indholdet statisk og fuldt læsbart.
   ========================================================================= */

/* Linjemaske til store overskrifter.
   Den stramme line-height gør, at glyffer stikker uden for linjeboksen.
   Padding giver dem luft, og en tilsvarende negativ margin holder layoutet. */
.ml-mask {
	display: block;
	overflow: hidden;
	padding-block: 0.14em 0.2em;
	margin-block: -0.14em -0.2em;
}
.ml-mask > span { display: block; }

@media (prefers-reduced-motion: no-preference) {
	.js .ml-mask > span {
		animation: ml-mask-up 1.05s var(--ease-out) both;
	}
	.js .ml-mask--2 > span { animation-delay: 0.14s; }
}

@keyframes ml-mask-up {
	from { transform: translateY(105%) rotate(1.2deg); opacity: 0; }
	60%  { opacity: 1; }
	to   { transform: none; opacity: 1; }
}

/* Messinglinjer der tegnes op */
@media (prefers-reduced-motion: no-preference) {
	.js .ml-draw {
		stroke-dasharray: 1;
		stroke-dashoffset: 1;
		animation: ml-draw 2.4s var(--ease-out) forwards;
		animation-delay: var(--draw-delay, 0.4s);
	}
	/* Endelig, ikke uendelig: en evig animation holder siden i konstant
	   repaint og koster batteri uden at tilføre noget. */
	.js .ml-spark { animation: ml-spark 2.4s 1.6s ease-out both; transform-origin: center; }
}

@keyframes ml-draw { to { stroke-dashoffset: 0; } }
@keyframes ml-spark {
	0%   { opacity: 0; }
	45%  { opacity: 0.95; }
	100% { opacity: 0.6; }
}

/* Guldknap: lysstribe der stryger hen over ved hover */
.ml-btn--gold::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, 0.28) 48%, transparent 66%);
	transform: translateX(-110%);
	transition: transform 0.85s var(--ease-out);
	pointer-events: none;
}
.ml-btn--gold:hover::before { transform: translateX(110%); }
.ml-btn__label, .ml-btn__icon { position: relative; z-index: 1; }

/* Kort: messinghårlinje der tegnes hen over toppen ved hover */
.ml-card::before {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline: 0;
	height: 2px;
	background: linear-gradient(90deg, var(--brass-lit), var(--brass));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.55s var(--ease-out);
	z-index: 2;
}
.ml-card:hover::before, .ml-card:focus-within::before { transform: scaleX(1); }

/* Skillestreg der ruller ud, når sektionen kommer til syne */
@media (prefers-reduced-motion: no-preference) {
	.js .ml-reveal .ml-rule {
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.8s 0.25s var(--ease-out);
	}
	.js .ml-reveal.is-in .ml-rule { transform: scaleX(1); }
}

/* Temaikoner: ring der puster ud ved hover */
.ml-theme__link { position: relative; }
.ml-theme__icon { position: relative; }
.ml-theme__link::before {
	content: "";
	position: absolute;
	inset-block-start: -0.55rem;
	inset-inline-start: 50%;
	width: 3.1rem;
	height: 3.1rem;
	margin-inline-start: -1.55rem;
	border: 1px solid var(--brass);
	border-radius: 50%;
	opacity: 0;
	transform: scale(0.7);
	transition: opacity 0.45s var(--ease), transform 0.55s var(--ease-out);
	pointer-events: none;
}
.ml-theme__link:hover::before { opacity: 0.45; transform: scale(1); }

/* Læseindikator på artikler */
.ml-progress {
	position: fixed;
	inset-block-start: 0;
	inset-inline: 0;
	height: 2px;
	z-index: 150;
	background: transparent;
	pointer-events: none;
}
.ml-progress__bar {
	height: 100%;
	width: 100%;
	transform: scaleX(0);
	transform-origin: left;
	background: linear-gradient(90deg, var(--brass), var(--brass-lit));
}

/* Scroll-drevet variant, hvor browseren understøtter det */
@supports (animation-timeline: scroll()) {
	@media (prefers-reduced-motion: no-preference) {
		.ml-progress__bar {
			animation: ml-progress linear;
			animation-timeline: scroll(root block);
		}
	}
}
@keyframes ml-progress { to { transform: scaleX(1); } }

/* Parallakse på hero-portrættet sættes af JavaScript via --parallax */
.ml-hero__media { will-change: transform; }
@media (prefers-reduced-motion: no-preference) {
	.js .ml-hero__media { transform: translate3d(0, var(--parallax, 0px), 0); }
}

/* Trinvis indtoning af børn i en gruppe */
@media (prefers-reduced-motion: no-preference) {
	.js .ml-reveal-group > * {
		opacity: 0;
		transform: translateY(14px);
		transition: opacity 0.6s var(--ease-out), transform 0.6s var(--ease-out);
		transition-delay: calc(var(--i, 0) * 60ms);
	}
	.js .ml-reveal-group.is-in > * { opacity: 1; transform: none; }
}

/* Blødt løft på artikellisten */
.ml-article-list__item { position: relative; overflow: hidden; }
.ml-article-list__item::after {
	content: "";
	position: absolute;
	inset-block-end: 0;
	inset-inline: 0;
	height: 1px;
	background: var(--brass);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.5s var(--ease-out);
}
.ml-article-list__item:hover::after { transform: scaleX(1); }

/* Monogrammet i hero'ens segl roterer ganske let ved hover på seglet */
.ml-hero__seal { transition: border-color 0.6s var(--ease), transform 0.8s var(--ease-out); }
.ml-hero__seal:hover { border-color: var(--brass-lit); transform: rotate(-4deg); }

/* ---------- Kontaktsektion på lys baggrund ------------------------------ */

.ml-contact--light .ml-contact__aside {
	border-left-color: var(--line-light);
}
.ml-contact--light .ml-contact__item > svg { color: var(--brass); }
.ml-contact--light .ml-contact__label { color: var(--brass-deep); font-weight: 600; }
.ml-contact--light .ml-contact__value { color: var(--text-on-light); }
.ml-contact--light .ml-contact__value:hover { color: var(--brass-deep); }

/* ---------- Arkivtekst og FAQ ------------------------------------------- */

.ml-archive-copy { display: grid; gap: clamp(2.5rem, 5vw, 4rem); }
@media (min-width: 62rem) {
	.ml-archive-copy { grid-template-columns: 7fr 5fr; align-items: start; }
}
.ml-archive-copy .ml-prose { font-size: var(--fs-body); }
.ml-archive-copy .ml-prose h2 {
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.55rem);
	margin-top: 2em;
}
.ml-archive-copy .ml-prose > *:first-child { margin-top: 0; }

.ml-faq__title { margin-bottom: 1.5rem; }
.ml-faq__list { margin: 0; }
.ml-faq__item {
	padding-block: 1.15rem;
	border-top: 1px solid var(--line-light);
}
.ml-faq__item:last-child { border-bottom: 1px solid var(--line-light); }
.ml-faq__q {
	font-weight: 600;
	font-size: 0.9375rem;
	margin-bottom: 0.4rem;
	color: var(--text-on-light);
}
.ml-faq__a {
	margin: 0;
	font-size: var(--fs-small);
	line-height: 1.6;
	color: var(--text-on-light-dim);
}
