/* --- focalx-tokens --- */
/**
 * FocalX — Design tokens (farver, skygger, radii, typografi, layout).
 *
 * Matcher Elementor kit (post-2194) så custom templates ser identiske ud
 * med eksisterende (Elementor-byggede) sider under migrationen.
 *
 * Loader globalt. Alle komponenter bør bruge disse variabler.
 */

/* =============================================================
 * Self-hosted Ubuntu (fonts ligger i /assets/fonts/)
 *
 * Vægt-mapping:
 *   400 → Ubuntu-Light   (site bruger Light som default "regular")
 *   500 → Ubuntu-Medium
 *   600 → Ubuntu-Medium  (Ubuntu har ingen SemiBold — genbrug Medium)
 *   700 → Ubuntu-Bold
 *
 * font-display: swap sikrer tekst er læsbar under font-load (ingen FOIT).
 * ============================================================= */

@font-face {
	font-family: "Ubuntu";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../assets/fonts/Ubuntu-Light.woff2") format("woff2");
}

@font-face {
	font-family: "Ubuntu";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../assets/fonts/Ubuntu-Medium.woff2") format("woff2");
}

@font-face {
	font-family: "Ubuntu";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../assets/fonts/Ubuntu-Medium.woff2") format("woff2");
}

@font-face {
	font-family: "Ubuntu";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../assets/fonts/Ubuntu-Bold.woff2") format("woff2");
}

/* =============================================================
 * Animation: gør det muligt at animere til/fra `auto`/`fit-content`
 * på fx. height/block-size. Bruges af vores accordions
 * (::details-content transition).
 *
 * Graceful degrade: browsers uden support snapper bare open/close
 * uden animation — indhold forbliver tilgængeligt.
 * ============================================================= */
html {
	interpolate-size: allow-keywords;
}

:root {
	/* -------- Brand / accent farver (Elementor kit) -------- */
	--fx-blue:          #163b6b;  /* Primary blue (--e-global-color-secondary/accent) */
	--fx-blue-hover:    #0f2d54;
	--fx-blue-light:    #2d5a9e;

	--fx-mint:          #e0f8de;  /* Hero checkmark background */
	--fx-dark-green:    #004642;  /* Hero checkmark icon */
	--fx-yellow:        #ffd978;
	--fx-peach:         #fea25f;
	--fx-sky:           #93e7fe;
	--fx-pink:          #faa9e4;
	--fx-lilac:         #d5cdec;  /* Feature-grid tone (Elementor icon bg) */

	/* -------- Tekstfarver (Elementor kit) -------- */
	--fx-text:          #2d2f31;          /* H1-H6 + strong body (--e-global-color-primary) */
	--fx-text-body:     rgba(45, 47, 49, 0.8);  /* #2d2f31CC — standard body */
	--fx-text-muted:    #5f6770;          /* Meta, captions (--e-global-color-248826f) */
	--fx-text-subtle:   #babfc3;          /* Disabled, placeholder (--e-global-color-3119dab) */

	/* -------- Baggrunde -------- */
	--fx-bg:            #ffffff;
	/* Lidt mere luft fra hvid — sektioner der skifter til “soft” føles tydeligere */
	--fx-bg-soft:       #f2f0f6;
	--fx-bg-muted:      #e9e6ef;

	/* -------- Grænser (lidt skarpere end før — stadig neutrale) -------- */
	--fx-border:        #dde1e7;
	--fx-border-soft:   #e8eaef;

	/* -------- Feedback -------- */
	--fx-link:          var(--fx-blue);
	--fx-link-hover:    var(--fx-blue-hover);
	--fx-success:       #1e7e34;
	--fx-warning:       #b85c00;
	--fx-danger:        #dc2626;

	/* -------- Radii --------
	 *
	 * Generelle radii (kasser, billeder, kort, paneler).
	 *
	 * --fx-btn-radius er specifikt til CTA-knapper på sitet — defaulter
	 * til 50px ("kraftigt afrundet pill-stil"). Alle knapper i .fx-btn-
	 * systemet arver denne radius automatisk. Ønsker du en specifik
	 * knap med anden radius (fx fuld 999px pill, eller skarpere 12px)
	 * skal du eksplicit override border-radius på den enkelte knap-
	 * variant — fx .fx-btn--pill, .fx-header__cta osv.
	 */
	--fx-radius-sm:     6px;
	--fx-radius:        12px;
	--fx-radius-lg:     16px;
	--fx-radius-xl:     24px;
	--fx-btn-radius:    50px;

	/* -------- Skygger -------- */
	--fx-shadow-sm:     0 1px 2px rgba(0, 0, 0, 0.05);
	--fx-shadow:        0 4px 20px rgba(22, 59, 107, 0.07), 0 1px 3px rgba(0, 0, 0, 0.04);
	--fx-shadow-lg:     0 12px 40px rgba(22, 59, 107, 0.09), 0 2px 10px rgba(0, 0, 0, 0.05);

	/* -------- Typografi (Elementor kit) -------- */
	--fx-font-heading:  "Ubuntu", sans-serif;
	--fx-font-body:     "Ubuntu", sans-serif;

	/* -------- Heading scale --------
	 *
	 * KONVENTION — overskrifter (h1–h6):
	 * Sitet bruger ÉN samlet skala for alle overskrifter på tværs af
	 * sektioner. Tokenset her definerer både size, line-height og
	 * letter-spacing pr. niveau, og selve `h1…h6` tags får defaults
	 * applied længere nede i filen (se "Default heading styles").
	 *
	 * Størrelser justeres pr. breakpoint (desktop → tablet → mobile)
	 * via @media-blokkene længere nede. Line-height og letter-spacing
	 * holdes derimod KONSTANT på tværs af breakpoints — typografiske
	 * ratioer ændrer sig ikke når størrelsen skaleres ned, kun det
	 * absolutte tal. Det giver et ensartet rytmisk look uanset device.
	 *
	 * Letter-spacing er let negativ på de største display-headings
	 * (h1/h2) for at modvirke visuel "luftighed" som store fonts har
	 * — moderne web-konvention. Mindre headings (h4–h6) har 0 så
	 * brødtekst-nært typografisk look bevares.
	 *
	 * Komponent-specifik override er stadig ok hvis en sektion har
	 * brug for fx en kæmpe hero-h1 eller en speciel feature-h3 —
	 * men brug ALTID disse tokens som baseline før du afviger.
	 */

	/* Sizes: desktop → tablet (≤1024) → mobile (≤767) — samme værdier
	   som Elementor-kittet bruger, så frontend matcher kit-vinduerne. */
	--fx-text-base:     18px;
	--fx-h1:            48px;
	--fx-h2:            40px;
	--fx-h3:            32px;
	--fx-h4:            26px;
	--fx-h5:            22px;
	--fx-h6:            18px;

	/* Line-heights — strammere på store display-headings, mere
	   åbne på små for læsbarhed. Konstante på tværs af breakpoints. */
	--fx-h1-lh:         1.1;
	--fx-h2-lh:         1.15;
	--fx-h3-lh:         1.2;
	--fx-h4-lh:         1.25;
	--fx-h5-lh:         1.35;
	--fx-h6-lh:         1.4;

	/* Letter-spacing — subtil negativ tracking på display-headings,
	   neutral fra h4 og ned. */
	--fx-h1-ls:         -0.02em;
	--fx-h2-ls:         -0.015em;
	--fx-h3-ls:         -0.01em;
	--fx-h4-ls:         0;
	--fx-h5-ls:         0;
	--fx-h6-ls:         0;

	/* -------- Layout --------
	 *
	 * KONVENTION — sektion-bredde (1140px på desktop):
	 *
	 * ALLE sektioner på sitet skal som UDGANGSPUNKT have max-bredde
	 * 1140px på desktop. Det er en bevidst designbeslutning der
	 * matcher Elementor-kittets "boxed" container, så frontend-
	 * sektioner føles ensartet bredde uanset hvilken side de står
	 * på. Hvis du laver en ny sektion: følg konventionen — undlad
	 * IKKE at sætte max-width.
	 *
	 * KORREKT brug — vælg én af to:
	 *   1. Brug utility-klassen .fx-section__container (defineret
	 *      længere nede i denne fil) som wrapper inde i sektionen:
	 *
	 *         <section class="fx-min-feature">
	 *             <div class="fx-section__container">
	 *                 …content…
	 *             </div>
	 *         </section>
	 *
	 *   2. Eller brug tokenet eksplicit på din egen container-
	 *      klasse (anbefales hvis du allerede har en BEM-wrapper
	 *      med ekstra layout-styles):
	 *
	 *         .fx-min-feature__container {
	 *             max-width: var(--fx-max-content);
	 *             margin:    0 auto;
	 *             padding:   0 var(--fx-gutter);
	 *         }
	 *
	 * UNDGÅ hardcoded `max-width: 1140px;` — brug ALTID tokenet, så
	 * hele sitet kan ændres ét sted hvis vi senere skifter til fx
	 * 1200px eller 1080px.
	 *
	 * UNDTAGELSER (kun hvis eksplicit ønsket):
	 *   • Full-bleed sektioner (logo-carousel, video-baggrunde) må
	 *     fylde 100% — set max-width: none + indre 1140px-wrapper.
	 *   • Smallere INDRE wrappers er ok og har egne tokens:
	 *       --fx-max-narrow (820px)  — centreret intro/header-tekst
	 *       --fx-max-prose  (720px)  — læsbar artikel-tekst
	 *     Disse bruges INDE I 1140px-containeren — IKKE i stedet for.
	 *   • Modaler/lightboxes har deres egne max-widths.
	 *
	 * Skal en specifik sektion afvige (fx en bevidst bredere
	 * compare-tabel, eller en smal compare-archive hero), override
	 * eksplicit på den enkelte komponent — men kommentér HVORFOR
	 * så det er tydeligt at det er bevidst.
	 */
	--fx-max-content:   1140px;   /* Default sektion-bredde (desktop) */
	--fx-max-narrow:    820px;    /* Centreret tekst (header/intro) */
	--fx-max-prose:     720px;    /* Læsbar artikel-tekst */
	/* Side-padding: mærkbart mere luft til kant end 24px, uden at klemme indhold */
	--fx-gutter:        28px;
	/* Vertikal padding mellem sektioner — øget vs. tidligere kit-værdier
	   (96/72/48) for et mere moderne, “premium” luftigt layout. */
	--fx-section-py:    112px;
	--fx-col-gap:       104px;    /* KONVENTION — gap mellem kolonner i 2-kolonne
	                                 content-sektioner (hero, opshub, image-
	                                 accordion, partnership, example-flow,
	                                 system-of-record osv.).
	                                 Desktop: 104px · Tablet: 56px · Mobil: 28px.
	                                 Brug ALTID var(--fx-col-gap) på 2-kolonne
	                                 grid'en — undgå hard-codede værdier så hele
	                                 sitet rytmisk holder samme afstand mellem
	                                 venstre og højre kolonne. */
}

/* Tablet */
@media (max-width: 1024px) {
	:root {
		--fx-text-base: 17px;
		--fx-h1: 40px;
		--fx-h2: 34px;
		--fx-h3: 28px;
		--fx-h4: 24px;
		--fx-h5: 19px;
		--fx-h6: 17px;
		--fx-section-py: 88px;
		--fx-col-gap: 56px;
		--fx-gutter: 26px;
	}
}

/* Mobile */
@media (max-width: 767px) {
	:root {
		--fx-text-base: 16px;
		--fx-h1: 32px;
		--fx-h2: 28px;
		--fx-h3: 24px;
		--fx-h4: 21px;
		--fx-h5: 18px;
		--fx-h6: 16px;
		--fx-section-py: 56px;
		--fx-col-gap: 28px;
		--fx-gutter: 22px;
	}
}

/* -------------------------------------------------------------
 * Default heading styles (site-wide)
 *
 * KONVENTION — én skala, alle sektioner:
 * Native h1–h6 tags får automatisk size + line-height + letter-
 * spacing fra tokens-skalaen. Det betyder:
 *
 *   • Et nøgent <h2 class="fx-section__title">Foo</h2> behøver
 *     IKKE selv at sætte font-size — det matcher resten af sitet.
 *   • Komponenter der allerede sætter font-size: var(--fx-h2) på
 *     en wrapper-klasse arver line-height fra h2-default'en, så
 *     vertikal rytme er konsistent overalt.
 *   • Skift af heading-tag (h2 → h3) ændrer både størrelse OG
 *     line-height korrekt automatisk.
 *
 * Hvis en specifik sektion behøver afvigelse (fx ekstra-stor hero-
 * h1 eller specialiseret feature-h3), så override eksplicit på den
 * pågældende klasse — men brug ALTID --fx-h*-tokens som baseline.
 *
 * Astra-parent / WP-core forsøger at injicere -apple-system /
 * system-ui på iOS/macOS — derfor sætter vi font-family eksplicit
 * på alle form-elementer her.
 * ------------------------------------------------------------- */

html, body, input, select, textarea, button {
	font-family: var(--fx-font-body);
}

/* -------------------------------------------------------------
 * Sektion-container utility (site-wide)
 *
 * Default-wrapper for ALLE sektion-content. Sætter automatisk:
 *   • max-width 1140px (--fx-max-content)
 *   • horisontal centrering
 *   • side-gutter (24px desktop, mindre på smalle viewports via token)
 *
 * Brug INDE I sektioner hvor du ikke har en sektion-specifik
 * BEM-container med egne layout-styles:
 *
 *   <section class="fx-min-feature">
 *       <div class="fx-section__container">
 *           …content…
 *       </div>
 *   </section>
 *
 * Hvis du allerede har en BEM-wrapper med ekstra layout (grid,
 * flexbox osv.), så brug var(--fx-max-content) på den i stedet
 * for at lægge denne klasse oveni — undgå unødig DOM/klasse-støj.
 * ------------------------------------------------------------- */

.fx-section__container {
	max-width: var(--fx-max-content);
	margin:    0 auto;
	padding:   0 var(--fx-gutter);
}

h1, h2, h3, h4, h5, h6 {
	font-family:   var(--fx-font-heading);
	font-weight:   700;
	color:         var(--fx-text);
	overflow-wrap: break-word;
	word-wrap:     break-word;
}

h1 {
	font-size:      var(--fx-h1);
	line-height:    var(--fx-h1-lh);
	letter-spacing: var(--fx-h1-ls);
}

h2 {
	font-size:      var(--fx-h2);
	line-height:    var(--fx-h2-lh);
	letter-spacing: var(--fx-h2-ls);
}

h3 {
	font-size:      var(--fx-h3);
	line-height:    var(--fx-h3-lh);
	letter-spacing: var(--fx-h3-ls);
}

