/* --- 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-logo-carousel-css --- */
/**
 * Wrapper — section.fx-logo-carousel-wrap.
 * Matches frontpage design: hårfin top-border + padding så sektionen
 * visuelt skiller sig fra hero.
 */
.fx-logo-carousel-wrap {
    padding: clamp(32px, 5vw, 56px) var(--fx-gutter, 24px);
    border-top: 1px solid var(--fx-border, rgba(45, 47, 49, 0.08));
    background: var(--fx-bg, #fff);
    /* Block + auto-margin på child. Ikke `display: grid` — grid-kolonnen
       sizes efter max-content af descendants, hvilket får den 9k px brede
       `.fx-logo-carousel__track` (uden for viewport, men stadig med i
       intrinsic sizing) til at blæse kolonnen op, så centreringen skubber
       indholdet flere tusinde pixels ud til højre og sektionen ender tom. */
    overflow: hidden;
}

.fx-logo-carousel-wrap > .fx-logo-carousel {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--fx-max-content, 1140px);
    margin: 0 auto;
}

.fx-logo-carousel {
    --fx-logo-height: 90px;
    --fx-logo-gap: clamp(0.45rem, 0.8vw, 0.75rem);
    --fx-scroll-duration: 114s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
    width: 100%;
    user-select: none;
    -webkit-user-select: none;
}

.fx-logo-carousel__title-wrap {
    width: 100%;
    text-align: center;
}

.fx-logo-carousel__title {
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    white-space: normal;
}

.fx-logo-carousel__viewport {
    position: relative;
    overflow: hidden;
    width: 100%;
    mask-image: linear-gradient(to right, transparent 0, #000 5%, #000 95%, transparent 100%);
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 5%, #000 95%, transparent 100%);
}

.fx-logo-carousel__track {
    display: flex;
    width: max-content;
    will-change: transform;
    animation: fx-logo-carousel-scroll var(--fx-scroll-duration) linear infinite;
}

.fx-logo-carousel__set {
    display: flex;
    align-items: center;
    gap: var(--fx-logo-gap);
    padding-inline-end: var(--fx-logo-gap);
}

.fx-logo-carousel__item {
    --fx-logo-item-width: clamp(100px, 12vw, 150px);
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--fx-logo-item-width);
    min-width: var(--fx-logo-item-width);
    height: calc(var(--fx-logo-height) + 14px);
}

.fx-logo-carousel__item img {
    display: block;
    width: 100%;
    height: var(--fx-logo-height);
    object-fit: contain;
    /* Ingen filter: kilde-PNG'erne har allerede forskellige tonaliteter
       (nogle mørkegrå, nogle næsten hvide), så et globalt brightness/
       grayscale-filter skubber dele af logoerne enten helt sorte eller
       usynlige. Vi viser logoerne i deres oprindelige farver. */
    transform: scale(1);
    transition: transform 0.35s ease;
    backface-visibility: hidden;
    -webkit-user-drag: none;
    user-select: none;
    -webkit-user-select: none;
}

.fx-logo-carousel__item img:hover {
    transform: scale(1.05);
}

.fx-logo-carousel:hover .fx-logo-carousel__track {
    animation-play-state: paused;
}

@keyframes fx-logo-carousel-scroll {
    from {
        transform: translate3d(0, 0, 0);
    }
    to {
        transform: translate3d(-50%, 0, 0);
    }
}

@media (max-width: 1024px) {
    .fx-logo-carousel {
        gap: 1.7rem;
        --fx-logo-gap: 2rem;
        --fx-scroll-duration: 94s;
        --fx-logo-item-width: clamp(135px, 20vw, 185px);
    }
}

@media (max-width: 767px) {
    .fx-logo-carousel {
        --fx-logo-height: 72px;
        --fx-logo-gap: 0.25rem;
        --fx-scroll-duration: 74s;
    }

    .fx-logo-carousel__item {
        --fx-logo-item-width: clamp(108px, 33vw, 145px);
    }
}


/* --- 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-frontpage --- */
/**
 * FocalX — Frontpage-specifik CSS.
 *
 * Matcher Elementor kit post-2194 typografi og layout:
 *   max-content 1140px · Ubuntu font · H1 48 / H2 40 / H3 32
 *   body 18px · text #2D2F31CC · headlines #2D2F31 · primary blue #163B6B
 */

/* ============================================================
 * Shared primitives
 * ============================================================ */

.fx-main--frontpage {
	font-family: var(--fx-font-body);
	font-size: var(--fx-text-base);
	color: var(--fx-text-body);
}

.fx-main--frontpage section {
	scroll-margin-top: calc(var(--fx-header-h, 84px) + 24px);
}

/* Alle H1-H3 bruger Ubuntu + primary text color fra tokens */
.fx-main--frontpage h1,
.fx-main--frontpage h2,
.fx-main--frontpage h3,
.fx-main--frontpage h4,
.fx-main--frontpage h5,
.fx-main--frontpage h6 {
	font-family: var(--fx-font-heading);
	color: var(--fx-text);
	line-height: 1.2;
	/* margin-bottom kommer fra global typography.css; komponenter overrider frit */
}

.fx-main--frontpage h1 { font-size: var(--fx-h1); }
.fx-main--frontpage h2 { font-size: var(--fx-h2); }
.fx-main--frontpage h3 { font-size: var(--fx-h3); }
.fx-main--frontpage h4 { font-size: var(--fx-h4); }
.fx-main--frontpage h5 { font-size: var(--fx-h5); }
.fx-main--frontpage h6 { font-size: var(--fx-h6); }

/* Hero (.fx-hero) base-styles ligger i css/hero.css — reusable sektion.
 * Her overstyrer vi billede-containeren for frontpage-variantens promo-
 * billede (telefon-mockup + bil med AI-dent-annotationer). Base hero bruger
 * naturlig billedhøjde (height: auto); **≥768px (2 kolonner):** ét fælles sæt
 * promo-tal (samme på iPad mini som iPad Pro — undgår split 768–1023 vs 1024+).
 * Produkt-siden (page-product.css) bruger margin-right i stedet for margin-left. */
.fx-hero--frontpage .fx-hero__image-wrap {
	aspect-ratio:  auto;
	border-radius: 0;
	overflow:      visible;
	max-width:     none;
	margin-left:   0;
	background:    transparent;
}

.fx-hero--frontpage .fx-hero__image {
	width:           auto;
	height:          auto;
	max-width:       100%;
	object-fit:      contain;
	object-position: left bottom;
	display:         block;
}

