@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/fonts/montserrat-v24-latin-300.woff2") format("woff2");
}

@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/montserrat-v24-latin-regular.woff2") format("woff2");
}

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

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

@font-face {
  font-family: "Asap Condensed";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/asap-condensed-v15-latin-regular.woff2") format("woff2");
}

@font-face {
  font-family: "Encode Sans Semi Condensed";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/fonts/encode-sans-semi-condensed-v10-latin-300.woff2") format("woff2");
}

:root {
  --jm-website-blue: #283477;
  --jm-website-blue-dark: #2a327a;
  --jm-website-yellow: #edd947;
  --jm-website-green: #6C8676;
  --jm-website-light: #f0f1f6;
  --jm-website-text: #545861;
  --jm-website-border: #EAEBEF;
  --jm-website-white: #ffffff;

  --jm-primary: var(--jm-website-blue);
  --jm-primary-blue: var(--jm-website-blue);
  --jm-primary-dark: var(--jm-website-blue-dark);
  --jm-accent: var(--jm-website-yellow);
  --jm-accent-dark: var(--jm-website-yellow);
  --jm-accent-soft: var(--jm-website-light);
  --jm-surface-soft: var(--jm-website-light);
  --jm-bg: var(--jm-website-light);
  --jm-surface: var(--jm-website-white);
  --jm-surface-muted: var(--jm-website-light);
  --jm-surface-glass: rgba(255, 255, 255, 0.94);
  --jm-surface-glass-strong: rgba(255, 255, 255, 0.96);
  --jm-surface-glass-soft: rgba(255, 255, 255, 0.8);
  --jm-text: var(--jm-website-text);
  --jm-muted: var(--jm-website-text);
  --jm-muted-alt: #606774;
  --jm-border: var(--jm-website-border);
  --jm-border-strong: var(--jm-website-blue);
  --jm-border-soft: var(--jm-website-border);
  --jm-danger: #AD0203;
  --jm-danger-dark: #AD0203;
  --jm-warning: var(--jm-website-yellow);

  --jm-category-jolie: var(--jm-website-blue-dark);
  --jm-category-infrastructure: var(--jm-website-blue);
  --jm-category-company: var(--jm-website-green);
  --jm-category-community: var(--jm-website-green);
  --jm-category-mobility: var(--jm-website-blue);
  --jm-category-event: var(--jm-website-yellow);
  --jm-demo-bg: var(--jm-website-light);
  --jm-demo-text: var(--jm-website-text);

  --jm-radius-sm: 1px;
  --jm-radius-md: 2px;
  --jm-radius-round: 100%;
  --jm-shadow-sm: 0 0 4px rgba(0, 0, 0, 0.3);
  --jm-shadow-md: 0 0 4px rgba(0, 0, 0, 0.3);
  --jm-shadow-lg: 0 0 4px rgba(0, 0, 0, 0.3);
  --jm-shadow-map: 0 0 4px rgba(0, 0, 0, 0.3);
  --jm-font-family: "Montserrat", sans-serif;
  --jm-heading-font-family: "Asap Condensed", sans-serif;
  --jm-nav-font-family: "Encode Sans Semi Condensed", sans-serif;

  --bg: var(--jm-bg);
  --surface: var(--jm-surface);
  --surface-soft: var(--jm-surface-soft);
  --text: var(--jm-text);
  --muted: var(--jm-muted);
  --accent: var(--jm-primary);
  --accent-dark: var(--jm-primary-dark);
  --accent-soft: var(--jm-accent-soft);
  --border: var(--jm-border);
  --panel-bg: var(--jm-surface-glass);
  --panel-border: var(--jm-border);
  --field-border: var(--jm-border);
  --danger: var(--jm-danger);
  --warning: var(--jm-warning);
  --shadow: var(--jm-shadow-lg);
}