h4 {
	font-size:      var(--fx-h4);
	line-height:    var(--fx-h4-lh);
	letter-spacing: var(--fx-h4-ls);
}

h5 {
	font-size:      var(--fx-h5);
	line-height:    var(--fx-h5-lh);
	letter-spacing: var(--fx-h5-ls);
}

h6 {
	font-size:      var(--fx-h6);
	line-height:    var(--fx-h6-lh);
	letter-spacing: var(--fx-h6-ls);
}

/* -------------------------------------------------------------
 * Fælles eyebrow-pill (site-wide)
 *
 * Grøn pill-label der bruges over overskrifter som hint-badge i
 * fx. hero-sektioner, operations-hub, image-accordion, system-of-record
 * osv. Én fælles visuel identitet → samme farve/font/padding overalt.
 * Marginen sættes pr. komponent da layout-afstanden varierer.
 * ------------------------------------------------------------- */

.fx-eyebrow,
.fx-about-hero__eyebrow,
.fx-sor__eyebrow,
.fx-opshub__eyebrow,
.fx-image-accordion__eyebrow,
.fx-feature-grid__eyebrow,
.fx-example-flow__eyebrow,
.fx-securement__eyebrow,
.fx-industry-xlinks__eyebrow,
.fx-partnership__eyebrow,
.fx-dashboards__eyebrow,
.fx-height-detection__eyebrow {
	display:         inline-block;
	padding:         6px 16px;
	border-radius:   999px;
	background:      var(--fx-mint, #E0F8DE);
	color:           var(--fx-dark-green, #004642);
	font-family:     var(--fx-font-body);
	font-size:       14px;
	font-weight:     600;
	line-height:     1.4;
	letter-spacing:  0.06em;
	text-transform:  uppercase;
}

/* -------------------------------------------------------------
 * KONVENTION — checklist-ikon (site-wide)
 *
 * Standard "check"-ikon der bruges på checkpunkt-lister på tværs af
 * sitet (fx "Inspections directly on the railcars" → bullet-liste,
 * feature-bullets osv.). Mint-grøn cirkel-baggrund (#E0F8DE) med
 * mørk grøn checkmark (#004642) — matcher eyebrow-pill-paletten,
 * så lister visuelt kobles til brand-identiteten.
 *
 * BRUG (anbefalet — utility-klasser):
 *   <ul class="fx-checklist" role="list">
 *       <li class="fx-checklist__item">Vehicle damage</li>
 *       <li class="fx-checklist__item">Vehicle spacing …</li>
 *   </ul>
 *
 * Sektion-specifikke lister kan fortsat have egne klasser, men bør
 * genbruge samme check-SVG som ::before-baggrund, så ikonet er ens
 * overalt. Hvis du har behov for et HELT andet check-look (fx solid
 * filled, eller en cirkulær tick uden baggrund), så override
 * eksplicit på den enkelte komponent.
 * ------------------------------------------------------------- */

.fx-checklist {
	margin:         0;
	padding:        0;
	list-style:     none;
	display:        flex;
	flex-direction: column;
	gap:            12px;
}

.fx-checklist__item {
	position:    relative;
	padding-left: 32px; /* 22px ikon + 10px luft */
	min-height:  22px;
	font-family: var(--fx-font-body, "Ubuntu", sans-serif);
	font-size:   16px;
	line-height: 1.5;
	color:       var(--fx-text, #2d2f31);
}

.fx-checklist__item::before {
	content:           "";
	position:          absolute;
	left:              0;
	top:               0.15em; /* aligner med første tekst-linje */
	width:             22px;
	height:            22px;
	background-image:  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><circle cx='8' cy='8' r='8' fill='%23E0F8DE'/><path fill='%23004642' fill-rule='evenodd' d='M10.72 5.22a.75.75 0 011.06 1.06l-4.5 4.5a.75.75 0 01-1.06 0l-2-2a.75.75 0 011.06-1.06L6.75 9.19l3.97-3.97z' clip-rule='evenodd'/></svg>");
	background-repeat: no-repeat;
	background-size:   contain;
	background-position: center;
}

/* -------------------------------------------------------------
 * Global polish (site-wide, moderne defaults)
 *
 * Supplerer Astra uden at hardcode konkurrent-layout. Typografi-skala
 * for overskrifter styres stadig af h1–h6-blokkene ovenfor —
 * typography.css overskriver ikke længere line-height på headings.
 * ------------------------------------------------------------- */

body {
	color:                   var(--fx-text-body);
	line-height:             1.55;
	-webkit-font-smoothing:  antialiased;
	-moz-osx-font-smoothing: grayscale;
}

::selection {
	background: rgba(22, 59, 107, 0.2);
	/* Bevar elementets tekstfarve (muted vs. heading); undgå tvungen sort + WebKit-hvid
	   når kun background er sat. */
	color: inherit;
	-webkit-text-fill-color: inherit;
}

::-moz-selection {
	background: rgba(22, 59, 107, 0.2);
	color: inherit;
}

/* Diskret focus-ring for tastatur (matcher brand-blå). */
:focus-visible {
	outline:        2px solid var(--fx-blue, #163b6b);
	outline-offset: 2px;
}

/* Museklik: undgå dobbelt-ring på links når browseren stadig viser :focus */
a:focus:not(:focus-visible) {
	outline: none;
}


/* --- focalx-typography --- */
/**
 * FocalX — Typography base styles.
 *
 * Globale defaults for overskrifter og body text: konsistent margin-bottom
 * + line-height. Komponent-klasser (fx .fx-cta__title) overrider frit.
 *
 * Loader globalt efter tokens.css så alle sider og templates picker det op.
 */

h1, h2, h3, h4, h5, h6 {
	margin:      0 0 16px;
	font-weight: 700;
	color:       var(--fx-text, #2d2f31);
    overflow-wrap: break-word;
	word-wrap:     break-word;
	hyphens:         auto;
	-webkit-hyphens: auto;
	-ms-hyphens:     auto;
}

h1 { margin-bottom: 28px; }
h2 { margin-bottom: 24px; }
h3 { margin-bottom: 18px; }
h4 { margin-bottom: 16px; }
h5 { margin-bottom: 14px; }
h6 { margin-bottom: 14px; }

/* Body text: konsistent margin-bottom mellem paragraffer */
p {
	margin:      0 0 24px;
	line-height: 1.65;
}

p:last-child {
	margin-bottom: 0;
}

/* Strong: altid primær text-color site-wide, så fremhævninger står klart
   også i prose med muted body-color (fx .fx-vi-prose, .fx-ai-prose). */
strong, b {
	color: var(--fx-text, #2d2f31);
	font-weight: 700;
}

/* Fjern den globale margin på overskrifter der står som sidste barn i
   en container (fx. kun-heading sektioner) — undgår visuel "luft" nedad. */
h1:last-child,
h2:last-child,
h3:last-child,
h4:last-child,
h5:last-child,
h6:last-child {
	margin-bottom: 0;
}


/* --- focalx-global-landing --- */
/**
 * FocalX — fælles polish for alle custom landingssider og PHP-skabeloner.
 *
 * Scopet til #fx-main så Astra-header/footer, widgets og evt. Elementor-
 * sider uden #fx-main ikke påvirkes.
 *
 * Loader globalt efter typography.css (via functions.php).
 */

#fx-main.fx-main {
	color: var(--fx-text-body);
}

/* Ingen global border mellem #fx-main-sektioner — hårgrænser på hvert skift
   føltes tunge; rytme kommer fra hver sektions padding/background (logo-
   carousel har stadig egen diskret top-border i logo-carousel.css). */

/* Lidt pænere linjeskift i løbende brødtekst (Chrome 117+, Safari 17.5+). */
@supports (text-wrap: pretty) {
	#fx-main.fx-main p {
		text-wrap: pretty;
	}
}

/* Diskret typografi for citater i migreret indhold / WYSIWYG. */
#fx-main.fx-main blockquote {
	margin: 1.25em 0;
	padding: 0.35em 0 0.35em 1.15em;
	border-left: 4px solid rgba(22, 59, 107, 0.28);
	color: var(--fx-text-body);
	font-style: italic;
}

#fx-main.fx-main blockquote p:last-child {
	margin-bottom: 0;
}

/* Horisontal skillelinje: brug design tokens i stedet for browser-default grå. */
#fx-main.fx-main hr {
	border: 0;
	border-top: 1px solid var(--fx-border, #e5e7eb);
	margin: 2em 0;
}

/* Lister uden egen BEM-klasse (fx. WYSIWYG) — luft og læsbarhed.
   Undtag `.pill-track` (hero-ToC): `li + li`-margin er tænkt til vertikale
   brødtekst-lister; i en horisontal flex-række giver det “første pill højere”. */
#fx-main.fx-main :is(ul, ol):not([class*="fx-"]):not([class*="wp-block"]):not(.pill-track) {
	line-height: 1.65;
}

#fx-main.fx-main :is(ul, ol):not([class*="fx-"]):not([class*="wp-block"]):not(.pill-track) li + li {
	margin-top: 0.35em;
}


/* --- focalx-buttons --- */
/**
 * FocalX — Button utilities.
 *
 * Genbrugelige CTA-knapper på tværs af sitet. Bruges som:
 *   <a class="fx-btn fx-btn--primary">Text</a>
 *   <button class="fx-btn fx-btn--secondary">Text</button>
 *
 * Afhænger af design tokens (css/tokens.css).
 *
 * KONVENTION — knap-radius:
 * Alle knapper på sitet defaulter til border-radius: 50px (via
 * --fx-btn-radius i tokens.css). Det er et bevidst design-valg så
 * CTA'er er tydeligt afrundede og signalerer "klik". Hvis en specifik
 * knap skal have en anden radius (fuld 999px pill, skarpere 12px,
 * osv.), override da border-radius eksplicit på den enkelte knap-
 * variant — fx .fx-btn--pill (999px) nedenfor.
 */

.fx-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 24px;
	min-height: 48px;
	font-family: var(--fx-font-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	border: 2px solid transparent;
	border-radius: var(--fx-btn-radius, 50px);
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
	white-space: nowrap;
	-webkit-appearance: none;
	appearance: none;
}

.fx-btn__label {
	font-size: 16px;
}

.fx-btn:focus-visible {
	outline: 2px solid var(--fx-blue);
	outline-offset: 3px;
}

.fx-btn:active {
	transform: translateY(1px);
}

/* -- Primary: filled brand blue -- */
.fx-btn--primary {
	background: var(--fx-blue);
	color: #ffffff;
	border-color: var(--fx-blue);
}

.fx-btn--primary:hover,
.fx-btn--primary:focus {
	background: var(--fx-blue-hover);
	border-color: var(--fx-blue-hover);
	color: #ffffff;
	text-decoration: none;
}

/* -- Secondary: ghost / outline -- */
.fx-btn--secondary {
	background: transparent;
	color: var(--fx-text);
	border-color: var(--fx-border);
}

.fx-btn--secondary:hover,
.fx-btn--secondary:focus {
	background: var(--fx-bg-muted);
	border-color: var(--fx-text);
	color: var(--fx-text);
	text-decoration: none;
}

/* -- Tertiary: text-only link-like button -- */
.fx-btn--link {
	padding: 8px 4px;
	min-height: auto;
	background: transparent;
	border-color: transparent;
	color: var(--fx-link);
}

.fx-btn--link:hover,
.fx-btn--link:focus {
	color: var(--fx-link-hover);
	text-decoration: underline;
}

/* -- Size variants -- */
.fx-btn--sm {
	padding: 8px 16px;
	min-height: 36px;
	font-size: 14px;
}

.fx-btn--lg {
	padding: 16px 32px;
	min-height: 56px;
	font-size: 16px;
}

/* -- Full width (useful on mobile) -- */
.fx-btn--block {
	width: 100%;
}

/*
 * -- Pill: stærkt afrundet, subtil blå shadow --
 *
 * KONVENTION — knap-højde:
 * Pill-knapper er sitets primære "store" CTA og deler højde med
 * `.whiw-trigger` (Watch how it works) så de matcher pixel-perfekt
 * når de står side-om-side i hero / CTA-rækker. Effective rendered
 * height = 52px (arrow-bobblen `.fx-btn__arrow` er 24px + padding-y
 * 12+12 + border 2+2). Vi sætter `min-height: 52px` så pills _uden_
 * arrow også bliver 52px — så højden er ens uanset variant.
 * Hvis du ændrer arrow-størrelsen eller padding, skal `.whiw-trigger`
 * (css/watch-how-it-works-btn-popup.css) opdateres i samme ombæring.
 */
.fx-btn--pill {
	border-radius: 999px;
	padding: 12px 24px;
	min-height: 52px;
	font-size: 15px;
	font-weight: 600;
	box-shadow: 0 4px 14px rgba(22, 59, 107, 0.25);
	transition:
		background-color 0.2s ease,
		box-shadow 0.25s ease,
		transform 0.2s ease,
		color 0.2s ease,
		border-color 0.2s ease;
}

.fx-btn--pill:hover,
.fx-btn--pill:focus-visible {
	box-shadow: 0 8px 24px rgba(22, 59, 107, 0.38);
	transform: translateY(-1px);
}

/* -- Arrow: pil der slider til højre on hover -- */
.fx-btn--arrow {
	gap: 12px;
	padding-right: 24px;
}

.fx-btn__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.16);
	color: currentColor;
	transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), background 0.2s ease;
	flex-shrink: 0;
}

.fx-btn__arrow svg {
	width: 12px;
	height: 12px;
	display: block;
}

.fx-btn--arrow:hover .fx-btn__arrow,
.fx-btn--arrow:focus-visible .fx-btn__arrow {
	transform: translateX(4px);
	background: rgba(255, 255, 255, 0.24);
}

/* Secondary-variant: mørk arrow-bobble på lys baggrund */
.fx-btn--secondary .fx-btn__arrow {
	background: rgba(45, 47, 49, 0.08);
}

.fx-btn--secondary:hover .fx-btn__arrow,
.fx-btn--secondary:focus-visible .fx-btn__arrow {
	background: rgba(45, 47, 49, 0.14);
}


/* --- focalx-cta --- */
/**
 * CTA section (.fx-cta)
 *
 * Reusable call-to-action sektion brugt på landingssider på tværs af sitet.
 * Mørk baggrund (#2d2f31), hvid pill-knap, ét samlet vandret layout på desktop.
 * Stables vertikalt på mobil med fuld-bredde knap.
 *
 * Bruger globale tokens fra tokens.css (--fx-*) og .fx-btn utility.
 */

.fx-cta {
	padding: var(--fx-section-py) var(--fx-gutter);
	background: #2d2f31;
}