/* Tablet + PC (alle viewports med 2-kolonne hero): ét sæt grid/media/wrap/img
 * så iPad mini (768–1023) ikke afviger fra iPad Pro / desktop (1024+). */
@media (min-width: 768px) {
	.fx-hero--frontpage .fx-hero__container {
		align-items: stretch;
	}

	.fx-hero--frontpage .fx-hero__content {
		align-self: stretch;
	}

	.fx-hero--frontpage {
		overflow-x: clip;
	}

	.fx-hero--frontpage .fx-hero__media {
		position: relative;
		left: 0;
		z-index: 0;
		justify-self: start;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		align-items: flex-end;
		min-width: 0;
	}

	.fx-hero--frontpage .fx-hero__image-wrap {
		display: flex;
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
		justify-content: flex-start;
		align-items: flex-end;
	}

	.fx-hero--frontpage .fx-hero__image {
		width: auto;
		height: 420px;
		max-width: calc(100% + 130px);
		object-fit: contain;
		object-position: left bottom;
		margin-bottom: -64px;
		margin-left: -100px;
	}
}

/* Mobil: sikrer naturligt billedformat (wrap + img). */
@media (max-width: 767px) {
	.fx-hero--frontpage .fx-hero__image-wrap {
		aspect-ratio: auto;
	}

	.fx-hero--frontpage .fx-hero__image {
		object-position: center bottom;
		max-width: calc(100% + 88px);
		margin-left: -66px;
		margin-bottom: -42px;

	}
}

/* How it works (.fx-hiw) styles er flyttet til css/how-it-works.css — reusable sektion. */

/* ============================================================
 * SYSTEM OF RECORD
 *
 * Header (centreret):  mint-pill ("PLATFORM") + H2 + intro
 * Body (2 kolonner):   accordion (venstre) + illustration-card (højre)
 * ============================================================ */

.fx-sor {
	padding: var(--fx-section-py) var(--fx-gutter);
	background: var(--fx-bg);
}

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

/* ---------- Header (centered) ---------- */

.fx-sor__header {
	max-width: 760px;
	margin: 0 auto clamp(40px, 5vw, 64px);
	text-align: center;
}

/* Pill-styles arves fra .fx-eyebrow i tokens.css. Her sætter vi kun
   margin-bottom så eyebrow'en står i korrekt afstand til H2'en under. */
.fx-sor__eyebrow {
	margin-bottom: 20px;
}

.fx-sor__title {
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 0;
}

.fx-sor__intro {
	font-size: var(--fx-text-base);
	line-height: 1.65;
	color: var(--fx-text-body);
	margin: 16px auto 0;
	max-width: 620px;
}

/* ---------- Body: 2 columns ---------- */

.fx-sor__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--fx-col-gap);
	align-items: center;
}

/* ---------- Accordion (left) ---------- */

.fx-sor__accordion {
	display: flex;
	flex-direction: column;
}

.fx-sor__item {
	border-top: 1px solid var(--fx-border);
}

.fx-sor__item:last-child {
	border-bottom: 1px solid var(--fx-border);
}

.fx-sor__summary {
	display: grid;
	grid-template-columns: 36px 1fr auto;
	align-items: center;
	gap: 16px;
	padding: 18px 4px;
	cursor: pointer;
	list-style: none;
	transition: color 0.15s ease;
}

.fx-sor__summary::-webkit-details-marker { display: none; }
.fx-sor__summary::marker                 { display: none; content: ''; }

.fx-sor .fx-sor__summary:hover .fx-sor__item-title { color: var(--fx-blue); }

.fx-sor__summary:focus-visible {
	outline: 2px solid var(--fx-blue);
	outline-offset: 2px;
	border-radius: var(--fx-radius-sm);
}

.fx-sor__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	flex-shrink: 0;
}

.fx-sor__icon img {
	width: 20px;
	height: 20px;
	display: block;
}

.fx-sor__icon--yellow { background: var(--fx-yellow); }
.fx-sor__icon--sky    { background: var(--fx-sky); }
.fx-sor__icon--pink   { background: var(--fx-pink); }

/* Matcher .fx-int .fx-int__item-title (18px + højere specificitet). */
.fx-sor .fx-sor__item-title {
	margin: 0;
	font-family: var(--fx-font-heading);
	font-size: 18px;
	font-weight: 600;
	color: var(--fx-text);
	line-height: 1.3;
	transition: color 0.15s ease;
}

.fx-sor__chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	color: var(--fx-text-muted);
	transition: transform 300ms ease-in-out, color 0.15s ease;
}

.fx-sor__item[open] .fx-sor__chevron {
	transform: rotate(180deg);
	color: var(--fx-blue);
}

/* CSS-only open/close animation via ::details-content + interpolate-size.
   Graceful fallback: ældre browsere snapper bare. */
.fx-sor__item::details-content {
	block-size: 0;
	overflow: clip;
	opacity: 0;
	transition:
		block-size 300ms ease-in-out,
		opacity 200ms ease-in-out,
		content-visibility 300ms;
	transition-behavior: allow-discrete;
}

.fx-sor__item[open]::details-content {
	block-size: auto;
	opacity: 1;
}

.fx-sor__panel {
	box-sizing: border-box;
	padding: 0 4px 18px 56px;
}

.fx-sor__desc {
	font-size: 16px;
	line-height: 1.6;
	color: var(--fx-text-body);
	margin: 0;
}

/* ---------- Media (right) ---------- */

.fx-sor__media {
	display: flex;
	align-items: center;
	justify-content: center;
}

.fx-sor__illustration {
	display: block;
	width: 100%;
	height: auto;
	max-width: 520px;
}

/* ---------- Responsive ---------- */