/* Original Engen presentation, unchanged; attribute is set statically in HTML. */
* { box-sizing: border-box; }
body { margin: 0; }
.shell { margin: 0 auto; }
.public-nav { display: flex; flex-wrap: wrap; align-items: center; }
.public-nav a { text-decoration: none; }
.brand { margin: 0; }
footer { text-align: center; border-top: 1px solid; }
/* Regional presentation only. Shared brand assets and other regions stay unchanged. */
html[data-jmos-regional-home="true"] {
  --engen-primary: #283477;
  --engen-gold: #EDD947;
  --engen-silver: #F0F1F6;
  --engen-surface: #FFFFFF;
  --engen-text: #545861;
  --engen-border: #EAEBEF;
  /* Optional public Region cover is set by the runtime; the gradient is the fallback. */
  --engen-hero-image: none;
  --engen-gold-surface: linear-gradient(125deg, color-mix(in srgb, var(--engen-gold) 48%, white), color-mix(in srgb, var(--engen-gold) 82%, #283477));
}
html[data-jmos-regional-home="true"] body { background: #fff; color: #545861; font-family: Montserrat, sans-serif; font-weight: 400; }
html[data-jmos-regional-home="true"] .page { display: block; }
html[data-jmos-regional-home="true"] .shell { width: min(1240px, calc(100% - 64px)); padding: 0 0 28px; }
html[data-jmos-regional-home="true"] .topbar { position: relative; display: flex; flex-wrap: wrap; gap: 16px 32px; padding: 0; margin: 0; border-bottom: 1px solid #EDD947; color: #fff; background: #283477; box-shadow: 0 0 0 100vmax #283477; clip-path: inset(0 -100vmax); }
html[data-jmos-regional-home="true"] .engen-brand { display: flex; flex-shrink: 0; align-items: center; gap: 20px; color: #fff; text-decoration: none; font-size: 12px; letter-spacing: .06em; }
html[data-jmos-regional-home="true"] .engen-brand img { display: block; width: 140px; height: 120px; object-fit: contain; }
html[data-jmos-regional-home="true"] .engen-brand span { border-left: 1px solid #ffffff60; padding-left: 20px; }
html[data-jmos-regional-home="true"] .public-nav { margin-left: auto; gap: 28px; }
html[data-jmos-regional-home="true"] .public-nav a { color: #fff; font-weight: 500; border-radius: 0; padding: 10px 12px; font-size: 13px; }
html[data-jmos-regional-home="true"] .public-nav .primary { color: #283477; background: var(--engen-gold-surface); }
html[data-jmos-regional-home="true"] .public-nav a:hover { color: #283477; background: #F0F1F6; }
html[data-jmos-regional-home="true"] .user-badge { color: #fff; }
html[data-jmos-regional-home="true"] .logout-button { color: #283477; background: #fff; border: 1px solid #EAEBEF; }
html[data-jmos-regional-home="true"] .brand { display: block; margin: 0 calc((min(1240px, 100vw - 64px) - 100vw) / 2) 24px; padding: 0 max(32px, calc((100vw - 1240px) / 2)); background-color: #283477; background-image: linear-gradient(90deg, #283477 0%, #283477f5 28%, #283477b3 52%, #28347726 80%, #28347700 100%), var(--engen-hero-image), radial-gradient(ellipse at 90% 35%, color-mix(in srgb, #283477 65%, #F0F1F6), #283477); background-size: cover; background-position: center; border-bottom: 1px solid #EDD947; }
html[data-jmos-regional-home="true"] .engen-hero-copy { max-width: 640px; padding: 38px 0 32px; color: #fff; }
html[data-jmos-regional-home="true"] .engen-eyebrow { margin: 0 0 14px; color: #283477; font-size: 11px; line-height: 1.6; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
html[data-jmos-regional-home="true"] #page-title { margin: 0 0 20px; color: #fff; font-family: "Encode Sans Semi Condensed", Montserrat, sans-serif; font-size: clamp(52px, 6vw, 86px); line-height: 1.15; font-weight: 300; letter-spacing: -.02em; }
html[data-jmos-regional-home="true"] #page-title span { font-weight: 300; }
html[data-jmos-regional-home="true"] .engen-intro { max-width: 530px; font-size: 17px; line-height: 1.8; color: #fff; }
html[data-jmos-regional-home="true"] .engen-hero-link { display: inline-flex; gap: 24px; align-items: center; min-height: 44px; margin-top: 8px; color: #fff; text-decoration: none; border-bottom: 2px solid #EDD947; font-size: 13px; font-weight: 500; }
html[data-jmos-regional-home="true"] .engen-section-heading h2 { margin: 0; color: #283477; font-size: 27px; font-weight: 400; }
html[data-jmos-regional-home="true"] .tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 16px 0 0; }
html[data-jmos-regional-home="true"] .engen-tile { display: grid; grid-template-columns: 76px minmax(0, 1fr); grid-template-rows: auto auto; gap: 8px 28px; min-height: 176px; padding: 28px 32px; align-content: center; border: 1px solid #EAEBEF; border-radius: 0; color: #283477; background: #fff; text-decoration: none; box-shadow: 0 10px 26px #28347709; }
html[data-jmos-regional-home="true"] .engen-tile--blue { color: #fff; background: #283477; border-color: #283477; }
html[data-jmos-regional-home="true"] .engen-tile--gold { color: #283477; background: var(--engen-gold-surface); border-color: #EDD947; }
html[data-jmos-regional-home="true"] .engen-tile--silver { color: #545861; background: #F0F1F6; }
html[data-jmos-regional-home="true"] .engen-tile h2 { margin: 0; color: inherit; font-family: inherit; font-size: 30px; font-weight: 400; }
html[data-jmos-regional-home="true"] .engen-tile p { margin: 12px 0 0; color: inherit; font-size: 13px; line-height: 1.75; }
html[data-jmos-regional-home="true"] .engen-tile-icon svg { width: 68px; height: 68px; }
html[data-jmos-regional-home="true"] .engen-tile-action { grid-column: 2; display: flex; justify-content: space-between; gap: 8px; align-items: center; font-size: 11px; font-weight: 500; line-height: 1.6; }
html[data-jmos-regional-home="true"] a.engen-tile:hover { outline: 2px solid #283477; outline-offset: 4px; }
html[data-jmos-regional-home="true"] footer { background: #F0F1F6; border-color: #EAEBEF; padding: 16px; color: #545861; font-size: 12px; }
html[data-jmos-regional-home="true"] footer nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 24px; margin-top: 12px; }
html[data-jmos-regional-home="true"] footer a { color: #283477; }
html[data-jmos-regional-home="true"] a:focus-visible,
html[data-jmos-regional-home="true"] button:focus-visible { outline: 3px solid #283477; outline-offset: 5px; }
html[data-jmos-regional-home="true"] .topbar a:focus-visible { outline-color: #EDD947; }
@media (max-width: 980px) {
  html[data-jmos-regional-home="true"] .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html[data-jmos-regional-home="true"] .brand { gap: 0; }
  html[data-jmos-regional-home="true"] .engen-hero-copy { padding: 32px 0; }
  html[data-jmos-regional-home="true"] .public-nav { margin-left: 0; }
}
@media (max-width: 620px) {
  html[data-jmos-regional-home="true"] .shell { width: calc(100% - 32px); padding-bottom: 32px; }
  html[data-jmos-regional-home="true"] .brand { margin: 0 -16px 24px; padding: 0 24px; }
  html[data-jmos-regional-home="true"] .tiles { grid-template-columns: 1fr; gap: 16px; }
  html[data-jmos-regional-home="true"] .engen-tile { min-height: 180px; padding: 24px; grid-template-columns: 40px minmax(0, 1fr); column-gap: 16px; }
  html[data-jmos-regional-home="true"] .engen-brand img { width: 120px; height: 104px; }
  html[data-jmos-regional-home="true"] .engen-brand { gap: 12px; }
  html[data-jmos-regional-home="true"] .engen-brand span { padding-left: 12px; }
  html[data-jmos-regional-home="true"] .public-nav a { padding: 10px 8px; }
}

html[data-jmos-regional-home="true"] .engen-hero-copy .engen-eyebrow { color: #EDD947; }
html[data-jmos-regional-home="true"] .engen-section-heading h2 { font-family: Montserrat, sans-serif; font-weight: 400; }
html[data-jmos-regional-home="true"] .engen-hero-link:focus-visible { outline-color: #EDD947; }

html[data-jmos-regional-home="true"] #page-title::after { content: ""; display: block; width: 96px; height: 4px; margin-top: 20px; background: #EDD947; }
html[data-jmos-regional-home="true"] .engen-tile--blue .engen-tile-icon { color: #EDD947; }
@media (min-width: 621px) and (max-width: 980px) {
  html[data-jmos-regional-home="true"] .engen-tile { grid-template-columns: 40px minmax(0, 1fr); column-gap: 16px; padding: 24px; }
}
@media (max-width: 980px) {
  html[data-jmos-regional-home="true"] .engen-tile-icon svg { width: 40px; height: 40px; }
  html[data-jmos-regional-home="true"] .engen-tile h2 { font-size: 20px; }
}

html[data-jmos-regional-home="true"] .public-nav a[href="#bereiche"] { color: #EDD947; border-bottom: 2px solid #EDD947; }
html[data-jmos-regional-home="true"] .engen-tile-icon { grid-row: 1 / 3; align-self: center; }
html[data-jmos-regional-home="true"] .engen-tile-action > span { font-size: 26px; line-height: 1; }
html[data-jmos-regional-home="true"] .engen-section-heading .engen-eyebrow { display: none; }
@media (max-width: 980px) {
  html[data-jmos-regional-home="true"] .public-nav { gap: 8px; }
  html[data-jmos-regional-home="true"] .engen-hero-copy { max-width: 560px; }
}

html[data-jmos-regional-home="true"] { --engen-secondary: #2A327A; }
html[data-jmos-regional-home="true"] .engen-tile h2 { overflow-wrap: anywhere; }
html[data-jmos-regional-home="true"] .engen-brand { max-width: 100%; min-width: 0; }
html[data-jmos-regional-home="true"] .engen-brand span { min-width: 0; overflow-wrap: anywhere; }
html[data-jmos-regional-home="true"] .engen-brand img { flex-shrink: 0; }

/* Static main-site adaptations: section spacing, keyboard entry, narrow navigation. */
html { scroll-padding-top: 24px; }
.region-section { margin: 0 0 32px; padding: 8px 0 28px; border-bottom: 1px solid #EAEBEF; }
.region-intro { font-size: 15px; line-height: 1.8; }
.region-link { display: inline-flex; align-items: center; gap: 24px; min-height: 44px; color: #283477; font-size: 13px; font-weight: 500; text-decoration: none; border-bottom: 2px solid #EDD947; }
.skip-link { position: absolute; z-index: 2; top: 8px; left: 16px; padding: 12px; transform: translateY(-160%); color: #283477; background: #EDD947; }
.skip-link:focus { transform: translateY(0); }
html[data-jmos-regional-home="true"] .public-nav a { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; }
@media (max-width: 620px) {
  html[data-jmos-regional-home="true"] .topbar { gap: 0; padding-bottom: 16px; }
  html[data-jmos-regional-home="true"] .public-nav { width: 100%; gap: 4px 12px; }
  html[data-jmos-regional-home="true"] .public-nav .primary { margin-top: 4px; }
  html[data-jmos-regional-home="true"] #page-title { font-size: clamp(42px, 11vw, 68px); }
}

/* Editorial sections use the existing Engen spacing, palette and heading scale. */
.content-section { padding: 32px 0; border-bottom: 1px solid #EAEBEF; }
.editorial-copy { max-width: 820px; font-size: 17px; line-height: 1.8; }
.principles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.principles article { padding: 28px 32px; border: 1px solid #EAEBEF; background: #F0F1F6; }
.principles h3, .benefits h3 { margin: 0 0 12px; color: #283477; font: 400 20px Montserrat, sans-serif; }
.principles p { margin: 0; font-size: 15px; line-height: 1.8; }
.benefits { margin-top: 24px; }
.benefits ul { padding-left: 20px; font-size: 15px; line-height: 1.8; }
.benefits li { padding: 5px 0; }
.benefits li::marker { color: #283477; }
.contact-section { margin-top: 32px; border-bottom: 0; }
html[data-jmos-regional-home="true"] .region-section { padding-top: 32px; }
@media (max-width: 620px) {
  .principles { grid-template-columns: 1fr; }
  .principles article { padding: 24px; }
  .editorial-copy { font-size: 16px; }
  html[data-jmos-regional-home="true"] #page-title { overflow-wrap: break-word; font-size: clamp(36px, 10vw, 62px); }
}

/* Supplied editorial content, in the existing Engen components. */
html[data-jmos-regional-home="true"] .text-tile { grid-template-columns: minmax(0, 1fr); }
html[data-jmos-regional-home="true"] .text-tile .engen-tile-action { grid-column: 1; margin-top: 12px; }
html[data-jmos-regional-home="true"] #page-title.homepage-title { font-size: clamp(38px, 5vw, 68px); }
.topic-nav { display:flex; flex-wrap:wrap; gap:12px 24px; padding:24px 0; border-bottom:1px solid #EAEBEF; }
.topic-nav a { color:#283477; font-size:13px; min-height:44px; display:inline-flex; align-items:center; }
.tenure-note, .regional-access { margin:24px 0; padding:24px 32px; background:#F0F1F6; border:1px solid #EAEBEF; }
.tenure-note h3, .regional-access h3 { margin:0 0 12px; color:#283477; font:400 20px Montserrat,sans-serif; }
.tenure-note p { line-height:1.8; margin:0; }
.footer-copy { max-width:820px; margin:auto; line-height:1.8; }
footer nav a { display:inline-flex; align-items:center; min-height:44px; }
@media(max-width:620px) {
 html[data-jmos-regional-home="true"] #page-title.homepage-title { font-size:clamp(32px, 8.5vw, 50px); }
 .tenure-note, .regional-access { padding:24px; }
}

.legal-copy h1 { color:#283477; font:300 48px "Encode Sans Semi Condensed",sans-serif; }
.legal-copy h2 { color:#283477; font:400 24px Montserrat,sans-serif; margin-top:32px; }
.legal-copy a { color:#283477; overflow-wrap:anywhere; }