.fx-cta__container {
	max-width: var(--fx-max-content);
	margin: 0 auto;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	/* Afstand tekst ↔ knap: PC 96px / tablet 48px / mobil 24px
	 * (matcher sitewide 2-kolonne gap-konvention). */
	gap: 96px;
}

.fx-cta__text {
	text-align: left;
	/* Bredde: PC 60% / tablet 50% / mobil 100% (se media queries). */
	flex: 0 0 60%;
	max-width: 60%;
	min-width: 0;
}

/* Samme skala som øvrige sektioners h2 (tokens.css — var(--fx-h2) m.fl.). */
.fx-cta .fx-cta__title {
	color: #fff;
	font-size: var(--fx-h2);
	line-height: var(--fx-h2-lh);
	letter-spacing: var(--fx-h2-ls);
	font-weight: 700;
	margin: 0 0 10px;
}

.fx-cta__subtitle {
	font-size: 18px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.65);
	margin: 0;
	max-width: 640px;
}

.fx-cta__actions {
	/* Fylder resten af rækken efter .fx-cta__text (60%/50%). */
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	gap: 12px;
	align-self: flex-start;
	justify-content: flex-end;
}

.fx-cta .fx-cta__button {
	background: #fff;
	color: var(--fx-text);
	border: 0;
	border-radius: 999px;
	padding: 18px 60px;
	min-height: auto;
	font-size: 16px;
	font-weight: 600;
}

/* Tablet: mindre horisontal padding + container-gap */
@media (max-width: 1024px) {
	.fx-cta__container {
		gap: 48px;
	}
	.fx-cta__text {
		flex: 0 0 50%;
		max-width: 50%;
	}
}

.fx-cta .fx-cta__button:hover,
.fx-cta .fx-cta__button:focus {
	background: var(--fx-bg-soft);
	color: var(--fx-text);
}

/* Mobil: tekst øverst, knap fuld-bredde i bunden */
@media (max-width: 767px) {
	.fx-cta__container {
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
	}
	.fx-cta__text {
		text-align: left;
		flex: 1 1 100%;
		max-width: 100%;
		width: 100%;
	}
	.fx-cta__actions {
		flex: 1 1 100%;
		width: 100%;
		align-self: stretch;
		justify-content: stretch;
	}
	.fx-cta__actions .fx-cta__button {
		width: 100%;
		justify-content: center;
		padding: 18px 30px;
	}
	.fx-cta__subtitle { font-size: 16px; }
}

@media (min-width: 768px) and (max-width: 1024px) {
	.fx-cta__subtitle {
		font-size: 17px;
	}

	.fx-cta .fx-btn.fx-cta__button {
		padding: 18px 36px;
	}
}


/* --- focalx-custom-astra-child-theme-theme-css --- */
/**
Theme Name: FocalX Custom Astra Child Theme
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: focalx-custom-astra-child-theme
Template: astra
*/
 img {
  box-shadow: none !important;
}


.post-content a {
	color:                 var(--fx-link, #163b6b);
	text-decoration:      underline;
	text-underline-offset: 0.14em;
	font-weight:          500;
	transition:           color 0.15s ease, text-decoration-color 0.15s ease;
}

.post-content a:hover {
	color:           var(--fx-link-hover, #0f2d54);
	text-decoration: none;
	font-weight:       500;
}

.open-text-area ol,
.open-text-area ul {
	margin-left: 0 !important;
}








.image-container img {
    overflow: visible;
    z-index: 0;
}



.square-wrapper {
    overflow: hidden;
    border-radius: 24px;
}
.square-wrapper img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}



.square-wrapper-small {
    overflow: hidden;
    border-radius: 18px;
}
.square-wrapper-small img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}







.open-text-area {
    max-width: 960px !important;
	margin: auto !important;
	p {
		margin-bottom: 24px !important;
	}
	li {
		margin-bottom: 20px !important;
	}
}









.open-text-area h2 {
    font-size: 32px !important;
    line-height: 1.3 !important;
}

.open-text-area h3 {
    font-size: 28px !important;
    line-height: 1.4 !important;
}

.open-text-area h4 {
    font-size: 20px !important;
    line-height: 1.4 !important;
}

/* Tablet (maks 1024px) */
@media screen and (max-width: 1024px) {
    .open-text-area h2 {
        font-size: 28px !important;
        line-height: 1.4 !important;
    }

    .open-text-area h3 {
        font-size: 24px !important;
        line-height: 1.4 !important;
    }

    .open-text-area h4 {
        font-size: 18px !important;
        line-height: 1.5 !important;
    }
}

/* Mobil (maks 768px) */
@media screen and (max-width: 768px) {
    .open-text-area h2 {
        font-size: 24px !important;
        line-height: 1.4 !important;
    }

    .open-text-area h3 {
        font-size: 20px !important;
        line-height: 1.5 !important;
    }

    .open-text-area h4 {
        font-size: 16px !important;
        line-height: 1.5 !important;
    }
}






.e-n-tab-title {
    box-shadow: none;
}
@media (max-width: 768px) {
.e-n-tabs-heading {
  margin-right: -24px;  /* Og i højre side */
  margin-left: -24px;  /* Og i højre side */
  padding: 0 24px;      /* Giv containeren sin egen “polstring” indeni */
  padding-right: 24px;      /* Giv containeren sin egen “polstring” indeni */
  overflow-x: auto;     /* Tillad vandret rulning */
  white-space: nowrap;  /* Undgå, at tabs bryder linjen */
}
}













/* Sikrer, at karusellen fylder 100% af sin container */
#reviewCarouselContainer {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Overskrift og navigation */
.carousel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 48px;
    width: 100%;
}

/* Responsivt layout */
@media (max-width: 768px) {
    .carousel-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .carousel-nav {
        margin-top: 12px;
        align-self: flex-end;
    }
}

/* Tekststørrelser for responsivitet */
@media (max-width: 1024px) {
    .carousel-header h2 {
        font-size: 48px;
    }
}

@media (max-width: 768px) {
    .carousel-header h2 {
        font-size: 32px !important;
    }
}

/* Overskrift styling */
.carousel-header h2 {
    color: #fff !important;
    margin: 0;
    font-size: 52px;
	font-weight: bold;
}

/* Navigation knapper */
.carousel-nav {
    display: flex;
    gap: 12px;
}

.carousel-nav button {
    background: #fff;
    border: none;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.carousel-nav button i {
    font-size: 24px;
    color: #2d2f31;
}

/* Karusel styling */
.carousel {
    display: flex;
    width: 100%;
    overflow: hidden;
    position: relative;
    touch-action: pan-y pinch-zoom; /* Tillader vertikal scroll men optimerer for swipe */
    user-select: none; /* Forhindrer tekst-selektion under swipe */
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

/* Rækker med fleksibel højde */
.carousel-inner {
    display: flex;
    transition: transform 0.5s ease-in-out;
    width: 100%;
    flex-wrap: nowrap;
    touch-action: pan-x pan-y; /* Tillader horisontal swipe og vertikal scroll */
}

/* Desktop: Vis 2 reviews side ved side i hver carousel-item */
@media (min-width: 769px) {
    .carousel-inner {
        display: flex !important;
        flex-wrap: nowrap;
        align-items: stretch;
        width: 100%;
    }
    
    .carousel-item {
        width: 100% !important;
        min-width: 100% !important;
        flex-shrink: 0;
    }
    
    .carousel-item.active {
        display: flex !important;
        width: 100% !important;
    }
    
    /* Sørg for at inactive items er skjult */
    .carousel-item:not(.active) {
        display: none !important;
    }
    
    /* Col-6 skal være 50% på desktop (2 side ved side) */
    .carousel-item .col-6 {
        max-width: 50% !important;
        width: 50% !important;
    }
    
    /* Vis begge col-6's på desktop */
    .carousel-item .col-6.mobile-hidden {
        display: flex !important;
    }
}

/* Sikrer, at kolonnerne fylder hele sektionen */
.carousel-item .row {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin: 0;
    width: 100%;
    align-items: stretch; /* Sørger for, at kolonnerne fylder hele højden */
}

/* Kolonner fylder altid hele sektionen */
.carousel-item .col-6 {
    flex: 1;
    max-width: 50%;
    padding: 0;
    display: flex;
}

/* Mobil: En kolonne pr. række */
@media (max-width: 768px) {
    .carousel-item .col-6 {
        max-width: 100%;
    }
}

/* Kort fylder altid 100% af kolonnen */
.carousel .card {
    background-color: #fff;
    border-radius: 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    height: 100%; /* Sørger for, at kortene fylder kolonnen */
}

/* Kortindhold strækker sig for at udligne højden */
.card-body {
    flex-grow: 1;
    padding: 24px !important;
    display: flex;
    flex-direction: column;
	min-height: 340px !important;
}


/* Footer i kort - Sørger for, at bunden holder sig stabil */
.review-footer {
    display: flex;
    align-items: center;
    margin-top: auto; /* Skubber footeren til bunden */
    padding: 24px;
}
.company-logo {
    max-height: 125px;
	max-width: 200px
    
}


/* Profilbillede i review-kort: se css/review-carousel.css (.review-photo-wrap). */

/* Stjerner */
.star-rating {
    font-size: 20px;
    margin-bottom: 24px;
    color: #f0ad4e;
}

/* Tekststyling */
.review-text {
	margin-bottom: 0;
	font-size: 22px !important;
}

.name-text {
    font-size: 24px !important;
    font-weight: bold;
    margin: 0;
}

.job-text {
    font-size: 14px;
    margin: 0;
}

/* Mobile styling */
@media (max-width: 768px) {
    .review-text {
        font-size: 18px !important;
    }
    .name-text {
        font-size: 18px !important;
    }
    .job-text {
        font-size: 14px;
    }
}

/* Karusel-animation */
.carousel-item {
    display: none;
    width: 100%;
    transition: transform 0.5s ease-in-out;
    flex-shrink: 0;
}

.carousel-item.active {
    display: flex;
}

/* Desktop: Sørg for at 2 items vises side ved side */
@media (min-width: 769px) {
    .carousel-item.active {
        display: flex !important;
    }
}

/* Standard styling for kort (Desktop + Tablet) */
.carousel-item .row {
    display: flex;
    flex-wrap: wrap;
}

.carousel-item .col-6 {
    flex: 1;
    max-width: 50%;
    padding: 0;
    display: flex;
}

/* 📌 Mobil: Vis kun 1 item ad gangen */
@media (max-width: 768px) {
    .carousel-inner {
        flex-wrap: nowrap;
        touch-action: pan-x pan-y; /* Tillader horisontal swipe */
    }
    
    .carousel {
        touch-action: pan-x pan-y; /* Tillader horisontal swipe */
    }
    
    .carousel-item {
        width: 100%;
        min-width: 100%;
    }
    
    .carousel-item.active {
        display: flex;
        width: 100%;
    }
    
    .carousel-item .row {
        width: 100%;
        margin: 0;
    }

    .carousel-item .col-6 {
        max-width: 100%;
        width: 100%;
        flex: none;
    }
    
    /* Skjul den anden review på mobil */
    .carousel-item .col-6.mobile-hidden {
        display: none !important;
    }

    .card {
        max-width: 100%;
        width: 100%;
    }
}














.author-box{
    display:flex;
    align-items:center;
    gap:16px;
}

.author-avatar{
    width:64px;
    height:64px;
    border-radius:50%;
    overflow:hidden;
    flex-shrink:0;
}

.author-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.author-box__name{
    font-weight:700;
    color:#163B6B;
    font-size:24px;
    line-height:1.3;
}

@media (max-width:1024px){
    .author-box__name{
        font-size:21px;
    }
}
























.damage-container {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.damage-item {
    display: flex;
    align-items: center;
    background-color: #fff;
    border: 4px solid #F6F5F8;
    padding: 6px 12px;
    border-radius: 12px;
    color: #163B6B;
    min-width: 200px;
    box-sizing: border-box;
}

.damage-item img {
    height: 48px;
    width: auto;
    max-width: 72px;
    object-fit: contain;
    margin-right: 8px;
    flex-shrink: 0;
}

@media (max-width: 700px) {
    .damage-container {
        gap: 6px;
    }

    .damage-item {
        border: 2px solid #F6F5F8;
        font-size: 14px;
        flex: 1 1 calc(50% - 6px);
        max-width: calc(50% - 6px);
        min-width: 0;
        padding: 6px 0;
    }

    .damage-item img {
        height: 40px;
        max-width: 50px;
        margin-right: 6px;
    }

    .damage-item:nth-child(odd):last-child {
        margin-left: auto;
        margin-right: auto;
    }
}












#ast-scroll-top {
    right: 10px !important;
    bottom: 10px !important;
}

#ast-scroll-top .ast-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
	width: 100%;
	height: 100%;
}

#ast-scroll-top svg {
    width: 18px !important;
    height: 16px !important;
    display: block;
}



.green-pill {
    background: #E0F8DE;
    border-radius: 50px;
}




/**
 * Undgår “desktop-layout” på mobil: horisontal scroll, forkert skalering, Astra/container-fælder.
 * Indlæses efter Astra-grundstyles.
 */

html {
	box-sizing: border-box;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

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

body {
	max-width: 100%;
	overflow-x: hidden; /* clip er nyere; hidden virker overalt */
}

/* Almindelige WP/Astra-wraps — min-width:0 lader flex/grid børn krympe */
#page,
.site,
#primary,
.site-content,
.site-content .ast-container,
.ast-separate-container .ast-article-single,
.ast-page-builder-template .site-content {
	min-width: 0;
	max-width: 100%;
}

/*
 * FocalX (#fx-main): Astra bruger #page som flex-kolonne (min-height: 100vh)
 * og .site-content { flex-grow: 1 }. Med builder-flex på .ast-container kan
 * hovedkolonnen ellers ligne den er “trukket” i højden. Vi pakker indhold
 * til dets naturlige højde; footer forbliver under .site-content.
 */
body:has(#fx-main) .site-content .ast-container:has(#fx-main) {
	justify-content: flex-start;
	min-height: 0;
}

#primary:has(#fx-main) {
	min-height: 0;
}

#fx-main {
	flex: 0 0 auto;
	min-height: 0;
	width: 100%;
	max-width: 100%;
}

/* Medie og brede tabeller */
img,
video,
svg,
canvas {
	max-width: 100%;
	height: auto;
}

.entry-content {
	overflow-wrap: anywhere;
	word-wrap: break-word;
}




/* --- focalx-footer --- */
/**
 * FocalX mega-footer — dark bar, WPML + social row, legal strip.
 */