@media (max-width: 960px) {
	.fx-sor__body {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
 * INTEGRATIONS ("Simple integrations")
 *
 * Venstre: mørk rundet container med bil + tablet mockup
 * Højre:   H2 + intro + accordion (3 items)
 * ============================================================ */

.fx-int {
	padding: var(--fx-section-py) var(--fx-gutter);
	background: var(--fx-bg);
	display: grid;
	justify-items: center;
}

.fx-int__container {
	box-sizing: border-box;
	width: min(100%, var(--fx-max-content));
	margin: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--fx-col-gap);
	align-items: center;
}

/* ---------- Showcase (left) ---------- */

.fx-int__showcase {
	position: relative;
	background: var(--fx-text, #2d2f31);
	border-radius: 24px;
	aspect-ratio: 5 / 6;
	width: 100%;
	max-width: none;
	min-width: 0;
	justify-self: stretch;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 28px;
	overflow: hidden;
}

.fx-int__showcase-image {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	object-fit: contain;
}

/* ---------- Content (right) ---------- */

.fx-int__content {
	max-width: 520px;
}

.fx-int__title {
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0 0 14px;
}

.fx-int__intro {
	font-size: var(--fx-text-base);
	line-height: 1.6;
	color: var(--fx-text-body);
	margin: 0 0 clamp(24px, 3vw, 36px);
	max-width: 460px;
}

/* ---------- Accordion ---------- */

.fx-int__accordion {
	display: flex;
	flex-direction: column;
}

.fx-int__item {
	border-top: 1px solid var(--fx-border);
}

.fx-int__item:last-child {
	border-bottom: 1px solid var(--fx-border);
}

.fx-int__summary {
	display: grid;
	grid-template-columns: 36px 1fr auto;
	align-items: center;
	gap: 16px;
	padding: 18px 0px;
	cursor: pointer;
	list-style: none;
	transition: color 0.15s ease;
}

.fx-int__summary::-webkit-details-marker { display: none; }
.fx-int__summary::marker                   { display: none; content: ''; }

.fx-int .fx-int__summary:hover .fx-int__item-title { color: var(--fx-blue); }

.fx-int__summary:focus-visible {
	outline: 2px solid var(--fx-blue);
	outline-offset: 2px;
	border-radius: var(--fx-radius-sm);
}

.fx-int__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	flex-shrink: 0;
}

.fx-int__icon img {
	width: 20px;
	height: 20px;
	display: block;
}

.fx-int__icon--yellow { background: var(--fx-yellow); }
.fx-int__icon--sky    { background: var(--fx-sky); }
.fx-int__icon--pink   { background: var(--fx-pink); }

/* Dobbel selector (.fx-int .fx-int__…) — højere specificitet end én klasse,
 * typisk nok til at slå globale/Elementor-heading-styles uden !important. */
.fx-int .fx-int__item-title {
	margin: 0;
	font-family: var(--fx-font-heading);
	font-size: 18px;
	font-weight: 600;
	color: var(--fx-text);
	line-height: 1.3;
	transition: color 0.15s ease;
}

.fx-int__chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	color: var(--fx-text-muted);
	transition: transform 300ms ease-in-out, color 0.15s ease;
}

.fx-int__item[open] .fx-int__chevron {
	transform: rotate(180deg);
	color: var(--fx-blue);
}

.fx-int__item::details-content {
	block-size: 0;
	overflow: clip;
	opacity: 0;
	transition:
		block-size 300ms ease-in-out,
		opacity 200ms ease-in-out,
		content-visibility 300ms;
	transition-behavior: allow-discrete;
}

.fx-int__item[open]::details-content {
	block-size: auto;
	opacity: 1;
}

.fx-int__panel {
	box-sizing: border-box;
	padding: 0 4px 18px 56px;
}

@media (prefers-reduced-motion: reduce) {
	.fx-int__chevron,
	.fx-int__item::details-content,
	.fx-sor__chevron,
	.fx-sor__item::details-content {
		transition: none;
	}
}

.fx-int__desc {
	font-size: 15px;
	line-height: 1.65;
	color: var(--fx-text-body);
	margin: 0;
}

/* ---------- Responsive ---------- */

/* Tablet: behold 2 kolonner — gap kommer fra --fx-col-gap-token. */
@media (max-width: 960px) and (min-width: 768px) {
	.fx-int__showcase {
		aspect-ratio: 4 / 5;
	}
	.fx-int__content {
		max-width: 100%;
	}
}

/* Mobil: stack — content først, showcase i bunden. Gap fra --fx-col-gap. */
@media (max-width: 767px) {
	.fx-int__container {
		grid-template-columns: 1fr;
	}
	.fx-int__content {
		order: 1;
		max-width: 100%;
	}
	.fx-int__showcase {
		order: 2;
		width: 100%;
		max-width: none;
		margin: 0;
		aspect-ratio: 4 / 3;
	}
	.fx-int__intro {
		max-width: 100%;
	}
}

@media (max-width: 560px) {
	.fx-int__showcase {
		padding: 20px;
		border-radius: 24px;
	}
	.fx-int__panel {
		padding-left: 0;
	}
}

/* ============================================================
 * TESTIMONIALS
 *
 * Mørk sektion (#2d2f31) med hvidt featured citat + portræt,
 * efterfulgt af [review_carousel] shortcode (hvide kort).
 * ============================================================ */

.fx-testimonials {
	padding: var(--fx-section-py) var(--fx-gutter);
	background: var(--fx-text, #2d2f31);
	/* Bevidst: sætter IKKE color: #fff globalt her — det ville arve ned i de hvide kort. 
	   Hvide tekstfarver er sat eksplicit på de enkelte elementer i stedet. */
}

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

/* ---------- Wrapper-header (fallback heading for delt operations-template) ----------
   .fx-testimonials__header bruges KUN af category-operations.php (rail / yard /
   haulaway / FVL) hvor der ikke er en featured quote. Heading vises som fallback
   når term-ACF `customer_reviews_heading` er tom — så reviews-sektionen aldrig
   står uden H2. På frontpage er headeren ikke til stede (featured quote'en
   leverer h2 i stedet). */
.fx-testimonials__header {
	text-align: center;
	margin: 0 0 clamp(32px, 4vw, 48px);
}

.fx-testimonials__title {
	color: #fff;
	margin: 0;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

/* ---------- Featured quote (Christina Carpens) ---------- */

.fx-featured-quote {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: clamp(32px, 5vw, 80px);
	align-items: center;
	margin: 0 0 clamp(56px, 7vw, 88px);
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.fx-featured-quote__body {
	display: flex;
	flex-direction: column;
	gap: clamp(24px, 3vw, 40px);
}

.fx-featured-quote__text { margin: 0; padding: 0; border: 0; }

/* Bemærk: scoped under .fx-testimonials for at beate .fx-main--frontpage h2 { color: var(--fx-text) } */
.fx-testimonials .fx-featured-quote__title {
	color: #fff;
	font-size: 40px;
	line-height: 1.25;
	margin: 0;
}

@media (max-width: 1024px) {
	.fx-testimonials .fx-featured-quote__title { font-size: 28px; }
}

@media (max-width: 767px) {
	.fx-testimonials .fx-featured-quote__title { font-size: 24px; }
}

.fx-featured-quote__attribution {
	display: flex;
	align-items: center;
	gap: clamp(14px, 2.5vw, 20px);
	min-width: 0;
}

.fx-featured-quote__mark {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 56px;
	height: 56px;
	background: #509bb4;
	color: #fff;
	border-radius: 12px;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
}

.fx-featured-quote__mark svg {
	display: block;
	width: 26px;
	height: 26px;
}

.fx-featured-quote__meta {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	min-width: 0;
	flex: 1;
	line-height: 1.35;
}

.fx-featured-quote__name {
	color: #fff;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.25;
}

.fx-featured-quote__role {
	color: #BABFC3;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.45;
	max-width: 36em;
}

.fx-featured-quote__media {
	display: flex;
	justify-content: flex-end;
}

.fx-featured-quote__portrait {
	display: block;
	width: 100%;
	max-width: 360px;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center top;
	border-radius: var(--fx-radius);
}

@media (max-width: 780px) {
	.fx-featured-quote {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.fx-featured-quote__media {
		justify-content: center;
		order: -1;
	}
	.fx-featured-quote__portrait {
		max-width: 260px;
	}

	.fx-featured-quote__attribution {
		align-items: flex-start;
	}

	.fx-featured-quote__meta {
		padding-top: 2px;
	}
}

/* ---------- Carousel overrides (dark section) ---------- */

.fx-testimonials .review-section { padding-top: 0; padding-bottom: 0; }

/* Reset text-farve inden for de hvide kort (ellers arver de #fff fra section og bliver usynlige) */
.fx-testimonials .review-section .review-card {
	color: var(--fx-text-body);
}

.fx-testimonials .review-section .review-card .review-text {
	color: var(--fx-text-body);
	font-size: 15px;
	line-height: 1.6;
	margin: 0;
}

.fx-testimonials .review-section .review-card .name-text {
	color: var(--fx-text);
	font-weight: 600;
	font-size: 15px;
	display: block;
}

.fx-testimonials .review-section .review-card .job-text {
	color: var(--fx-text-muted);
	font-size: 14px;
	margin: 0;
}

.fx-testimonials .review-section .carousel-header h2,
.fx-testimonials .review-section .carousel-header > h2 {
	color: #fff;
}

/* Inactive/disabled nav button = dark grey circle on dark bg */
.fx-testimonials .review-section .carousel-nav button {
	background: #4a4c4f;
	border-radius: 50%;
	border: 0;
}

.fx-testimonials .review-section .carousel-nav button .carousel-nav__icon {
	color: #fff;
}

.fx-testimonials .review-section .carousel-nav button[disabled],
.fx-testimonials .review-section .carousel-nav button[aria-disabled="true"] {
	background: #4a4c4f;
	opacity: 1;
}

.fx-testimonials .review-section .carousel-nav button[disabled] .carousel-nav__icon,
.fx-testimonials .review-section .carousel-nav button[aria-disabled="true"] .carousel-nav__icon {
	color: rgba(255, 255, 255, 0.45);
}

/* Active nav button = white circle with dark icon */
.fx-testimonials .review-section .carousel-nav button:not([disabled]):not([aria-disabled="true"]) {
	background: var(--fx-bg, #fff);
}

.fx-testimonials .review-section .carousel-nav button:not([disabled]):not([aria-disabled="true"]) .carousel-nav__icon {
	color: var(--fx-text, #2d2f31);
}

.fx-testimonials .review-section .carousel-nav button:hover:not([disabled]):not([aria-disabled="true"]) {
	background: rgba(255, 255, 255, 0.9);
}

/* CTA section (.fx-cta) styles er flyttet til css/cta.css — genbrugt på landing pages. */

/* ============================================================
 * SHORTCODE SECTION WRAPPERS
 * ============================================================ */

.fx-industries,
.fx-big-numbers-wrap,
.fx-faq-wrap {
	padding: var(--fx-section-py) var(--fx-gutter);
}

.fx-industries       { background: var(--fx-bg); }
.fx-big-numbers-wrap { background: var(--fx-bg); }
.fx-faq-wrap         { background: var(--fx-bg-soft); }

/* Sørg for at shortcodes holder deres egen max-width men aldrig stækker sig videre end main container */
.fx-industries > *,
.fx-big-numbers-wrap > * {
	max-width: var(--fx-max-content);
	margin-left: auto;
	margin-right: auto;
}

/* ---------- FAQ header + container ---------- */

.fx-faq-wrap__inner {
	max-width: var(--fx-max-content);
	margin: 0 auto;
}

.fx-faq-wrap__header {
	max-width: 640px;
	margin: 0 auto clamp(32px, 4vw, 48px);
	text-align: center;
}

.fx-faq-wrap__title {
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 0;
}

.fx-faq-wrap__intro {
	font-size: var(--fx-text-base);
	line-height: 1.6;
	color: var(--fx-text-body);
	margin: 14px 0 0;
}

/* Logo carousel styles er flyttet til css/logo-carousel.css — reusable sektion. */

/* Override !important-reglerne i big-numbers.css så sektionen alignes med resten af layoutet (1140px) */
.fx-big-numbers-wrap > .fx-big-numbers {
	max-width: var(--fx-max-content) !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}


/* --- focalx-hero --- */
/**
 * FocalX — Hero section (reusable).
 *
 * Bruges af:
 *   - Frontpage                 (template-parts/frontpage/hero.php)
 *   - Vehicle Inspection arkiv  (archive-vehicle-inspection.php)
 *   - Andre landings-sider      (template-parts/sections/hero.php)
 *
 * Selvstændig: typografi afhænger ikke af parent scope (`.fx-main--frontpage`),
 * så hero kan placeres på enhver side uden ekstra CSS.
 */

.fx-hero {
	padding-top:    clamp(48px, 7vw, 80px);
	padding-bottom: clamp(40px, 6vw, 64px);
	padding-left:   0;
	padding-right:  0;
	background: var(--fx-bg);
	/* Kun overflow-x: clip + default overflow-y: visible → spec får y til at blive
	   `auto`, så hero kan få unødig vertikal scroll. `clip` på begge akser: ingen
	   scrollbars; indre .pill-viewport har stadig egen overflow-x: auto. */
	overflow: clip;
	font-family: var(--fx-font-body);
	color: var(--fx-text-body);
}

/* Pill-ToC: `overflow-x: hidden` på hero klippede pill-rækken visuelt / forstyrrede
 * touch-scroll i nested `.pill-viewport` (overflow-x: auto). Kun y klippes. */
.fx-hero:has(.pill-scroll) {
	overflow-x: visible;
	overflow-y: clip;
}

/* Forhindr lange ord / strings i at tvinge horisontal scroll */
.fx-hero__title,
.fx-hero__subtitle,
.fx-hero__intro,
.fx-hero__bullet-text {
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: auto;
}

.fx-hero__container {
	max-width: var(--fx-max-content);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--fx-col-gap);
	align-items: center;
}

.fx-hero__content {
	max-width: 560px;
	min-width: 0;
}

/* Indhold: overskrift/brød/checkmarks (top) + CTA/WHIW/ToC (bottom).
   To-kolonne-layout med billede: rækken får ens højde, venstre søjle fyldes
   så toppen sidder højest og action-rækken længst nede. Kun når billede +
   .fx-hero__content-bottom findes (se template-parts/sections/hero.php). */
.fx-hero__content-bottom {
	display:         flex;
	flex-direction:  column;
	gap:              20px;
	min-width:        0;
}

/* Luft mellem tekstblok (.content-top: titel, intro, bullets) og CTA / WHIW.
   Gælder alle viewports — også når venstre søjle er flex med space-between
   mod billede, så intro ikke sidder visuelt oven i knappen. */
.fx-hero__content > .fx-hero__content-bottom {
	margin-top: clamp(28px, 5vw, 48px);
}

.fx-hero__container:has(.fx-hero__media) {
	align-items: stretch;
}

/* Bund-blok: margin-top fra .fx-hero__scroller erstattes af .content-bottom gap. */
.fx-hero__content-bottom .fx-hero__scroller {
	margin-top: 0;
}

@media (min-width: 768px) {
	.fx-hero:has(.fx-hero__media) .fx-hero__content:has(.fx-hero__content-bottom) {
		display:         flex;
		flex-direction:  column;
		justify-content: space-between;
		gap:             0;
		height:          100%;
		min-height:      0;
		align-self:      stretch;
	}
}

.fx-hero__title {
	font-family: var(--fx-font-heading);
	font-size: var(--fx-h1);
	font-weight: 700;
	color: var(--fx-text);
	line-height: 1.1;
	letter-spacing: -0.01em;
	margin: 0 0 20px;
}

/* Subtitle / tagline — valgfri lead-tekst mellem H1 og intro. Bruges fx på
   about-us ("We build intelligent inspection software to empower automotive"). */
.fx-hero__subtitle {
	font-family: var(--fx-font-heading);
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 500;
	line-height: 1.35;
	color: var(--fx-text, #2d2f31);
	margin: -8px 0 20px;
	max-width: 520px;
}

.fx-hero__intro {
	font-family: var(--fx-font-body);
	font-size: var(--fx-text-base);
	line-height: 1.6;
	color: var(--fx-text-body);
	margin: 0 0 24px;
	max-width: 500px;
}

.fx-hero__bullets {
	list-style: none;
	padding: 0;
	margin: 0 0 32px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.fx-hero__bullet {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--fx-text);
	font-weight: 500;
}

.fx-hero__check {
	flex-shrink: 0;
	display: inline-flex;
	width: 22px;
	height: 22px;
}

.fx-hero__check svg {
	display: block;
	width: 100%;
	height: 100%;
}

.fx-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	align-items: center;
}

.fx-hero__actions .whiw-trigger { margin: 0; }

/* Pill-ToC: min-width 0 så flex/grid-kæden giver viewport en reel bredde
   (undgår at rækken “fryser” uden horisontal scroll på smalle skærme). */
.fx-hero__scroller {
	margin-top: 20px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.fx-hero__media {
	position: relative;
	min-width: 0;
}

.fx-hero__image-wrap {
	position: relative;
	border-radius: var(--fx-radius-xl);
	overflow: hidden;
	max-width: 560px;
	margin-left: auto;
}

.fx-hero__image {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	object-fit: contain;
}

/* Category archive heroes — /ai/, /gate-operations/, industri- og
 * operations-kategorier: kvadratisk billedramme (1:1). */
.fx-hero--ai .fx-hero__image-wrap,
.fx-hero--gate .fx-hero__image-wrap,
.fx-hero--industries .fx-hero__image-wrap,
.fx-hero--rail .fx-hero__image-wrap {
	aspect-ratio: 1 / 1;
	width: 100%;
}

.fx-hero--ai .fx-hero__image,
.fx-hero--gate .fx-hero__image,
.fx-hero--industries .fx-hero__image,
.fx-hero--rail .fx-hero__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* Under desktop: gutter på selve sektionen så indholdet ikke går flush
   med viewport-kanten (container fylder tæt på 100% her). */
@media (max-width: 1199px) {
	.fx-hero {
		padding-left:  var(--fx-gutter, 24px);
		padding-right: var(--fx-gutter, 24px);
	}
}

/* Tablet: beholder 2 kolonner — gap kommer fra --fx-col-gap-token. */
@media (max-width: 1024px) {
	.fx-hero__content { max-width: 100%; }
}

/* Mobil: stack til 1 kolonne, centreret indhold. Gap fra --fx-col-gap-token. */
@media (max-width: 767px) {
	.fx-hero__container { grid-template-columns: minmax(0, 1fr); }
	.fx-hero__image-wrap { max-width: 100%; margin: 0; }

	.fx-hero__content {
		text-align: center;
		max-width: 100%;
	}

	.fx-hero__title,
	.fx-hero__subtitle,
	.fx-hero__intro {
		max-width: 100%;
	}

	/* Checkmarks + brødtekst venstrejusteret som på tablet/PC (undgår
	 * centreret “zigzag” når linjer har forskellig længde). */
	.fx-hero__bullets {
		align-items: stretch;
		width: 100%;
		max-width: 100%;
	}

	.fx-hero__bullet {
		justify-content: flex-start;
		text-align: left;
		width: 100%;
	}

	.fx-hero__bullet-text {
		text-align: left;
	}

	.fx-hero__actions {
		justify-content: center;
	}

	/* Pill-ræk: fuld bredde mellem viewport-kanter (modvirker “afskårne” pills
	 * når track er bredere end tekstkolonnen). scroll-slider.css: .pill-viewport
	 * scroller stadig horisontalt når nødvendigt. */
	.fx-hero:has(.pill-scroll) .fx-hero__scroller {
		margin-inline: calc(-1 * var(--fx-gutter, 24px));
		width: calc(100% + 2 * var(--fx-gutter, 24px));
		max-width: none;
		align-self: stretch;
	}
}

@media (max-width: 720px) {
	.fx-hero__actions {
		flex-direction: column;
		align-items: stretch;
	}
	.fx-hero__actions .fx-btn,
	.fx-hero__actions .whiw-trigger {
		width: 100%;
		justify-content: center;
	}
}


/* --- focalx-how-it-works --- */
/**
 * How it works (.fx-hiw)
 *
 * Reusable sektion brugt på tværs af landingssider.
 * Design: centreret heading → nummererede pill-tabs → dark-panel med farvet
 * icon-pill + titel + beskrivelse (venstre) · hvidt billedkort (højre).
 *
 * Bruger globale tokens fra tokens.css.
 */

/* ============================================================
 * Section frame
 * ============================================================ */
.fx-hiw {
	padding: var(--fx-section-py, 96px) var(--fx-gutter);
	background: var(--fx-bg, #fff);
}

.fx-hiw__container {
	max-width: var(--fx-max-content, 1140px);
	margin: 0 auto;
}

.fx-hiw__header {
	text-align: center;
	max-width: var(--fx-max-narrow, 820px);
	margin: 0 auto clamp(28px, 3.5vw, 40px);
}

.fx-hiw .fx-hiw__title {
	color: var(--fx-text, #2d2f31);
	font-size: clamp(28px, 3.2vw, 40px);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0;
}

.fx-hiw__subtitle {
	font-size: var(--fx-text-base, 16px);
	line-height: 1.6;
	color: var(--fx-text-body, rgba(45, 47, 49, 0.7));
	margin: 12px 0 0;
}

/* ============================================================
 * Tabs — nummererede pills
 * ============================================================ */
.fx-hiw__tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 0 0 clamp(28px, 3.5vw, 40px);
}

.fx-hiw__tab {
	all: unset;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	/* Asymmetrisk padding: number-bubble fylder venstre side visuelt,
	 * så vi reducerer venstre padding og giver ekstra luft til højre
	 * for at balancere knappen optisk (label-tekst skal ikke ligge
	 * klemt op af pillen). */
	padding: 10px 20px 10px 10px;
	background: var(--fx-bg-soft, #f5f7fa);
	border: 1px solid transparent;
	border-radius: 999px;
	cursor: pointer;
	font-family: var(--fx-font-body);
	font-size: 15px;
	font-weight: 500;
	color: var(--fx-text-body, #555);
	transition: background 0.22s ease, color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
	user-select: none;
}

.fx-hiw__tab:hover {
	background: var(--fx-bg-muted, #eeecf2);
	border-color: var(--fx-text, #2d2f31);
	color: var(--fx-text, #2d2f31);
}

.fx-hiw__tab:focus {
	outline: none;
}

.fx-hiw__tab:focus-visible {
	outline: 2px solid var(--fx-text, #2d2f31);
	outline-offset: 3px;
}

.fx-hiw__tab.is-active {
	background: var(--fx-text, #2d2f31);
	color: var(--fx-bg, #fff);
	box-shadow: 0 6px 18px -8px rgba(45, 47, 49, 0.55);
	transform: translateY(-1px);
}

/* Number-bubble — lille cirkel */
.fx-hiw__tab-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0;
	line-height: 1;
	transition: background 0.22s ease, color 0.22s ease, transform 0.22s ease;
	flex-shrink: 0;
}

.fx-hiw__tab:not(.is-active) .fx-hiw__tab-num {
	background: var(--fx-bg, #fff);
	color: var(--fx-text, #2d2f31);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.fx-hiw__tab.is-active .fx-hiw__tab-num {
	background: rgba(255, 255, 255, 0.22);
	color: var(--fx-bg, #fff);
	transform: scale(1.05);
}

.fx-hiw__tab-label {
	font-size: 14px;
	line-height: 1.2;
}

/* ============================================================
 * Panels — dark card
 * ============================================================ */
.fx-hiw__panels {
	position: relative;
}

.fx-hiw__panel {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.28s ease, transform 0.28s ease;
}

.fx-hiw__panel.is-active {
	opacity: 1;
	transform: translateY(0);
}

.fx-hiw__panel[hidden] {
	display: none;
}

.fx-hiw__panel-card {
	background: var(--fx-text, #2d2f31);
	border-radius: 24px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 24px;
	padding: 24px;
	align-items: stretch;
	height: 420px;
}

/* Text-kolonne — topaligning, egen interior padding for luftig typografi */
.fx-hiw__panel-text {
	padding: clamp(24px, 3vw, 48px);
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-width: 0;
}

.fx-hiw__panel-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	padding: 18px;
	border-radius: 12px;
	color: var(--fx-text, #2d2f31);
	margin: 0 0 12px;
	box-sizing: border-box;
}

.fx-hiw__panel-icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.fx-hiw__panel-icon--yellow  { background: var(--fx-yellow, #ffd978); }
.fx-hiw__panel-icon--sky     { background: var(--fx-sky, #93e7fe); }
.fx-hiw__panel-icon--pink    { background: var(--fx-pink, #faa9e4); }
.fx-hiw__panel-icon--lime    { background: #c9ee6b; }
.fx-hiw__panel-icon--violet  { background: #c9bdfb; }

.fx-hiw .fx-hiw__panel-title {
	color: var(--fx-bg, #fff);
	font-size: clamp(22px, 2.2vw, 28px);
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 14px;
}

.fx-hiw__panel-desc {
	color: rgba(255, 255, 255, 0.65);
	font-size: 18px;
	line-height: 1.55;
	margin: 0;
	max-width: 420px;
}

/* Media-kolonne (hvidt kort med billede — fylder fuld højde) */
.fx-hiw__panel-media {
	background: var(--fx-bg, #fff);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 18px 40px -22px rgba(0, 0, 0, 0.45);
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 360px;
}

.fx-hiw__panel-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* Matcher den øvrige sitewide image-radius-konvention på panel-
	 * billeder (12px = lidt mindre end card'ets 24px så der opstår
	 * en synlig "kant" mellem media-frame og selve billedet). */
	border-radius: 12px;
}

/* ============================================================
 * Responsive
 * ============================================================ */
/* Stack panel-card til 1 kolonne først ved mobil — tablet (≥768px)
   beholder 2-kolonne kortlayoutet (tekst venstre + billede højre). */
@media (max-width: 767px) {
	.fx-hiw__panel-card {
		grid-template-columns: 1fr;
		gap: 20px;
		align-items: start;
		height: auto;
	}
	.fx-hiw__panel-text {
		padding: clamp(20px, 4vw, 32px);
		order: 1;
	}
	.fx-hiw__panel-media {
		order: 2;
		min-height: 260px;
		max-height: 360px;
	}
	.fx-hiw__panel-desc {
		max-width: 100%;
	}
}

/* ============================================================
 * "Original"-variant (.fx-hiw--original) — bruges på industries-
 * archives via [how_it_works_original] shortcode.
 *
 * Adskiller sig fra standard how-it-works KUN ved at Tab 3 har et
 * brugerdefineret 2x2 stat-grid i panel-media i stedet for et
 * enkelt billede (4 KPI-kort med tal + label + chart).
 *
 * Tab-styling (numbered pills, dark active state) genbruges fra
 * standard-stylingen ovenfor — vi overrider intet på .fx-hiw__tab.
 * ============================================================ */

/* Tab 3 stat-grid — 2 kolonner med ASYMMETRISKE højder.
 *
 * Layout-fingerprint (matcher live-site dimensioner via Elementor):
 *   Venstre kolonne (~55% bredde): 1 kort top + 1 tall bund
 *     - Top: 68% donut "Correct adjudication" (~115px høj)
 *     - Bund: "Actual vs. planned" line-chart (~225px høj — flex-grow)
 *   Højre kolonne (~45% bredde): 1 tall top + 1 kort bund
 *     - Top: 67k+ "Damages detected" bar-chart (~180px høj — flex-grow)
 *     - Bund: 17,254 "Inspections completed" sparkline (~160px høj)
 *
 * Vi kan IKKE bruge en almindelig 2x2 CSS-grid fordi rækkerne ikke
 * deler højde på tværs af kolonnerne — derfor er hver kolonne sin
 * egen flex-container hvor "tall"-kortet får flex:1 og "short"-kortet
 * sizes to content (flex:0).
 *
 * Panel-media wrapperen "neutraliseres" (transparent bg, ingen shadow)
 * så hver hvide stat-card flyder for sig på den mørke panel-bg. */
.fx-hiw__panel-media--stats {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	padding: 0;
	overflow: visible;
	min-height: 0;
	display: block;
}

.fx-hiw__stat-grid {
	display: grid;
	/* 55/45 ratio — venstre kolonne er ~291px, højre ~243px når panel-
	 * media er 535px bred (matcher Elementor-mål fra live-site). */
	grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
	gap: 8px;
	width: 100%;
	height: 100%;
}

.fx-hiw__stat-col {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-height: 0;
}

.fx-hiw__stat-card {
	background: var(--fx-bg, #fff);
	/* 12px padding matcher live-site. Større padding klemmer chart-
	 * billederne unødvendigt på mindre cards (spec. donut-kortet). */
	padding: 12px;
	border-radius: 14px;
	display: flex;
	gap: 10px;
	min-width: 0;
	box-shadow: 0 8px 24px -18px rgba(0, 0, 0, 0.25);
}

/* Size-modifiers — styrer flex-fordeling inden for kolonnen.
 *   --short : auto-højde (kun det nødvendige til indhold)
 *   --tall  : flex-grow (fylder resten af kolonnen)
 * Kombineret giver det den asymmetriske rytme fra live-site. */
.fx-hiw__stat-card--short { flex: 0 0 auto; }
.fx-hiw__stat-card--tall  { flex: 1 1 auto; }

/* Stack-layout: tal+label øverst, chart nedenunder (default for de
 * fleste KPI-kort — fx "67k+ Damages detected" + bar chart). */
.fx-hiw__stat-card--stack {
	flex-direction: column;
	justify-content: space-between;
}

/* Inline-layout: chart venstre, tal+label højre (fx "68% Correct
 * adjudication" hvor donut'en er det dominerende visuelle element). */
.fx-hiw__stat-card--inline {
	flex-direction: row;
	align-items: center;
	gap: 12px;
}

.fx-hiw__stat-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.fx-hiw__stat-num {
	font-size: clamp(24px, 2.2vw, 32px);
	font-weight: 700;
	color: var(--fx-text, #2d2f31);
	line-height: 1.1;
	letter-spacing: -0.01em;
}

/* Label-typografi matcher live-site Elementor-værdier:
 *   font: 18px Ubuntu (arvet fra body), color: rgba(45,47,49,0.8). */
.fx-hiw__stat-label {
	font-size: 18px;
	line-height: 1.3;
	color: rgba(45, 47, 49, 0.8);
	font-weight: 500;
}

.fx-hiw__stat-visual {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	flex: 1 1 auto;
	overflow: hidden;
}

/* Donut/inline-billedet er FAST størrelse (~64px) så det visuelt
 * matcher tal+label i højre side uden at skubbe layoutet. */
.fx-hiw__stat-card--inline .fx-hiw__stat-visual {
	flex: 0 0 auto;
	width: 64px;
	height: 64px;
}

.fx-hiw__stat-image {
	display: block;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

/* Stack-layout's chart-billede må fylde hele kortets bredde — det
 * giver en proper "dashboard data-viz"-fornemmelse (bar chart,
 * line chart, sparkline strækker sig fra kant til kant inden for
 * card-padding). */
.fx-hiw__stat-card--stack .fx-hiw__stat-image {
	width: 100%;
}

@media (max-width: 767px) {
	/* Tabs scrollable horisontalt på mobil — holder deres naturlige
	   størrelse og kan swipes hvis de ikke fylder én linje.
	   Lodret padding på containeren skaber plads til shadow + focus ring
	   uden at blive klippet af overflow-x. */
	.fx-hiw__tabs {
		flex-wrap: nowrap;
		justify-content: flex-start;
		gap: 8px;
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		/* Negativ margin + padding så tabs kan scrolle helt ud til
		   sektionens kanter uden at skære padding af i indholdet. */
		margin-left: calc(var(--fx-gutter) * -1);
		margin-right: calc(var(--fx-gutter) * -1);
		padding: 6px var(--fx-gutter) 14px;
	}
	.fx-hiw__tabs::-webkit-scrollbar {
		display: none;
	}
	.fx-hiw__tab {
		flex: 0 0 auto;
		min-height: 44px;
		padding: 10px 18px 10px 10px;
		font-size: 14px;
	}
	.fx-hiw__tab-num {
		width: 22px;
		height: 22px;
		font-size: 11px;
		flex-shrink: 0;
	}
	.fx-hiw__tab-label {
		white-space: nowrap;
	}
	.fx-hiw__panel-text {
		padding: 0;
	}
	.fx-hiw__panel-icon {
		width: 52px;
		height: 52px;
		padding: 14px;
		border-radius: 10px;
	}
	.fx-hiw__panel-desc {
		font-size: 16px;
	}

	/* Stat-grid på mobil: behold 2-kolonne layout (kortene skifter
	 * ikke til single column — det ville gøre panelet alt for langt
	 * på små skærme og dræbe data-viz-overblikket). Gap og typografi
	 * strammes en lille smule så det stadig er læseligt. */
	.fx-hiw__stat-grid {
		gap: 8px;
	}
	.fx-hiw__stat-col {
		gap: 8px;
	}
	.fx-hiw__stat-card {
		padding: 10px;
	}
	.fx-hiw__stat-num {
		font-size: 20px;
	}
	.fx-hiw__stat-label {
		font-size: 14px;
	}
	.fx-hiw__stat-card--inline {
		gap: 8px;
	}
	.fx-hiw__stat-card--inline .fx-hiw__stat-visual {
		width: 44px;
		height: 44px;
	}
}


/* --- focalx-gates-video --- */
/**
 * Gates-video section (.fx-gates)
 *
 * Reusable 2-kolonne sektion brugt på flere landingssider.
 * Venstre: heading + beskrivelse + CTA. Højre: video-player (.fx-video).
 * Stables vertikalt på tablet/mobil (video først — matcher live-designet).
 *
 * Bruger globale tokens fra tokens.css (--fx-*) og .fx-btn utility.
 * Video-player markup leveres af [focalx-gates-video]-shortcoden og har
 * sine egne styles i focalx-gates-video.css.
 */

.fx-gates {
	padding: var(--fx-section-py, 96px) var(--fx-gutter);
	background: var(--fx-bg-soft, #f5f7fa);
	display: grid;
	justify-items: center;
}

.fx-gates__container {
	box-sizing: border-box;
	width: min(100%, var(--fx-max-content, 1140px));
	margin: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--fx-col-gap);
	align-items: center;
}

.fx-gates--reverse .fx-gates__container {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.fx-gates--reverse .fx-gates__text  { order: 2; }
.fx-gates--reverse .fx-gates__media { order: 1; }

/* Stacked variant — titel centreret ovenfor, videoen centreret nedenfor.
 * Bruges fx på /gate-operations/ hvor vi kun viser video + heading, fordi
 * kontekst og beskrivelse allerede er givet af de omkringliggende sektioner.
 */
.fx-gates--stacked .fx-gates__container {
	grid-template-columns: minmax(0, 1fr);
	gap:                   clamp(24px, 3vw, 40px);
	text-align:            center;
}
.fx-gates--stacked .fx-gates__text {
	max-width: 720px;
	margin:    0 auto;
}
.fx-gates--stacked .fx-gates__media {
	max-width: 860px;
	margin:    0 auto;
	width:     100%;
}
.fx-gates--stacked .fx-gates__actions {
	justify-content: center;
}

/* Tekstkolonne */
.fx-gates__text {
	max-width: 440px;
}

.fx-gates .fx-gates__title {
	color: var(--fx-text, #2d2f31);
	font-size: clamp(26px, 2.4vw, 32px);
	line-height: 1.2;
	margin: 0 0 16px;
}

.fx-gates__description {
	color: var(--fx-text-body, rgba(45, 47, 49, 0.8));
	font-size: var(--fx-text-base);
	line-height: 1.6;
	margin: 0 0 28px;
}

.fx-gates__actions {
	display: flex;
	gap: 12px;
}

.fx-gates .fx-gates__button {
	border-radius: 50px;
	padding: 12px 24px;
	font-size: 14px;
	font-weight: 600;
}

/* Media-kolonne */
.fx-gates__media {
	width: 100%;
	min-width: 0;
}

/* Video arver styles fra focalx-gates-video.css — vi sikrer bare at wrapperen
 * ikke tilføjer ekstra margin i denne kontekst. */
.fx-gates__media .fx-video-wrap {
	margin: 0;
}

.fx-gates__media .fx-video,
.fx-gates__media .fx-video-thumb {
	border-radius: 24px;
}

/* Mobil (kun): stack (tekst øverst, video nederst).
 * Tablet bevarer 2-kolonne layout — gap kommer fra --fx-col-gap (56px på
 * tablet via tokens.css). Reset af `--reverse`-orderen sker også her, så
 * den stacker korrekt uanset variant. */
@media (max-width: 767px) {
	.fx-gates__container {
		grid-template-columns: 1fr;
	}
	.fx-gates__text {
		max-width: 640px;
	}
	.fx-gates--reverse .fx-gates__text,
	.fx-gates--reverse .fx-gates__media {
		order: initial;
	}

	.fx-gates .fx-gates__title {
		font-size: 24px;
	}
	/* .fx-gates__description arver nu fra --fx-text-base på mobil
	   (16px via tokens.css' media-query) — ingen override nødvendig. */
	.fx-gates__actions,
	.fx-gates .fx-gates__button {
		width: 100%;
	}
	.fx-gates .fx-gates__button {
		justify-content: center;
		padding: 14px 22px;
	}
}


/* --- 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.
 *
 * Headeren får ikke sit eget view-transition-name: det isolerer elementet
 * i et nyt lag, og så holder backdrop-filter op med at sløre indholdet bag
 * glas-kortet. Admin-baren har ingen sløring og kan godt stå stille.
 */
@view-transition {
	navigation: auto;
}

#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. */


/* --- focalx-accordion-mobile --- */
/**
 * FocalX — Ens accordion-typografi på mobil (≤767px).
 *
 * Indlæses sent (wp_enqueue_scripts priority 25) efter template- og child-
 * styles, så 16px vinder over fx 18px / 15px i frontpage.css, image-
 * accordion.css og faq.css.
 */
@media (max-width: 767px) {
	/* image-accordion.php */
	.fx-image-accordion .fx-image-accordion__label {
		font-size: 16px;
	}

	.fx-image-accordion__panel {
		font-size: 16px;
	}

	/* system-of-record.php + integrations.php (frontpage.css) */
	.fx-sor .fx-sor__item-title {
		font-size: 16px;
	}

	.fx-int .fx-int__item-title {
		font-size: 16px;
	}

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

	/* php/faq.php */
	.fx-faq .fx-faq__question {
		font-size: 16px;
	}

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