.fx-site-footer {
	--fx-footer-bg: var(--fx-text, #2d2f31);
	--fx-footer-text: #babfc3;
	--fx-footer-heading: #fff;
	--fx-footer-link: #babfc3;
	--fx-footer-muted: #989ea3;
	/* Samme indholdsbredde som resten af sitet (tokens.css) */
	--fx-footer-max: var(--fx-max-content, 1140px);

	box-sizing: border-box;
	width: 100%;
	margin-top: auto;
	margin-bottom: 0;
	padding: var(--fx-section-py, 96px) var(--fx-gutter, 24px) 24px;
	background: var(--fx-footer-bg);
	color: var(--fx-footer-text);
	font-family: var(--fx-font-body);
	font-size: 15px;
	line-height: 1.6;
}

.fx-site-footer *,
.fx-site-footer *::before,
.fx-site-footer *::after {
	box-sizing: border-box;
}

.fx-site-footer__shell {
	max-width: var(--fx-footer-max);
	margin: 0 auto;
	overflow: visible;
}

@media (max-width: 1024px) {
	.fx-site-footer {
		padding-top: var(--fx-section-py, 72px);
	}
}

/* ----- Main columns ----- */
.fx-site-footer__grid {
	display: grid;
	grid-template-columns: 1.15fr repeat(4, minmax(0, 1fr));
	gap: 32px 28px;
	padding-bottom: 36px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Tablet: 3 kolonner; 2. række: tom celle til venstre, About midt, Resources højre */
@media (max-width: 1100px) and (min-width: 601px) {
	.fx-site-footer__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.fx-site-footer__grid > .fx-site-footer__col:nth-child(4) {
		grid-column: 2;
		grid-row: 2;
	}

	.fx-site-footer__grid > .fx-site-footer__col:nth-child(5) {
		grid-column: 3;
		grid-row: 2;
	}
}

@media (max-width: 600px) {
	.fx-site-footer__grid {
		grid-template-columns: 1fr;
	}
}

.fx-site-footer__col--brand {
	min-width: 0;
}

.fx-site-footer__logo {
	display: inline-block;
	line-height: 0;
	margin-bottom: 16px;
	filter: brightness(0) invert(1);
	opacity: 0.95;
}

.fx-site-footer__logo img {
	display: block;
	height: auto;
	max-height: 28px;
	width: auto;
	max-width: 118px;
}

.fx-site-footer__tagline {
	margin: 0 0 20px;
	max-width: 320px;
	color: var(--fx-footer-text);
	font-size: 15px;
	line-height: 1.6;
}

.fx-site-footer__contact {
	margin: 0;
}

.fx-site-footer__mailto {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	text-decoration: none;
	font-weight: 500;
}

.fx-site-footer__mailto span {
	color: #fff;
}

.fx-site-footer__mailto:hover,
.fx-site-footer__mailto:focus-visible {
	color: #fff;
	opacity: 0.92;
}

.fx-site-footer__mail-ico {
	flex-shrink: 0;
	opacity: 0.85;
}

/* h2: Astra kan overskrive farve — kolonneoverskrifter */
.fx-site-footer h2.fx-site-footer__heading,
.fx-site-footer .fx-site-footer__heading {
	margin: 0 0 14px;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.01em;
	text-transform: none;
	color: #fff !important;
}

.fx-site-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--fx-font-body);
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.fx-site-footer__links a {
	color: var(--fx-footer-link);
	text-decoration: none;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.45;
}

.fx-site-footer__links a:hover,
.fx-site-footer__links a:focus-visible {
	color: #f2f4f7;
	text-decoration: none;
}

.fx-site-footer__links a:focus {
	outline: none;
}

.fx-site-footer__links a:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.6);
	outline-offset: 2px;
}

/* ----- Mid: language + social ----- */
.fx-site-footer__mid {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 24px;
	padding: 22px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	overflow: visible;
}

.fx-site-footer__lang-wrap {
	min-width: 0;
	overflow: visible;
}

/* Sprog: custom dropdown — aktivt sprog kun i trigger; menu = øvrige sprog med WPML-flag */
.fx-site-footer__lang-field {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.fx-site-footer__lang-dropdown-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-width: min(280px, 100%);
	max-width: 100%;
	overflow: visible;
}

.fx-site-footer__lang-btn {
	/* Nulstil Astra-default <button>-styles (fx blå baggrund). */
	all: unset;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	padding: 10px 12px;
	font: inherit;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.35;
	color: #fff;
	text-align: left;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	background-color: #252628;
	background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 10px;
	transition:
		background-color 0.15s ease,
		border-color 0.15s ease,
		color 0.15s ease,
		box-shadow 0.15s ease;
}

.fx-site-footer__lang-btn:hover,
.fx-site-footer__lang-btn:focus {
	color: #fff;
	outline: none;
}

.fx-site-footer__lang-btn:hover {
	background-color: #2d2f31;
	border-color: rgba(255, 255, 255, 0.22);
}

.fx-site-footer__lang-field--dropdown.is-open .fx-site-footer__lang-btn {
	background-color: #2d2f31;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.22);
}

.fx-site-footer__lang-field--dropdown.is-open .fx-site-footer__lang-chev {
	color: #fff;
	opacity: 1;
}

.fx-site-footer__lang-btn:focus-visible {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.22);
	box-shadow: none;
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.fx-site-footer__lang-btn:active {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.22);
}

.fx-site-footer__lang-flag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	line-height: 1;
}

.fx-site-footer__lang-flag .fx-header__lang-flag-img {
	width: 20px;
	height: 15px;
	object-fit: cover;
	border-radius: 2px;
}

.fx-site-footer__lang-current {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fx-site-footer__lang-chev {
	flex-shrink: 0;
	color: #fff;
	opacity: 0.85;
	transition:
		transform 0.18s ease,
		opacity 0.15s ease;
}

.fx-site-footer__lang-field--dropdown.is-open .fx-site-footer__lang-chev {
	transform: rotate(180deg);
}

/* Dropup: åbner opad så menuen ikke forlænger dokumenthøjde / hvid rem under footer */
.fx-site-footer__lang-menu {
	position: absolute;
	z-index: 40;
	left: 0;
	right: auto;
	top: auto;
	bottom: calc(100% + 6px);
	align-self: flex-start;
	/* Mindst samme bredde som .lang-btn (100% af kolonne); bredere hvis længste label kræver det. */
	width: max-content;
	min-width: 100%;
	max-width: min(100vw - 32px, 420px);
	box-sizing: border-box;
	margin: 0;
	padding: 6px 0;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px);
	transition:
		opacity 0.16s ease,
		transform 0.16s ease,
		visibility 0.16s;
	background: linear-gradient(180deg, rgba(48, 50, 52, 0.98) 0%, rgba(30, 31, 33, 0.98) 100%);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 12px;
	box-shadow:
		0 12px 40px rgba(0, 0, 0, 0.45),
		0 0 0 1px rgba(0, 0, 0, 0.2);
}

.fx-site-footer__lang-field--dropdown.is-open .fx-site-footer__lang-menu {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.fx-site-footer__lang-list {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
	box-sizing: border-box;
	/* Bredde styres af .lang-menu (max-content + min-width: 100% af inner = samme som .lang-btn). */
}

.fx-site-footer__lang-list > li {
	margin: 0;
	padding: 0;
}

.fx-site-footer__lang-item,
.fx-site-footer__lang-item:link,
.fx-site-footer__lang-item:visited {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 12px 14px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.35;
	white-space: nowrap;
	color: #fff;
	background-color: transparent;
	text-decoration: none;
	box-shadow: none;
	-webkit-tap-highlight-color: transparent;
	transition:
		background-color 0.12s ease,
		color 0.12s ease,
		box-shadow 0.12s ease;
}

.fx-site-footer__lang-item:hover,
.fx-site-footer__lang-item:focus-visible {
	background-color: rgba(255, 255, 255, 0.08);
	color: #fff;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
	text-decoration: none;
}

.fx-site-footer__lang-item:focus {
	outline: none;
	color: #fff;
}

.fx-site-footer__lang-item:focus-visible {
	outline: 2px solid #fff;
	outline-offset: -2px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}

.fx-site-footer__lang-item:active {
	color: #fff;
}

.fx-site-footer__lang-flag--row .fx-header__lang-flag-img {
	width: 20px;
	height: 15px;
}

.fx-site-footer__lang-label {
	flex: 0 1 auto;
	min-width: 0;
	color: inherit;
}

.fx-site-footer__lang--static {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--fx-footer-text);
}

.fx-site-footer__lang-current {
	white-space: nowrap;
	font-weight: 500;
}

/* Social icons (shortcode) on dark background */
.fx-site-footer__social .fx-social-icons-nav {
	display: block;
}

.fx-site-footer__social .fx-social-icons {
	justify-content: flex-end;
}

.fx-site-footer__social .fx-social-icons__link {
	color: var(--fx-footer-text);
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
}

.fx-site-footer__social .fx-social-icons__link:hover,
.fx-site-footer__social .fx-social-icons__link:focus-visible {
	color: #f2f4f7;
	background: rgba(255, 255, 255, 0.1);
}

.fx-site-footer__social .fx-social-icons__link:focus-visible {
	box-shadow: 0 0 0 2px var(--fx-footer-bg), 0 0 0 4px rgba(186, 191, 195, 0.4);
}

/* ----- Bottom legal ----- */
/*
 * DOM: legal først, copyright sidst (semantik / mobil: copy nederst).
 * PC/tablet: row-reverse så copyright stadig visuelt til venstre som før.
 */
.fx-site-footer__bottom {
	display: flex;
	flex-direction: row-reverse;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	padding-top: 20px;
	font-size: 14px;
	color: var(--fx-footer-muted);
	width: 100%;
}

.fx-site-footer__copy {
	margin: 0;
	font-size: 14px;
}

@media (max-width: 767px) {
	.fx-site-footer__bottom {
		flex-direction: column;
		align-items: stretch;
		gap: 20px;
	}
}

.fx-site-footer__legal-list {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (max-width: 767px) {
	.fx-site-footer__legal-list {
		align-items: flex-start;
	}
}

.fx-site-footer__legal-list a {
	color: var(--fx-footer-link);
	text-decoration: none;
	font-weight: 500;
	font-size: 14px;
}

.fx-site-footer__legal-list a:hover,
.fx-site-footer__legal-list a:focus-visible {
	text-decoration: none;
	color: #f2f4f7;
}

/*
 * Astras standard-footer (widgets / «Powered by» / copyright-bar) under FocalX-footeren.
 * Jeres .fx-site-footer har ikke klassen .site-footer — kun Astra har den.
 * Slå denne blok fra i Customizer (eller fjern CSS), hvis I vil vise Astra-footer-widgets igen.
 *
 * .site-primary-footer-wrap skjules også: den kan ellers efterlade padding/højde (hvid rem)
 * selv når inner footer.site-footer er display:none.
 */
footer.site-footer,
#colophon.site-footer,
footer#colophon {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
	border: none !important;
}

.site-primary-footer-wrap,
.ast-primary-footer-wrap {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
}

.site-below-footer-wrap {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
}


/* --- focalx-single-post --- */
/**
 * FocalX — Single post / blogpost template (single.php).
 *
 * Layout (best-practice docs/blog pattern — Stripe / Vercel / MDN):
 *   .fx-main--post
 *   └── .fx-post-hero-wrap            (hero fra [custom_featured_hero])
 *   └── .fx-post-byline               (full-width byline-strip)
 *       ├── .fx-post-byline__author    [forfatter_boks] (dato/read-time
 *       │   kommer fra [custom_featured_hero] og dubleres ikke her)
 *       └── .fx-post-share             share-cluster (LinkedIn/X/e-mail/copy)
 *   └── .fx-post-body                 (2-kolonne grid)
 *       ├── .fx-post-body__content     (article + entry-content) VENSTRE
 *       └── .fx-post-body__toc         (sticky ToC sidebar)      HØJRE
 *   └── .fx-post-further              (further reading + blogpost_carousel)
 *   └── .fx-cta                        (reusable CTA)
 *
 * Alle overskrifter og baggrunde respekterer design-tokens
 * (--fx-text, --fx-col-gap, --fx-max-content osv.).
 */

/* ============================================================
 * Wrapper
 * ============================================================ */
.fx-main--post {
	background: var(--fx-bg, #ffffff);
	color: var(--fx-text-body, #2d2f31cc);
}

.fx-post-hero-wrap {
	max-width: var(--fx-max-content, 1140px);
	margin: 0 auto;
	padding: 0 var(--fx-gutter, 24px);
}

/* ============================================================
 * Byline-strip (full-width under hero)
 *
 * Forfatter-boks (venstre) + share-cluster (højre).
 * Dato/read-time er allerede i post-hero ([custom_featured_hero])
 * — duplikering drænede læsbarhed.
 * Separeret fra ToC så troværdigheds-metadata (hvem skrev) står
 * klart før læsning — uden at konkurrere med navigation.
 * Ingen top/bund-linjer: flex + gap + padding giver nok rytme uden “kasse”.
 * ============================================================ */
.fx-post-byline {
	padding: 28px 0 0;
}

.fx-post-byline__container {
	max-width: var(--fx-max-content, 1140px);
	margin: 0 auto;
	padding: 20px var(--fx-gutter, 24px);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
}

.fx-post-byline__author {
	min-width: 0;
}

/* Komprimer [forfatter_boks] til byline-størrelse (smaller avatar +
   name-link — style.css default er 64px + 24px name). */
.fx-post-byline__author .author-box {
	gap: 12px;
}

.fx-post-byline__author .author-avatar {
	width: 44px;
	height: 44px;
}

.fx-post-byline__author .author-box__name {
	font-size: 16px;
	line-height: 1.3;
	color: var(--fx-text, #2d2f31);
}

.fx-post-byline__author .author-box__name a {
	color: inherit;
	text-decoration: none;
}

.fx-post-byline__author .author-box__name a:hover,
.fx-post-byline__author .author-box__name a:focus-visible {
	color: var(--fx-link, #163b6b);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------- Share-cluster (højre side af byline) ---------- */
.fx-post-share {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-left: auto; /* flush right når wrap tillader det. */
}

/* "Share"-label — screen-reader-venligt på desktop, visible på mobil. */
.fx-post-share__label {
	font-family: var(--fx-font-body, "Ubuntu", sans-serif);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--fx-text-muted, #5f6770);
}

.fx-post-share__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.fx-post-share__item {
	margin: 0;
	padding: 0;
}

/* Alle fire share-knapper deler identisk styling og hover — konsistens
 * prioriteret over platform-brand-tints, så byline-strippen står roligt
 * og "on-brand" (Focalx navy, ikke LinkedIn-blå / X-sort / Gmail-rød). */
.fx-post-share__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 1px solid var(--fx-border, #e5e7eb);
	border-radius: 10px;
	background: #ffffff;
	color: var(--fx-text-muted, #5f6770);
	text-decoration: none;
	cursor: pointer;
	transition: color .18s ease, background-color .18s ease,
		border-color .18s ease, transform .12s ease,
		box-shadow .18s ease;
	-webkit-tap-highlight-color: transparent;
}

.fx-post-share__btn:hover {
	color: #ffffff;
	background: var(--fx-brand, #004088);
	border-color: var(--fx-brand, #004088);
	box-shadow: 0 4px 12px rgba(0, 64, 136, 0.2);
	text-decoration: none;
	transform: translateY(-1px);
}

.fx-post-share__btn:focus-visible {
	color: #ffffff;
	background: var(--fx-brand, #004088);
	border-color: var(--fx-brand, #004088);
	outline: 2px solid var(--fx-brand, #004088);
	outline-offset: 2px;
	text-decoration: none;
}

.fx-post-share__btn:active {
	transform: translateY(0);
	box-shadow: 0 1px 3px rgba(0, 64, 136, 0.15);
}

/* Copy-knap: begge SVG'er stacker ovenpå hinanden — is-copied
 * swapper link-ikon ud med checkmark. Bruger samme filled-navy-state
 * som hover, så feedback-visualiseringen harmonerer med resten. */
.fx-post-share__icon--link,
.fx-post-share__icon--check {
	transition: opacity .18s ease, transform .18s ease;
}

.fx-post-share__icon--check {
	position: absolute;
	inset: 0;
	margin: auto;
	opacity: 0;
	transform: scale(0.6);
}

.fx-post-share__btn--copy.is-copied {
	color: #ffffff;
	background: var(--fx-brand, #004088);
	border-color: var(--fx-brand, #004088);
}

.fx-post-share__btn--copy.is-copied .fx-post-share__icon--link {
	opacity: 0;
	transform: scale(0.6);
}

.fx-post-share__btn--copy.is-copied .fx-post-share__icon--check {
	opacity: 1;
	transform: scale(1);
}

/* aria-live — visuelt skjult, men tilgængelig for screen readers. */
.fx-post-share__status {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media (prefers-reduced-motion: reduce) {
	.fx-post-share__btn,
	.fx-post-share__icon--link,
	.fx-post-share__icon--check {
		transition: none;
	}
}

/* ============================================================
 * Body: 2-kolonne grid
 * Article (venstre) + sticky ToC (højre, 280px).
 * Stacker til 1 kolonne på mobil.
 * ============================================================ */
.fx-post-body {
	padding: 40px 0 40px;
}

.fx-post-body__container {
	max-width: var(--fx-max-content, 1140px);
	margin: 0 auto;
	padding: 0 var(--fx-gutter, 24px);
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 64px;
	align-items: start;
}

/* ============================================================
 * ToC sidebar (højre, sticky)
 *
 * CANONICAL GRID+STICKY PATTERN (Tailwind / Vercel / Stripe docs):
 *
 * Sticky-positioneringen sidder på grid-cellen SELV — ikke på et
 * nested barn. Det er essentielt for at sticky virker i CSS grid:
 *
 *   • `align-self: start` → grid-cellen strækkes IKKE til row-højden.
 *     Den beholder sin content-højde. Det lader sticky have scroll-
 *     range = forskellen mellem row-højde (= artikel-højde) og cell-
 *     højde.
 *   • `position: sticky; top: 100px` på samme element.
 *   • `max-height: calc(100vh - 120px)` → sticky-elementet er altid
 *     mindre end viewport, så den kan glide med under langt scroll.
 *   • `display: flex; flex-direction: column` → ToC (flex: 1 1 auto,
 *     overflow auto) og aside-CTA (flex-shrink: 0) stables lodret.
 *     ToC scroller internt hvis for lang; CTA sidder altid fast
 *     nederst i den sticky blok.
 *
 *   ┌─ .fx-post-body__toc (sticky @ top: 100px) ─┐
 *   │  ToC (flex: 1, overflow-y: auto)           │
 *   │   · Intro                                  │
 *   │   · Section 1 (scroll)                     │
 *   │   · Section 2 (aktiv)                      │
 *   │  ────────────────────                      │
 *   │  Aside-CTA (flex-shrink: 0)                │
 *   └────────────────────────────────────────────┘
 *
 * Forrige version havde en nested .fx-post-toc-wrap som sticky —
 * DET VIRKEDE IKKE fordi grid-cellens default align-self er stretch
 * (= row-højde) når align-items er stretch, eller start (= content-
 * højde) når align-items: start. Begge tilfælde gav sticky-barnet
 * 0px travel-range inden for forældren. Fjernet.
 * ============================================================ */
.fx-post-body__toc {
	position: sticky;
	/* Bindes til --fx-header-h så sticky-offset følger viewport-varianter
	 * automatisk (84px desktop / 90px ≤1200 / 65px ≤767). +48px giver
	 * tydelig breathing room under headeren. */
	top: calc(var(--fx-header-h, 84px) + 48px);
	align-self: start;
	min-width: 0;
	/* Bottom breathing = 32px. Total fradrag = header + top-space + 32. */
	max-height: calc(100vh - var(--fx-header-h, 84px) - 80px);
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding-right: 4px;
}

/* ToC bliver den scrollende del når sidebar-højden begrænses af
 * max-height. min-height: 0 på flex-child er nødvendigt for at
 * overflow kan træde i kraft. */
.fx-post-body__toc > .fx-post-toc {
	flex: 1 1 auto;
	min-height: 0;
	overflow: hidden auto;
	scrollbar-width: thin;
}

.fx-post-body__toc > .fx-post-toc::-webkit-scrollbar {
	width: 6px;
}
.fx-post-body__toc > .fx-post-toc::-webkit-scrollbar-thumb {
	background: var(--fx-border, #e5e7eb);
	border-radius: 999px;
}

.fx-post-body__toc > .fx-post-aside-cta {
	flex-shrink: 0;
}

/* ============================================================
 * Table of contents
 * ============================================================ */
.fx-post-toc {
	/* I højre-sidebar: ingen top-border (byline-strippen har allerede
	   en nederste separator der afgrænser). */
	padding-top: 0;
}

/* ---------- Collapsible ToC (details/summary, no JS) ---------- */
.fx-post-toc__details {
	/* Nulstiller native styling — summary overtager layout. */
	margin: 0;
	padding: 0;
}

.fx-post-toc__summary {
	/* Fjern native disclosure-trekant i alle browsere. */
	list-style: none;
	cursor: pointer;
	user-select: none;

	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;

	/* Bruges som klikzone — lidt polstring så det er let at ramme. */
	margin: 0 0 16px;
	padding: 2px 0;
	border-radius: 6px;
	outline: none;
	-webkit-tap-highlight-color: transparent;
}

.fx-post-toc__summary::-webkit-details-marker {
	display: none;
}

.fx-post-toc__summary:focus-visible {
	outline: 2px solid var(--fx-brand, #004088);
	outline-offset: 4px;
}

/* h2 bor inde i summary — nulstil default heading-margins. */
.fx-post-toc__heading {
	margin: 0;
	font-family: var(--fx-font-heading, "Ubuntu", sans-serif);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--fx-text, #2d2f31);
	letter-spacing: 0;
}

.fx-post-toc__chevron {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	display: block;
	color: var(--fx-text-muted, #5f6770);
	/* SVG peger nedad som default (closed). */
	transform: rotate(0deg);
	transform-origin: center;
	transition: transform .2s ease, color .15s ease;
}

.fx-post-toc__details[open] .fx-post-toc__chevron {
	/* Open = flip 180° så den peger opad. */
	transform: rotate(180deg);
}

.fx-post-toc__summary:hover .fx-post-toc__chevron {
	color: var(--fx-text, #2d2f31);
}

/* Når lukket: nav fylder ikke mere end summary-rækken, så sticky-
 * sidebar'en kollapser pænt og CTA'en klæber til bunden. */
.fx-post-toc__details:not([open]) .fx-post-toc__summary {
	margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
	.fx-post-toc__chevron {
		transition: none;
	}
}

.fx-post-toc__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	counter-reset: fx-toc;
	/* Fast loft på listen (desktop + mobil) — ellers vokser ToC med
	 * indhold / høj viewport; sidebar bruger 100vh-cap på ydre kasse,
	 * men listen selv scroller her for forudsigelig længde. */
	max-height: 500px;
	overflow-x: hidden;
	overflow-y: auto;
	scrollbar-width: thin;
}

.fx-post-toc__list::-webkit-scrollbar {
	width: 6px;
}

.fx-post-toc__list::-webkit-scrollbar-thumb {
	background: var(--fx-border, #e5e7eb);
	border-radius: 999px;
}

.fx-post-toc__item {
	margin: 0;
	padding: 0;
}

.fx-post-toc__item--h3 {
	padding-left: 18px;
}

.fx-post-toc__link {
	display: block;
	padding: 6px 12px;
	border-left: 2px solid transparent;
	margin-left: -14px;
	font-family: var(--fx-font-body, "Ubuntu", sans-serif);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.45;
	color: var(--fx-text-muted, #5f6770);
	text-decoration: none;
	transition: color .15s ease, border-color .15s ease, background-color .15s ease;
}

.fx-post-toc__link:hover,
.fx-post-toc__link:focus-visible {
	color: var(--fx-text, #2d2f31);
	text-decoration: none;
}

.fx-post-toc__item.is-active > .fx-post-toc__link {
	color: var(--fx-blue, #163b6b);
	border-left-color: var(--fx-blue, #163b6b);
	font-weight: 600;
}

/* ============================================================
 * Aside-CTA (sticky, under ToC)
 *
 * Lille lead-gen card. Hentes via template-parts/sections/post-
 * aside-cta.php. Design: soft bg, primary button, ingen shadow.
 * Bevidst understated — skal føles som en del af sidebaren, ikke
 * som en annonce. Samme URL som bund-CTA'en (/get-started/).
 * ============================================================ */
.fx-post-aside-cta {
	padding: 20px 20px 22px;
	border-radius: var(--fx-radius, 12px);
	background: var(--fx-bg-soft, #f6f5f8);
	border: 1px solid var(--fx-border, #e5e7eb);
	font-family: var(--fx-font-body, "Ubuntu", sans-serif);
}

/* Understated eyebrow — bevidst IKKE pill med mint-baggrund. Aside-cta'et
 * sidder allerede i en soft-bg-boks i sidebaren, og en grøn pill ovenpå
 * konkurrerer visuelt med primary-knappen nedenunder. Plain uppercase
 * label fungerer som en rolig kategori-markering. */
.fx-post-aside-cta__eyebrow {
	margin: 0 0 10px;
	font-family: var(--fx-font-body, "Ubuntu", sans-serif);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fx-text-muted, #5f6770);
}

.fx-post-aside-cta__title {
	margin: 0 0 14px;
	font-family: var(--fx-font-heading, "Ubuntu", sans-serif);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--fx-text, #2d2f31);
}

.fx-post-aside-cta__button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border-radius: 999px;
	background: var(--fx-blue, #163b6b);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color .15s ease, transform .15s ease;
}

.fx-post-aside-cta__button:hover,
.fx-post-aside-cta__button:focus-visible {
	background: var(--fx-link-hover, #0f2d54);
	color: #fff;
	text-decoration: none;
}

.fx-post-aside-cta__button:focus-visible {
	outline: 2px solid var(--fx-blue, #163b6b);
	outline-offset: 3px;
}

.fx-post-aside-cta__arrow {
	transition: transform .15s ease;
}

.fx-post-aside-cta__button:hover .fx-post-aside-cta__arrow,
.fx-post-aside-cta__button:focus-visible .fx-post-aside-cta__arrow {
	transform: translateX(3px);
}

/* Kort-skygge på dark-mode-bg respekteres ikke — vi holder det
   lyst og neutralt så det matcher sidebaren uden at dominere. */

/* ============================================================
 * Article content (entry-content + post-content)
 *
 * Typografien følger tokens.css (Ubuntu, --fx-text).
 * Vi begrænser max-bredde for læsbarhed (~70ch) og sikrer at
 * billeder og figurer altid breder sig til fulde kolonne-bredde.
 * ============================================================ */
.fx-post-body__content {
	min-width: 0; /* tillader grid-child at krympe korrekt */
	max-width: 72ch; /* reading-width — forhindrer for brede linjer */
	font-family: var(--fx-font-body, "Ubuntu", sans-serif);
	font-size: var(--fx-text-base, 18px);
	line-height: 1.75;
	color: var(--fx-text-body, #2d2f31cc);
}

.fx-post-body__content > * {
	max-width: 100%;
}

.fx-post-body__content p,
.fx-post-body__content ul,
.fx-post-body__content ol,
.fx-post-body__content blockquote,
.fx-post-body__content pre,
.fx-post-body__content table {
	margin: 0 0 1.25em;
}

.fx-post-body__content h2,
.fx-post-body__content h3,
.fx-post-body__content h4,
.fx-post-body__content h5,
.fx-post-body__content h6 {
	color: var(--fx-text, #2d2f31);
	font-family: var(--fx-font-heading, "Ubuntu", sans-serif);
	font-weight: 700;
	line-height: 1.25;
	margin: 1.75em 0 0.6em;
	/* Match sticky-ToC offset så anchor-jump fra ToC lander under
	 * headeren — ikke skjult bag den. */
	scroll-margin-top: calc(var(--fx-header-h, 84px) + 48px);
}

.fx-post-body__content h2 {
	font-size: var(--fx-h2, 40px);
}
.fx-post-body__content h3 {
	font-size: var(--fx-h3, 32px);
}
.fx-post-body__content h4 {
	font-size: var(--fx-h4, 26px);
}

/* Første element i artiklen skal ikke have top-margin — ellers får
 * vi et visuelt gab mellem byline-strippen og artikelstart.
 *
 * Den første selector dækker det normale tilfælde. Den anden dækker
 * vores template-specifikke markup: single.php indsætter en
 * <h1 class="screen-reader-text"> FØR the_content() for SEO/a11y, og
 * den h1 tager ikke visuel plads — så elementet der følger efter
 * er det reelt første visible content. */
.fx-post-body__content > :first-child,
.fx-post-body__content > .screen-reader-text + * {
	margin-top: 0;
}

.fx-post-body__content a {
	color: var(--fx-link, #163b6b);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fx-post-body__content a:hover,
.fx-post-body__content a:focus-visible {
	color: var(--fx-link-hover, #0f2d54);
}

.fx-post-body__content strong,
.fx-post-body__content b {
	color: var(--fx-text, #2d2f31);
	font-weight: 700;
}

.fx-post-body__content ul,
.fx-post-body__content ol {
	padding-left: 1.4em;
}

.fx-post-body__content li {
	margin: 0 0 0.5em;
}

.fx-post-body__content li::marker {
	color: var(--fx-blue, #163b6b);
}

.fx-post-body__content blockquote {
	margin: 1.75em 0;
	padding: 18px 24px;
	border-left: 4px solid var(--fx-blue, #163b6b);
	background: var(--fx-bg-soft, #f6f5f8);
	border-radius: 0 var(--fx-radius, 12px) var(--fx-radius, 12px) 0;
	font-style: italic;
	color: var(--fx-text, #2d2f31);
}

.fx-post-body__content blockquote p:last-child {
	margin-bottom: 0;
}

.fx-post-body__content img,
.fx-post-body__content .wp-block-image img,
.fx-post-body__content figure img {
	max-width: 100%;
	height: auto;
	border-radius: var(--fx-radius, 12px);
	box-shadow: none;
	-webkit-box-shadow: none;
}

.fx-post-body__content figure {
	margin: 2em 0;
	box-shadow: none;
	-webkit-box-shadow: none;
}

.fx-post-body__content figcaption {
	margin-top: 10px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--fx-text-muted, #5f6770);
	text-align: center;
}

.fx-post-body__content pre {
	padding: 18px 20px;
	border-radius: var(--fx-radius, 12px);
	background: #0f172a;
	color: #e2e8f0;
	overflow-x: auto;
	font-size: 14px;
	line-height: 1.6;
}

.fx-post-body__content code {
	background: var(--fx-bg-muted, #eeecf2);
	padding: 2px 6px;
	border-radius: 6px;
	font-size: 0.92em;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.fx-post-body__content pre code {
	background: transparent;
	padding: 0;
	font-size: inherit;
}

.fx-post-body__content hr {
	border: 0;
	height: 1px;
	background: var(--fx-border, #e5e7eb);
	margin: 2.5em 0;
}

.fx-post-body__content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.fx-post-body__content table th,
.fx-post-body__content table td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--fx-border, #e5e7eb);
	text-align: left;
	vertical-align: top;
}

.fx-post-body__content table thead th {
	background: var(--fx-bg-soft, #f6f5f8);
	color: var(--fx-text, #2d2f31);
	font-weight: 700;
}

/* Author social icons (auto-indsat via the_content filter) */
.fx-post-body__content .gr-author-icons {
	margin: 32px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--fx-border, #e5e7eb);
}

/* ============================================================
 * Further reading
 * ============================================================ */
.fx-post-further {
	padding: 72px 0 40px;
	background: var(--fx-bg, #ffffff);
}

.fx-post-further__container {
	max-width: var(--fx-max-content, 1140px);
	margin: 0 auto;
	padding: 0 var(--fx-gutter, 24px);
}

.fx-post-further__header {
	margin: 0 0 32px;
	text-align: center;
}

.fx-post-further__heading {
	margin: 0;
	font-family: var(--fx-font-heading, "Ubuntu", sans-serif);
	font-weight: 700;
	font-size: var(--fx-h2, 40px);
	line-height: var(--fx-h2-lh, 1.15);
	letter-spacing: var(--fx-h2-ls, -0.015em);
	color: var(--fx-text, #2d2f31);
}

/* ============================================================
 * Hero tweak: full-bleed er ikke ønsket — hero sidder inde i
 * .fx-post-hero-wrap som respekterer max-content-bredden.
 * ============================================================ */
.fx-post-hero-wrap .custom-featured-hero {
	border-radius: var(--fx-radius-xl, 24px);
}

/* ============================================================
 * Responsive
 * ============================================================ */

/* Tablet: smalere højre-sidebar + gap */
@media (max-width: 1024px) {
	.fx-post-body {
		padding: 32px 0 24px;
	}

	.fx-post-body__container {
		grid-template-columns: minmax(0, 1fr) 240px;
		gap: 40px;
	}

	/* top + max-height følger --fx-header-h automatisk, så ingen
	 * override nødvendig her. */

	.fx-post-further {
		padding: 56px 0 32px;
	}

	.fx-post-further__container {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Mobil: single column — ToC bliver til collapsable panel ØVERST
 * (over artiklen), så brugeren kan hoppe til sektion uden at
 * scrolle gennem hele teksten. Byline-strippen stacker vertikalt. */
@media (max-width: 900px) {
	.fx-post-hero-wrap {
		margin: 0 auto;
		padding: 0;
	}

	.fx-post-hero-wrap .custom-featured-hero {
		border-radius: 0;
	}

	.fx-post-byline {
		padding: 20px var(--fx-gutter, 24px) 0;
	}

	.fx-post-byline__container {
		padding: 16px 0;
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	/* Mobil: share-clusteret står under forfatteren. Drop auto-margin
	 * så den flugter venstre-kant som resten af byline'n. */
	.fx-post-share {
		margin-left: 0;
	}

	.fx-post-body__container {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.fx-post-body__content {
		order: 2;
		max-width: 100%;
	}

	.fx-post-body__toc {
		order: 1;
		position: static;
		top: auto;
		max-height: none;
		display: block; /* drop flex-column på mobil */
		padding-right: 0;
	}

	.fx-post-body__toc > .fx-post-toc {
		overflow: visible;
		flex: none;
	}

	/* Aside-CTA dubler bund-CTA'en og tager plads på mobil — skjul
	 * på små viewports. [blogpost_carousel] + final CTA tager over. */
	.fx-post-body__toc > .fx-post-aside-cta {
		display: none;
	}

	.fx-post-toc {
		padding: 16px 18px;
		background: var(--fx-bg-soft, #f6f5f8);
		border-radius: var(--fx-radius, 12px);
	}

	.fx-post-toc__heading {
		font-size: 16px;
	}

	.fx-post-toc__summary {
		/* Kompakter klik-zonen så den passer ind i mobilens soft panel. */
		margin-bottom: 10px;
	}

	.fx-post-toc__details:not([open]) .fx-post-toc__summary {
		margin-bottom: 0;
	}

	.fx-post-toc__link {
		font-size: 14px;
		padding: 5px 10px;
	}
}

@media (max-width: 600px) {
	.fx-post-body {
		padding: 24px 0 16px;
	}

	.fx-post-body__content {
		font-size: 16px;
		line-height: 1.7;
	}

	.fx-post-body__content blockquote {
		padding: 14px 16px;
	}

	.fx-post-byline__author .author-avatar {
		width: 40px;
		height: 40px;
	}

	.fx-post-byline__author .author-box__name {
		font-size: 15px;
	}

	.fx-post-further {
		padding: 48px 0 24px;
	}
}


/* --- focalx-header --- */
/**
 * FocalX header — white glass, AI Vehicle Inspection
 */

/*
 * Fastgjort top: position:sticky fejler ofte i WP/Astra (overflow/transform på forældre).
 * Vi bruger fixed + --fx-header-h (sættes i header.js) så indhold ikke skjules under baren.
 */
/*
 * Ikke overflow på html: WP admin-bar sætter margin-top på html, og
 * overflow-x: clip dér får dropdowns til at ligge i headerens højde.
 */
html {
	overflow-x: visible;
}

:root {
	/* Baseline before JS measures exact header height */
	--fx-header-h: 84px;
}

@media (max-width: 1200px) {
	:root {
		--fx-header-h: 90px;
	}
}

@media (max-width: 767px) {
	:root {
		/* Fallback før JS måler .fx-header__inner (typisk ~56–64px). */
		--fx-header-h: 58px;
	}
}

html:has(.fx-header) {
	scroll-padding-top: var(--fx-header-h);
}

body {
	overflow-x: clip;
}

/* Admin-bar: overflow-x clip på body gør overflow-y til auto og trækker dropdown ind i headerhøjden. */
body.admin-bar {
	overflow-x: visible;
}

/* Horisontal pill-ToC (`overflow-x: auto` i nested viewport): `clip` på
   dokumentet kan i Chrome forhindre/visuelt klippe nested scroll — `hidden`
   er tilstrækkelig til at undgå uønsket side-scroll. */
html:has(.pill-scroll),
body:has(.pill-scroll) {
	overflow-x: hidden;
}

body:has(.fx-header) {
	padding-top: var(--fx-header-h);
}

/*
 * Astra m.fl.: tema giver ofte padding-top på hovedindhold til en header i flow.
 * Vores body-padding dækker allerede den faste FocalX-header — ellers bliver der dobbelt hvid plads (fx på indlæg).
 */
body:has(.fx-header) .site-content,
body:has(.fx-header) #content.site-content {
	padding-top: 0 !important;
}

body:has(.fx-header) .ast-separate-container .site-content > .ast-container {
	padding-top: 0 !important;
}

body:has(.fx-header) .ast-page-builder-template .site-content {
	padding-top: 0 !important;
}

body:has(.fx-header) #page {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

body:has(.fx-header) #primary {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
}

@supports not (overflow: clip) {
	html,
	body {
		overflow-x: hidden;
	}
}

.fx-header {
	/* Farver arver fra css/tokens.css (:root) — ingen lokale dubletter. */
	--fx-glass: rgba(255, 255, 255, 0.65);
	--fx-glass-border: rgba(255, 255, 255, 0.85);
	--fx-shadow: 0 8px 32px rgba(22, 59, 107, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
	--fx-radius: 16px;
	--fx-max: 1320px;
	/* Fælles klik-/touch-flade (~44px som i WCAG 2.5.5 / typiske HIG-anbefalinger) */
	--fx-tap-h: 44px;
	/* Ens horisontal afstand: sprog | login (i aside) og panel | CTA (i inner) */
	--fx-cluster-gap: 16px;

	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	font-family: var(--fx-font-body);
}

/* WordPress admin bar — ellers ligger header under værktøjslinjen */
.admin-bar .fx-header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	.admin-bar .fx-header {
		top: 46px;
	}
}

/*
 * Blød fade ved sideskift. Browseren laver overgangen først når den nye side
 * er klar, så navigationen bliver ikke forsinket; browsere uden understøttelse
 * skifter side som normalt. Header og admin-bar får egne navne, så de står
 * stille, mens kun indholdet fader.
 */
@view-transition {
	navigation: auto;
}

.fx-header {
	view-transition-name: fx-header;
}

#wpadminbar {
	view-transition-name: fx-admin-bar;
}

::view-transition-old(root),
::view-transition-new(root) {
	animation-duration: 180ms;
}

@media (prefers-reduced-motion: reduce) {
	@view-transition {
		navigation: none;
	}
}

.fx-header__glass {
	padding: 12px 20px;
	background: transparent;
	box-sizing: border-box;
	max-width: 100%;
	overflow-x: clip;
}

@media (min-width: 1201px) {
	.fx-header {
		--fx-max: 1172px;
	}

	/*
	 * Lidt luft over/under glas-kortet — mindre end før (16px) for at undgå kæmpe hvid plads.
	 */
	.fx-header__glass {
		padding-top: 10px;
		padding-bottom: 8px;
		padding-left: 24px;
		padding-right: 24px;
	}

}

/*
 * Admin-bar: WP offsetter allerede dokumentet via html { margin-top: 32/46px }.
 * Body skal kun reservere plads til den faste .fx-header (ikke + toolbar igen).
 */

/* Desktop only: flydende dropdowns (må ikke lække translate/left 50% til tablet/mobil). */
@media (min-width: 1201px) {
	.fx-header__inner {
		display: flex;
		flex-wrap: nowrap;
	}

	.fx-header__panel {
		position: static;
		flex-direction: row;
		flex-wrap: nowrap;
		overflow: visible;
	}

	.fx-header__nav {
		flex-direction: row;
		flex-wrap: nowrap;
		overflow: visible;
	}

	.fx-header__nav-item.fx-header__nav-item--dropdown {
		flex: 0 0 auto;
		min-width: 0;
		max-width: none;
		position: relative;
	}

	/* overflow-x: clip på glass tvinger overflow-y til auto og trækker menuen ind i baren */
	.fx-header,
	.fx-header__glass,
	.fx-header__inner,
	.fx-header__panel,
	.fx-header__nav {
		overflow: visible;
	}

	.fx-header__nav-item--dropdown,
	.fx-header__lang-wrap {
		align-self: center;
		height: var(--fx-tap-h);
		max-height: var(--fx-tap-h);
	}

	/*
	 * Centreret under sit menupunkt. `--fx-menu-shift` sættes af header.js, når
	 * en bred menu ellers ville nå ind over logoet eller ud over glas-kortet.
	 */
	.fx-header .fx-header__menu {
		position: absolute;
		left: 50%;
		right: auto;
		top: calc(100% + 4px);
		margin-left: var(--fx-menu-shift, 0px);
		display: none;
		min-width: 0;
		width: auto;
		max-width: min(420px, 92vw);
		padding: 10px 0;
		background: #fff;
		border: 1px solid rgba(22, 59, 107, 0.1);
		border-radius: 14px;
		box-shadow: 0 16px 48px rgba(22, 59, 107, 0.12), 0 4px 12px rgba(0, 0, 0, 0.06);
		z-index: 30;
		opacity: 0;
		visibility: hidden;
		transform: translateX(-50%);
		pointer-events: none;
		transition: opacity 0.2s ease, visibility 0.2s ease;
	}

	.fx-header .fx-header__nav-item--dropdown:hover .fx-header__menu,
	.fx-header .fx-header__nav-item--dropdown:focus-within .fx-header__menu {
		display: block;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.fx-header .fx-header__nav-item--dropdown:hover .fx-header__menu:not(.fx-header__menu--cols),
	.fx-header .fx-header__nav-item--dropdown:focus-within .fx-header__menu:not(.fx-header__menu--cols) {
		min-width: 280px;
	}

	.fx-header .fx-header__menu--cols {
		min-width: 0;
		max-width: min(720px, calc(100vw - 32px));
		padding: 12px 0;
	}

	.fx-header .fx-header__nav-item--dropdown:hover .fx-header__menu--cols,
	.fx-header .fx-header__nav-item--dropdown:focus-within .fx-header__menu--cols {
		min-width: 520px;
		width: 520px;
	}

	.fx-header__menu--cols .fx-header__menu-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(240px, 1fr));
		gap: 4px 12px;
		align-items: stretch;
	}

	.fx-header .fx-header__lang-menu {
		position: absolute;
		left: 50%;
		right: auto;
		top: calc(100% + 4px);
		margin-left: var(--fx-menu-shift, 0px);
		min-width: 200px;
		padding: 8px 0;
		background: #fff;
		border: 1px solid rgba(22, 59, 107, 0.1);
		border-radius: 14px;
		box-shadow: 0 16px 48px rgba(22, 59, 107, 0.12);
		z-index: 30;
		opacity: 0;
		visibility: hidden;
		transform: translateX(-50%);
		pointer-events: none;
		transition: opacity 0.2s ease, visibility 0.2s ease;
	}

	.fx-header .fx-header__lang-wrap:hover .fx-header__lang-menu,
	.fx-header .fx-header__lang-wrap:focus-within .fx-header__lang-menu {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
}

.fx-header__inner {
	position: relative;
	width: 100%;
	max-width: min(var(--fx-max), 100%);
	min-width: 0;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--fx-cluster-gap);
	flex-wrap: nowrap;
	box-sizing: border-box;

	/* Én glas-kasse om logo + menu (tidligere kun på .fx-header__panel) */
	padding: 10px 16px;
	border-radius: var(--fx-radius);
	background: var(--fx-glass);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	backdrop-filter: blur(20px) saturate(180%);
	border: 1px solid var(--fx-glass-border);
	box-shadow: var(--fx-shadow);
}

/* ----- Logo ----- */
.fx-header__brand {
	display: flex;
	align-items: center;
	text-decoration: none;
	color: var(--fx-text);
	z-index: 2;
	line-height: 0;
}

.fx-header__logo-img {
	display: block;
	height: auto;
	max-height: 28px;
	width: auto;
	max-width: min(118px, 34vw);
	object-fit: contain;
}

@media (max-width: 1200px) {
	.fx-header__logo-img {
		max-height: 24px;
		max-width: min(102px, 40vw);
	}
}

/* Nav + sprog + login (CTA ligger som søskende efter panelet — synlig ved siden af burger på mobil/tablet) */
.fx-header__panel {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: nowrap;
	gap: 8px 16px;
	min-width: 0;
}

.fx-header__nav {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 4px 2px;
}

.fx-header__aside {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	flex-shrink: 0;
	gap: var(--fx-cluster-gap);
	margin-left: auto;
	padding-left: 8px;
	border-left: 1px solid rgba(22, 59, 107, 0.12);
}

/* Fjern default stiplet outline efter museklik (:focus). Tastatur: stadig :focus-visible med baggrund. */
.fx-header__link:focus,
.fx-header__trigger:focus,
.fx-header__menu-list a:focus,
.fx-header__lang-btn:focus,
.fx-header__lang-list a:focus,
.fx-header__login:focus,
.fx-header__cta:focus {
	outline: none;
}

/* Nav triggers & links */
.fx-header__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--fx-tap-h);
	box-sizing: border-box;
	padding: 0 14px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--fx-text);
	text-decoration: none;
	border-radius: 10px;
	box-shadow: none;
	transition: background 0.15s ease, color 0.15s ease;
}

.fx-header__link:hover,
.fx-header__link:focus-visible {
	background: rgba(22, 59, 107, 0.08);
	color: var(--fx-blue);
	outline: none;
	box-shadow: none;
}

.fx-header__nav-item {
	position: relative;
}

/* Usynlig bro mellem trigger og dropdown — undgår at hover mistes i mellemrummet */
@media (min-width: 1201px) {
	.fx-header__nav-item--dropdown::after,
	.fx-header__lang-wrap::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		height: 14px;
		z-index: 29;
		pointer-events: auto;
	}
}

.fx-header__trigger {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: var(--fx-tap-h);
	box-sizing: border-box;
	padding: 0 14px;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--fx-text);
	background: transparent;
	border: none;
	border-radius: 10px;
	box-shadow: none;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.fx-header__trigger:hover,
.fx-header__trigger:focus-visible,
.fx-header__nav-item.is-open .fx-header__trigger {
	background: rgba(22, 59, 107, 0.08);
	color: var(--fx-blue);
	box-shadow: none;
	outline: none;
}

.fx-header__chev {
	width: 8px;
	height: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform 0.2s ease;
	opacity: 0.75;
}

.fx-header__nav-item.is-open .fx-header__chev {
	transform: rotate(225deg) translateY(2px);
}

.fx-header__menu--cols .fx-header__menu-list > li {
	min-width: 0;
}

.fx-header__menu-list {
	list-style: none;
	margin: 0;
	padding: 6px 8px;
}

.fx-header__menu-list > li {
	margin: 3px 0;
}

.fx-header__menu-list a {
	display: block;
	padding: 10px 14px;
	font-size: 15px;
	font-weight: 500;
	color: var(--fx-text);
	text-decoration: none;
	border-radius: 12px;
	transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.fx-header__menu-list a:hover,
.fx-header__menu-list a:focus-visible {
	background: rgba(22, 59, 107, 0.09);
	color: var(--fx-blue);
	box-shadow: 0 2px 10px rgba(22, 59, 107, 0.08);
	outline: none;
}

/* Industries: ikon og tekst på samme række (aldrig stablet) */
.fx-header__menu-list a.fx-header__menu-link--industry {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap;
	align-items: center;
	gap: 12px;
	padding: 10px 12px 10px 10px;
	border-radius: 14px;
}

.fx-header__icon-cell {
	flex-shrink: 0;
	flex-grow: 0;
	align-self: center;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: linear-gradient(180deg, rgba(22, 59, 107, 0.07) 0%, rgba(22, 59, 107, 0.11) 100%);
	color: var(--fx-blue);
	transition: background 0.18s ease, transform 0.18s ease;
	/* ingen inset “hvid kant” — den gav hvid glans øverst/til venstre ved hover */
	box-shadow: none;
}

.fx-header__icon-cell svg {
	display: block;
	width: 18px;
	height: 18px;
	opacity: 0.95;
}

.fx-header__link-text {
	flex: 1 1 auto;
	min-width: 0;
	line-height: 1.35;
	text-align: left;
}

.fx-header__menu-link--industry:hover .fx-header__icon-cell,
.fx-header__menu-link--industry:focus-visible .fx-header__icon-cell {
	background: linear-gradient(180deg, rgba(22, 59, 107, 0.12) 0%, rgba(22, 59, 107, 0.18) 100%);
	box-shadow: none;
	transform: scale(1.02);
}

@media (min-width: 1201px) {
	.fx-header__nav-item--dropdown:hover [data-fx-dropdown-trigger],
	.fx-header__nav-item--dropdown:focus-within [data-fx-dropdown-trigger] {
		background: rgba(22, 59, 107, 0.08);
		color: var(--fx-blue);
		box-shadow: none;
	}
}

/* Language */
.fx-header__lang-wrap {
	position: relative;
}

.fx-header__lang-btn {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	min-height: var(--fx-tap-h);
	box-sizing: border-box;
	padding: 0 12px;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--fx-text);
	background: rgba(255, 255, 255, 0.5);
	border: 1px solid rgba(22, 59, 107, 0.15);
	border-radius: 10px;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
	-webkit-tap-highlight-color: transparent;
}

.fx-header__lang-btn:hover,
.fx-header__lang-wrap.is-open .fx-header__lang-btn {
	background: rgba(22, 59, 107, 0.06);
	border-color: rgba(22, 59, 107, 0.22);
	color: var(--fx-text) !important;
	box-shadow: none;
}

/* Museklik giver :focus uden :focus-visible — undgå blå/grå browser-highlight på knappen */
.fx-header__lang-btn:focus:not(:focus-visible) {
	background: rgba(255, 255, 255, 0.5);
	border-color: rgba(22, 59, 107, 0.15);
	color: var(--fx-text);
	box-shadow: none;
}

.fx-header__lang-wrap.is-open .fx-header__lang-btn:focus:not(:focus-visible) {
	background: rgba(22, 59, 107, 0.06);
	border-color: rgba(22, 59, 107, 0.22);
}

.fx-header__lang-btn:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px rgba(22, 59, 107, 0.28);
}

.fx-header__lang-btn:active {
	background: rgba(22, 59, 107, 0.08);
	color: var(--fx-text);
}

.fx-header__lang-btn .fx-header__lang-current,
.fx-header__lang-btn .fx-header__chev {
	color: inherit;
}

.fx-header__lang-flag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	flex-shrink: 0;
}

.fx-header__lang-flag--btn {
	font-size: 1rem;
	margin-right: 2px;
}

/* WPML country_flag_url — samme fodaftryk som placeholder */
.fx-header__lang-flag-img {
	display: block;
	width: 20px;
	height: 15px;
	object-fit: cover;
	border-radius: 2px;
	flex-shrink: 0;
	box-shadow: 0 0 0 1px rgba(22, 59, 107, 0.08);
}

.fx-header__lang-flag .fx-lang-flag-placeholder {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 15px;
	padding: 0 2px;
	box-sizing: border-box;
	font-size: 8px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1;
	color: #163b6b;
	background: rgba(22, 59, 107, 0.1);
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgba(22, 59, 107, 0.12);
}

.fx-header__lang-list {
	list-style: none;
	margin: 0;
	padding: 6px 8px;
}

.fx-header__lang-list > li {
	margin: 3px 0;
}

.fx-header__lang-list a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--fx-text);
	text-decoration: none;
	border-radius: 12px;
	transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.fx-header__lang-label {
	flex: 1;
	min-width: 0;
}

.fx-header__lang-list a:hover,
.fx-header__lang-list a:focus-visible {
	background: rgba(22, 59, 107, 0.09);
	color: var(--fx-blue);
	box-shadow: 0 2px 10px rgba(22, 59, 107, 0.08);
	outline: none;
}

/* Log in */
.fx-header__login {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--fx-tap-h);
	box-sizing: border-box;
	padding: 0 14px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--fx-blue);
	text-decoration: none;
	border-radius: 10px;
	transition: background 0.15s ease;
	white-space: nowrap;
}

.fx-header__login:hover,
.fx-header__login:focus-visible {
	background: rgba(22, 59, 107, 0.08);
	outline: none;
}

/* CTA (desktop: efter .fx-header__panel; mobil: samme række som logo + burger) */
.fx-header__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	min-height: var(--fx-tap-h);
	box-sizing: border-box;
	padding: 0 20px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: #ffffff !important;
	background: var(--fx-blue);
	text-decoration: none;
	border-radius: 999px;
	box-shadow: 0 4px 14px rgba(22, 59, 107, 0.35);
	transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
	white-space: nowrap;
}

.fx-header__cta:hover,
.fx-header__cta:focus-visible {
	background: var(--fx-blue-hover);
	box-shadow: 0 6px 20px rgba(22, 59, 107, 0.45);
	transform: translateY(-1px);
	outline: none;
}

/* Burger */
.fx-header__burger {
	display: none;
	align-items: center;
	justify-content: center;
	width: var(--fx-tap-h);
	height: var(--fx-tap-h);
	padding: 0;
	box-sizing: border-box;
	border: 1px solid rgba(22, 59, 107, 0.2);
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.7);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	cursor: pointer;
	z-index: 2;
	-webkit-tap-highlight-color: transparent;
	color: inherit;
}

.fx-header__burger:hover,
.fx-header__burger:active,
.fx-header__burger:focus,
.fx-header__burger:focus-visible {
	background: rgba(255, 255, 255, 0.7);
	border-color: rgba(22, 59, 107, 0.2);
	outline: none;
}

.fx-header__burger:focus-visible {
	box-shadow: 0 0 0 2px rgba(22, 59, 107, 0.35);
}

.fx-header__burger-lines,
.fx-header__burger-lines::before,
.fx-header__burger-lines::after {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--fx-text);
	border-radius: 1px;
	transition: transform 0.25s ease, opacity 0.2s ease;
}

.fx-header__burger-lines {
	position: relative;
}

.fx-header__burger-lines::before,
.fx-header__burger-lines::after {
	content: "";
	position: absolute;
	left: 0;
}

.fx-header__burger-lines::before {
	top: -6px;
}

.fx-header__burger-lines::after {
	top: 6px;
}

.fx-header.is-menu-open .fx-header__burger-lines {
	background: transparent;
}

.fx-header.is-menu-open .fx-header__burger-lines::before {
	top: 0;
	transform: rotate(45deg);
}

.fx-header.is-menu-open .fx-header__burger-lines::after {
	top: 0;
	transform: rotate(-45deg);
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	border: 0;
	word-wrap: normal !important;
}

/* ----- Mobile / tablet: logo | CTA | burger; panel som overlay (skubber ikke sideindhold) ----- */
@media (max-width: 1200px) {
	.fx-header {
		overflow: visible;
	}

	.fx-header__inner {
		position: relative;
		z-index: 1;
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto auto;
		grid-template-rows: auto;
		align-items: center;
		column-gap: 8px;
	}

	.fx-header__brand {
		grid-column: 1;
		grid-row: 1;
		justify-self: start;
		min-width: 0;
	}

	.fx-header__cta {
		grid-column: 2;
		grid-row: 1;
		justify-self: end;
		width: auto;
		max-width: min(100%, 200px);
		min-height: var(--fx-tap-h);
		padding: 0 16px;
		font-size: 15px;
		line-height: 1.2;
		text-align: center;
	}

	.fx-header__burger {
		display: inline-flex;
		grid-column: 3;
		grid-row: 1;
		justify-self: end;
		touch-action: manipulation;
	}

	/* Ud af flow: ligger over sidens indhold under glass-baren */
	.fx-header__panel {
		position: absolute;
		left: 0;
		right: 0;
		top: calc(100% + 8px);
		z-index: 20;
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		box-sizing: border-box;
		max-height: 0;
		overflow: hidden;
		opacity: 0;
		visibility: hidden;
		padding: 0;
		margin: 0;
		pointer-events: none;
		border-radius: 14px;
		background: var(--fx-bg, #fff);
		border: 1px solid rgba(22, 59, 107, 0.12);
		box-shadow: 0 16px 48px rgba(22, 59, 107, 0.15), 0 8px 24px rgba(0, 0, 0, 0.08);
		transition:
			max-height 0.4s ease,
			opacity 0.25s ease,
			visibility 0.25s ease,
			padding 0.3s ease;
	}

	/* Primært hovedpanel ved burger: .fx-header__panel (= #fx-header-panel, data-fx-panel) */
	.fx-header.is-menu-open .fx-header__panel,
	.fx-header.is-menu-open #fx-header-panel {
		visibility: visible;
		pointer-events: auto;
		max-height: min(90vh, 900px);
		opacity: 1;
		padding: 16px;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		/* Undgå at browseren “kaster” scroll, når en lang dropdown åbner (scroll anchoring) */
		overflow-anchor: none;
		overscroll-behavior: contain;
	}

	/*
	 * Kun mobil: luft *uden om* det hvide panel (margin), ikke ekstra padding *inde* i panelet.
	 */
	@media (max-width: 767px) {
		.fx-header.is-menu-open .fx-header__panel,
		.fx-header.is-menu-open #fx-header-panel {
			padding: 16px;
			margin-left: 24px;
			margin-right: 24px;
			width: auto;
		}
	}

	/* Under Safari/Chrome kan anchoring stadig ske på børn — slå fra på alt inde i panelet */
	.fx-header.is-menu-open .fx-header__panel * {
		overflow-anchor: none;
	}

	.fx-header__nav {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
		min-width: 0;
	}

	.fx-header__nav-item {
		font-size: 15px;
	}

	.fx-header__link {
		min-height: var(--fx-tap-h);
		padding: 0 12px;
		border-radius: 10px;
		font-size: 15px;
		box-shadow: none;
	}

	/*
	 * Luft som dropdown-rækker (margin). Ingen border-bottom her: kombineret med
	 * border-radius på <a> tegner den en “skygge-linje” langs de afrundede hjørner.
	 * Separator mellem rækker kommer fra .fx-header__nav-item--dropdown + aside border-top.
	 */
	.fx-header__nav > .fx-header__link {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		margin-top: 6px;
		margin-bottom: 6px;
	}

	.fx-header__nav > .fx-header__link:first-child {
		margin-top: 0;
	}

	.fx-header__nav > .fx-header__link:last-child {
		margin-bottom: 0;
	}

	/* Sidste dropdown-række: undgå ekstra luft før aside (sprog) */
	.fx-header__nav > .fx-header__nav-item:last-child {
		padding-bottom: 0;
	}

	/* Luft mellem separatorlinje og trigger-hover — padding inde for border */
	.fx-header__nav-item--dropdown {
		padding-top: 6px;
		padding-bottom: 6px;
		border-bottom: 1px solid rgba(22, 59, 107, 0.08);
		position: relative;
		z-index: 0;
	}

	.fx-header__nav-item--dropdown.is-open {
		z-index: 2;
	}

	.fx-header__trigger {
		width: 100%;
		justify-content: space-between;
		min-height: var(--fx-tap-h);
		padding: 0 12px;
		border-radius: 10px;
		font-size: 15px;
		box-shadow: none;
		touch-action: manipulation;
	}

	/*
	 * Accordion på mobil: IKKE grid 0fr/1fr — Safari/iOS viser ofte tomt indhold eller klipper tekst.
	 * Brug display none/block (pålideligt). Ingen animation nødvendig.
	 */
	.fx-header__menu,
	.fx-header__lang-menu {
		position: static !important;
		left: auto !important;
		right: auto !important;
		top: auto !important;
		inset: auto !important;
		transform: none !important;
		min-width: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-shadow: none;
		border: none;
		background: transparent;
		pointer-events: none;
	}

	.fx-header__menu {
		display: none;
		box-sizing: border-box;
		border-radius: 10px;
		margin: 0 0 4px 0;
		padding: 8px 0;
		overflow: visible;
		opacity: 1;
		visibility: visible;
	}

	.fx-header__nav-item--dropdown:hover .fx-header__menu,
	.fx-header__nav-item--dropdown:focus-within .fx-header__menu,
	.fx-header__lang-wrap:hover .fx-header__lang-menu,
	.fx-header__lang-wrap:focus-within .fx-header__lang-menu {
		transform: none !important;
		left: auto !important;
		right: auto !important;
		top: auto !important;
	}

	.fx-header__nav-item.is-open .fx-header__menu {
		display: block;
		opacity: 1;
		visibility: visible;
		transform: none !important;
		pointer-events: auto;
	}

	/*
	 * Løsning C (mobil burger): lang liste scroller inde i undermenuen — ikke hele panelet.
	 * Undgår scroll anchoring / hop til bund når accordion åbner (kun primær nav, ikke sprog).
	 */
	.fx-header__nav .fx-header__nav-item--dropdown.is-open > .fx-header__menu[data-fx-dropdown-menu] {
		max-height: min(55vh, 420px);
		max-height: min(55dvh, 420px);
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		overflow-anchor: none;
	}

	/* Industries (cols): lidt lavere scroll-kasse end Product */
	.fx-header__nav .fx-header__nav-item--dropdown.is-open > .fx-header__menu--cols[data-fx-dropdown-menu] {
		max-height: min(46vh, 340px);
		max-height: min(46dvh, 340px);
	}

	.fx-header__menu-list {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding-left: 10px;
		padding-right: 10px;
		margin: 0;
	}

	@media (max-width: 767px) {
		.fx-header__menu-list {
			padding: 0;
		}
	}

	.fx-header__menu-list a {
		box-sizing: border-box;
		max-width: 100%;
		font-size: 15px;
	}

	/* Fjern desktop min-bredde på industries — undgår horisontal scroll */
	.fx-header__menu--cols {
		min-width: 0;
		max-width: 100%;
		overflow-anchor: none;
	}

	.fx-header__menu--cols .fx-header__menu-list {
		display: grid;
		grid-template-columns: 1fr;
		gap: 4px 0;
		overflow-anchor: none;
	}

	.fx-header__nav-item--dropdown:has(.fx-header__menu--cols) {
		overflow-anchor: none;
	}

	/* Industries-rækker: undgå at flex + smal bredde klipper tekst til venstre */
	.fx-header__menu--cols .fx-header__menu-list a.fx-header__menu-link--industry {
		width: 100%;
		min-width: 0;
		padding-left: 8px;
		padding-right: 8px;
		gap: 10px;
	}

	.fx-header__aside {
		margin-left: 0;
		padding-left: 0;
		border-left: none;
		flex-direction: column;
		align-items: stretch;
		gap: var(--fx-cluster-gap);
		padding-top: 0;
		border-top: 1px solid rgba(22, 59, 107, 0.1);
	}

	.fx-header__lang-wrap {
		width: 100%;
	}

	.fx-header__lang-btn {
		width: 100%;
		justify-content: space-between;
		touch-action: manipulation;
		margin-top: 6px;
		margin-bottom: 6px;
		box-shadow: none;
	}

	.fx-header__lang-menu {
		position: static;
		display: none;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		margin-top: 8px;
		box-shadow: none;
		background: #fff;
		border: 1px solid rgba(22, 59, 107, 0.1);
		border-radius: 10px;
		opacity: 1;
		overflow: visible;
		transform: none;
		pointer-events: none;
		/* Global .fx-header__lang-menu bruger visibility:hidden — overskriv når åben */
		visibility: hidden;
	}

	.fx-header__lang-wrap.is-open .fx-header__lang-menu {
		display: block;
		visibility: visible;
		opacity: 1;
		transform: none;
		pointer-events: auto;
	}

	.fx-header__lang-list {
		width: 100%;
		box-sizing: border-box;
		padding-left: 8px;
		padding-right: 8px;
	}

	.fx-header__lang-label {
		font-size: 15px;
	}

	.fx-header__login {
		display: flex;
		justify-content: center;
		min-height: var(--fx-tap-h);
		padding: 0 14px;
		text-align: center;
	}
}

@media (max-width: 1200px) and (min-width: 380px) {
	.fx-header__cta {
		min-height: var(--fx-tap-h);
		padding: 0 16px;
		max-width: min(100%, 220px);
	}
}

/* Kun mobil: glas kant-til-kant (tablet 768px+ beholder afrundet kasse / glas-padding) */
@media (max-width: 767px) {
	.fx-header__glass {
		padding: 0;
	}

	.fx-header__inner {
		width: 100%;
		max-width: none;
		margin: 0;
		border-radius: 0;
		border-left: none;
		border-right: none;
		border-top: none;
		border-bottom: 1px solid rgba(22, 59, 107, 0.1);
		box-shadow: 0 10px 32px rgba(22, 59, 107, 0.07), 0 2px 8px rgba(0, 0, 0, 0.04);
		padding-top: max(10px, env(safe-area-inset-top, 0px));
		padding-bottom: 10px;
		padding-left: max(12px, env(safe-area-inset-left, 0px));
		padding-right: max(12px, env(safe-area-inset-right, 0px));
	}
}

/* Scroll-lock kun ved åben burger — overflow; ingen `height: 100%` på html
 * (kombineret med WP admin-bar gav ofte hvid viewport). */
html.fx-header-no-scroll {
	overflow: hidden !important;
	overscroll-behavior: none;
}

body.fx-header-no-scroll {
	overflow: hidden !important;
	overscroll-behavior: none;
	/* position/top/width sættes inline i header.js — genskaber scroll ved luk */
}

/* Panel må stadig modtage vertikal scroll + taps inde i menuen */
.fx-header.is-menu-open .fx-header__panel,
.fx-header.is-menu-open #fx-header-panel {
	touch-action: pan-y;
}

/* .fx-header-no-scroll sættes fra header.js kun når burger-menuen er åben. */


/* --- blogpost-carousel --- */
.info-vehicle-card:focus {
  outline: none;
}

/* Karussel-sektion – z-index så kort ikke ligger under næste sektion / header */
.info-vehicle-carousel-section {
  max-width: var(--fx-max-content, 1140px);
  margin: 0 auto;
  position: relative;
  z-index: 2;
  overflow: visible;
  isolation: isolate;
  padding: 12px 0 8px;
  box-sizing: border-box;
}

/* Vandret scroll: 100% af parent (undgår 100vw der klippes af forældre m. overflow) */
.info-vehicle-horizontal-scroll-container {
  display: flex;
  flex-wrap: nowrap;
  gap: 16px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  padding: 0;
  margin-bottom: 1rem;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.info-vehicle-horizontal-scroll-container::-webkit-scrollbar {
  display: none;
}

/* Kort-styling */
.info-vehicle-card {
  flex: 0 0 auto;
  width: 360px;
  min-height: 500px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e0dfe5;
  border-radius: 16px;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
}

/* Billede + primary category tag */
.info-vehicle-card-image {
  position: relative;
  flex-shrink: 0;
  border-radius: 16px 16px 0 0;
  overflow: hidden;
  line-height: 0;
}

.info-vehicle-category-tag {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #2d2f31;
  padding: 6px 12px;
  border-radius: 50px;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  max-width: calc(100% - 32px);
  line-height: 1.2;
}

.info-vehicle-card-image .info-vehicle-thumb,
.info-vehicle-card-image img.info-vehicle-thumb {
  width: 100%;
  height: 250px;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform 0.35s ease;
  will-change: transform;
}

.info-vehicle-card:hover .info-vehicle-card-image .info-vehicle-thumb,
.info-vehicle-card:hover .info-vehicle-card-image img.info-vehicle-thumb {
  transform: scale(1.03);
}

/* Read time + dato */
.info-vehicle-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 14px;
  padding: 14px 16px 0;
  font-size: 14px;
}

.info-vehicle-read-time {
  color: #163b6b;
  font-weight: 600;
}

.info-vehicle-card-date {
  color: rgba(45, 47, 49, 0.7);
  font-weight: 400;

}

/* Overskrift */
.info-vehicle-card-title {
  padding: 12px 16px 8px;
  margin: 0;
  font-size: 20px !important;
  line-height: 1.3em !important;
  font-weight: 700;
  color: #2d2f31;
  transition: color 0.2s ease;
}

/* Tekstuddrag */
.info-vehicle-card-excerpt {
  font-size: 14px;
  color: rgba(45, 47, 49, 0.8);
  padding: 0 16px 12px;
  line-height: 1.6em;
  margin: 0;
  flex: 1;
}

/* Forfatter */
.info-vehicle-card-author {
  font-size: 14px;
  color: rgba(45, 47, 49, 0.7);
  padding: 0 16px 18px;
  margin-top: auto;
}

/* Hover-effekt: skift heading-farve til brand-navy (drop underline,
 * som virkede billig og rodede med kort-typografien). Også på
 * tastatur-fokus så hover-state er konsistent for accessibility. */
.info-vehicle-card:hover .info-vehicle-card-title,
.info-vehicle-card:focus-visible .info-vehicle-card-title {
  color: var(--fx-blue, #163b6b);
  text-decoration: none;
}

/* Slider-container – samme bredde som scroll (inde i sektion) */
.info-vehicle-carousel-slider-container {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0 clamp(12px, 3vw, 24px);
  margin-bottom: 0;
  text-align: center;
}

/* Slider-styling */
.info-vehicle-carousel-slider-container [data-bpc-slider="1"] {
  -webkit-appearance: none;
  width: 100%;
  height: 9px;
  background: #ddd;
  border-radius: 4px;
  outline: none;
  margin: 10px 0;
  cursor: pointer;
  border: 1px solid #e0dfe5;
  box-shadow: none;
}

.info-vehicle-carousel-slider-container [data-bpc-slider="1"]::-webkit-slider-runnable-track {
  background: #ddd;
  height: 9px;
  border-radius: 4px;
  border: 1px solid #e0dfe5;
  box-shadow: none;
}

.info-vehicle-carousel-slider-container [data-bpc-slider="1"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: var(--bpc-thumb-w, 350px);
  height: 7px;
  background: #1b3b64;
  border-radius: 17px;
  border: none;
  box-shadow: none;
  cursor: pointer;
  margin-top: 0;
  position: relative;
}

/* Firefox */
.info-vehicle-carousel-slider-container [data-bpc-slider="1"]::-moz-range-thumb {
  width: var(--bpc-thumb-w, 350px);
  height: 7px;
  background: #1b3b64;
  border-radius: 17px;
  border: none;
  box-shadow: none;
  cursor: pointer;
}

/* Edge */
.info-vehicle-carousel-slider-container [data-bpc-slider="1"]::-ms-thumb {
  width: var(--bpc-thumb-w, 350px);
  height: 7px;
  background: #1b3b64;
  border-radius: 17px;
  border: none;
  box-shadow: none;
  cursor: pointer;
}

/* Mobile: Shorter slider thumb */
@media (max-width: 768px) {
  .info-vehicle-carousel-slider-container [data-bpc-slider="1"]::-webkit-slider-thumb {
    width: var(--bpc-thumb-w, 100px);
  }

  .info-vehicle-carousel-slider-container [data-bpc-slider="1"]::-moz-range-thumb {
    width: var(--bpc-thumb-w, 100px);
  }

  .info-vehicle-carousel-slider-container [data-bpc-slider="1"]::-ms-thumb {
    width: var(--bpc-thumb-w, 100px);
  }
}

.info-vehicle-carousel-slider-container .screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  border: 0;
  white-space: nowrap;
}

/* Mobilvenlig størrelse */
@media (max-width: 768px) {
  .info-vehicle-card {
    width: 280px;
    min-height: 460px;
  }

  .info-vehicle-carousel-slider-container {
    padding: 0 24px;
  }

  .info-vehicle-horizontal-scroll-container {
    padding: 8px 24px 1rem;
  }

  .info-vehicle-card-image .info-vehicle-thumb,
  .info-vehicle-card-image img.info-vehicle-thumb {
    height: 200px;
  }

  .info-vehicle-card-title {
    font-size: 18px !important;
  }
}

/* Tablet: 24px left/right padding */
@media (max-width: 1024px) {
  .info-vehicle-horizontal-scroll-container {
    padding: 8px 24px 1rem;
  }
}

