:root {
  --orange: #df641f;
  --orange-dark: #a84312;
  --forest: #153c34;
  --forest-deep: #0b2923;
  --blue: #23566c;
  --ink: #17211e;
  --text: #34423d;
  --muted: #68736f;
  --line: #d5ddda;
  --line-strong: #aab8b3;
  --paper: #f4f6f5;
  --white: #fff;
  --soft: #e9efec;
  --focus: #ffbf47;
  --max: 1240px;
  --reading: 780px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--white); color: var(--text); font-family: Inter, "Segoe UI", Arial, Helvetica, sans-serif; font-size: 17px; line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: var(--orange-dark); text-decoration-thickness: 2px; text-underline-offset: .18em; }
a:hover { color: var(--forest); }
button, input, textarea, select { font: inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [contenteditable]:focus-visible, summary:focus-visible, main:focus-visible { outline: 4px solid var(--focus); outline-offset: 3px; }
.skip-link { position: fixed; top: -100px; left: 18px; z-index: 1000; padding: 10px 16px; background: var(--focus); color: var(--ink); font-weight: 800; }
.skip-link:focus { top: 14px; }
.header-inner, .content-inner, .footer-inner, .footer-bottom-inner { width: min(var(--max), calc(100% - 48px)); margin-inline: auto; }
.site-header { position: relative; z-index: 20; background: var(--white); border-bottom: 1px solid var(--line); }
.utility-bar { background: var(--forest-deep); color: #fff; }
.utility-inner { display: flex; justify-content: space-between; align-items: center; min-height: 38px; font-size: .78rem; font-weight: 650; }
.utility-inner > span { letter-spacing: .04em; text-transform: uppercase; }
.utility-inner div { display: flex; gap: 26px; }
.utility-inner a { color: #fff; text-decoration: none; }
.utility-inner a:hover { text-decoration: underline; }
.brand-row { display: grid; grid-template-columns: 230px 205px minmax(0, 1fr); align-items: center; min-height: 106px; gap: 26px; }
.brand { display: block; width: 230px; background: transparent; }
.brand img { width: 100%; height: auto; background: transparent; }
.brand-context { padding-left: 24px; border-left: 1px solid var(--line); line-height: 1.35; }
.brand-context strong, .brand-context span { display: block; }
.brand-context strong { color: var(--ink); font-size: .88rem; }
.brand-context span { margin-top: 5px; color: var(--muted); font-size: .78rem; text-transform: uppercase; }
.topnav { display: flex; align-self: stretch; justify-content: flex-end; align-items: stretch; gap: 1px; }
.menu-link, .menu-trigger { position: relative; display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 11px; border: 0; background: transparent; color: var(--ink); font-size: .84rem; font-weight: 780; text-decoration: none; cursor: pointer; }
.topnav > .menu-link::after, .menu-group > .menu-trigger::after { content: ""; position: absolute; inset: auto 11px 0; height: 4px; background: transparent; }
.menu-link:hover, .menu-trigger:hover, .menu-group.is-open > .menu-trigger { background: var(--paper); color: var(--forest); }
.topnav > .menu-link.is-active::after, .menu-group.is-active > .menu-trigger::after { background: var(--orange); }
.menu-trigger span { margin-left: 7px; color: var(--orange-dark); font-size: 1rem; transition: transform .16s ease; }
.menu-group { position: relative; display: flex; }
.menu-group.is-open .menu-trigger span { transform: rotate(180deg); }
.submenu { position: absolute; top: calc(100% - 1px); right: 0; z-index: 50; display: none; width: min(760px, 88vw); padding: 0; border-top: 4px solid var(--orange); background: #fff; box-shadow: 0 22px 44px rgba(11,41,35,.17); }
.menu-group.is-open .submenu { display: block; }
.submenu-inner { display: grid; grid-template-columns: 230px minmax(0, 1fr); }
.submenu-intro { padding: 27px 26px; background: var(--forest); color: #fff; }
.submenu-intro span { display: block; color: #ffc7a6; font-size: .68rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.submenu-intro strong { display: block; margin-top: 10px; font-size: 1.4rem; }
.submenu-intro p { margin: 12px 0 0; color: #d9e5e1; font-size: .84rem; line-height: 1.5; }
.submenu-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; padding: 14px; }
.submenu-link { justify-content: flex-start; min-height: 47px; padding: 10px 13px; border-bottom: 1px solid var(--line); font-size: .82rem; }
.submenu-link::after { content: "→"; margin-left: auto; padding-left: 12px; color: var(--orange); }
.submenu-link.is-active { background: var(--soft); color: var(--forest); }
.menu-career { color: var(--orange-dark); }
.menu-button { display: none; width: 48px; height: 48px; padding: 10px; border: 1px solid var(--ink); background: #fff; cursor: pointer; }
.menu-button span { display: block; height: 2px; margin: 5px 0; background: var(--ink); }
.content { min-height: 65vh; }
.hero { position: relative; min-height: 360px; color: #fff; background: var(--forest); overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: var(--hero-image) center / cover no-repeat; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 31, 26, .96) 0%, rgba(8, 31, 26, .84) 40%, rgba(8, 31, 26, .18) 75%); }
.hero-inner { position: relative; z-index: 1; display: flex; align-items: center; min-height: 360px; }
.hero-copy { width: min(720px, 68%); padding: 54px 0 60px; }
.eyebrow { display: block; margin-bottom: 14px; color: var(--orange-dark); font-size: .78rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.hero .eyebrow { color: #ffc7a6; }
.hero h1 { max-width: 780px; margin: 0; color: #fff; font-size: clamp(2.55rem, 5vw, 4.45rem); line-height: 1; letter-spacing: 0; }
.hero p { max-width: 670px; margin: 22px 0 0; font-size: clamp(1.08rem, 2vw, 1.35rem); font-weight: 600; line-height: 1.45; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.button.hero-secondary { border-color: rgba(255,255,255,.72); background: rgba(11,41,35,.28); color: #fff; }
.button.hero-secondary:hover { border-color: #fff; background: #fff; color: var(--forest); }
.hero-career, .hero-career .hero-inner { min-height: 410px; }
.proof-strip { border-bottom: 1px solid var(--line); background: #fff; }
.proof-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.proof-grid > div { min-width: 0; padding: 20px 24px; border-left: 1px solid var(--line); }
.proof-grid > div:last-child { border-right: 1px solid var(--line); }
.proof-grid strong, .proof-grid span { display: block; }
.proof-grid strong { color: var(--forest); font-size: .95rem; }
.proof-grid span { margin-top: 2px; color: var(--muted); font-size: .76rem; }
.editorial-content { padding-block: 54px; }
.text-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 80px; }
.copy { max-width: var(--reading); }
.copy p { margin: 0 0 22px; }
.copy p:first-child { color: var(--ink); font-size: 1.3rem; font-weight: 700; line-height: 1.5; }
.highlight-list { align-self: start; margin: 0; padding: 18px 0 0; border-top: 5px solid var(--orange); list-style: none; }
.highlight-list li { position: relative; padding: 12px 30px 12px 0; border-bottom: 1px solid var(--line); color: var(--ink); font-weight: 700; }
.highlight-list li::after { content: "→"; position: absolute; right: 4px; color: var(--orange); }
.page-blocks { max-width: 920px; }
.page-blocks:has(.legacy-column), .page-blocks:has(.referenzLink), .page-blocks:has(.referenz__item) { max-width: none; }
.page-blocks > *:first-child { margin-top: 0; }
.rich-text { max-width: var(--reading); font-size: 1.02rem; }
.rich-text p { margin: 0 0 1.25em; }
.rich-text a { font-weight: 650; }
.rich-text:has(> .legacy-column) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr); gap: 64px; max-width: none; }
.page-home .rich-text > p:first-child { grid-column: 1 / -1; max-width: 940px; margin-bottom: 0; color: var(--ink); font-size: 1.22rem; }
.rich-text > .legacy-column { min-width: 0; }
.legacy-copy > p:first-child { color: var(--ink); font-size: 1.18rem; font-weight: 650; }
.legacy-services { padding: 28px 30px; border-top: 5px solid var(--orange); background: var(--paper); }
.legacy-services h2 { margin: 25px 0 7px; color: var(--forest); font-size: 1rem; line-height: 1.35; }
.legacy-services h2:first-child { margin-top: 0; }
.legacy-services ul { margin: 0 0 18px; padding-left: 1.15em; }
.legacy-services li { margin-bottom: 4px; }
.content-heading { max-width: 850px; margin: 52px 0 20px; color: var(--ink); font-size: clamp(1.7rem, 3vw, 2.75rem); line-height: 1.18; }
h3.content-heading { font-size: 1.45rem; }
h4.content-heading { font-size: 1.15rem; }
.content-list { max-width: 760px; padding-left: 1.3em; }
.content-list li { margin-bottom: 8px; padding-left: 5px; }
.callout { margin: 48px 0; padding: 30px 34px; border-left: 6px solid var(--orange); background: var(--paper); }
.callout.is-dark { background: var(--forest); color: #fff; }
.callout h2 { margin: 0 0 8px; color: inherit; font-size: 1.55rem; }
.callout p { margin: 0; }
.quote { max-width: 780px; margin: 50px 0; padding: 8px 0 8px 32px; border-left: 5px solid var(--forest); }
.quote blockquote { margin: 0; color: var(--ink); font-size: 1.55rem; font-weight: 650; line-height: 1.4; }
.quote figcaption { margin-top: 12px; color: var(--muted); }
.content-image { margin: 48px 0; }
.content-image img { width: 100%; max-height: 520px; object-fit: cover; }
.content-image figcaption { padding-top: 9px; color: var(--muted); font-size: .88rem; }
.content-divider { margin: 50px 0; border: 0; border-top: 1px solid var(--line); }
.button-row { margin: 30px 0; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 11px 19px; border: 2px solid var(--forest); border-radius: 2px; font-weight: 800; text-decoration: none; cursor: pointer; }
.button.primary { border-color: var(--orange); background: var(--orange); color: #fff; }
.button.primary:hover { border-color: var(--orange-dark); background: var(--orange-dark); color: #fff; }
.button.ghost { background: transparent; color: var(--forest); }
.button.ghost:hover { background: var(--soft); }
.home-services { padding: 60px 0 68px; background: var(--paper); }
.section-heading { max-width: 840px; margin-bottom: 30px; }
.section-heading h2, .statement h2, .career-intro h2, .application-panel h2 { margin: 0; color: var(--ink); font-size: clamp(1.9rem, 3.5vw, 2.75rem); line-height: 1.12; }
.split-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); align-items: end; gap: 60px; max-width: none; }
.split-heading p { margin: 0 0 5px; font-size: 1.08rem; }
.service-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--line-strong); border-left: 1px solid var(--line-strong); }
.service-card { min-width: 0; border-right: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); background: #fff; color: var(--ink); text-decoration: none; }
.service-card-media { height: 78px; background: linear-gradient(rgba(11,41,35,.1), rgba(11,41,35,.1)), var(--card-image) center / cover; filter: saturate(.75); }
.service-card-copy { position: relative; min-height: 158px; padding: 19px 19px 25px; }
.service-card span { color: var(--orange-dark); font-size: .7rem; font-weight: 800; }
.service-card h3 { margin: 8px 26px 0 0; font-size: 1.02rem; line-height: 1.25; }
.service-card p { margin: 9px 20px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.service-card b { position: absolute; right: 17px; top: 48px; color: var(--orange); font-size: 1.15rem; }
.service-card:hover .service-card-copy { background: var(--forest); color: #fff; }
.service-card:hover p, .service-card:hover span { color: #d8e4e0; }
.project-showcase { padding: 66px 0 70px; }
.project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.project-card { display: grid; grid-template-columns: 44% minmax(0, 1fr); min-height: 210px; border: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.project-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8); }
.project-card > div { padding: 22px 20px; }
.project-card span { color: var(--orange-dark); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.project-card h3 { margin: 12px 0 7px; font-size: 1.06rem; line-height: 1.25; }
.project-card p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.45; }
.project-card:hover { border-color: var(--forest); box-shadow: 0 10px 28px rgba(11,41,35,.1); }
.section-action { margin: 24px 0 0; }
.mobile-carousel-controls { display: none; }
.statement { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 60px; padding-block: 76px; }
.statement p { max-width: 760px; }
.team-section { padding-top: 10px; padding-bottom: 80px; }
.team-section-lead { max-width: 720px; margin: 12px 0 0; font-size: 1.05rem; }
.team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(900px, 100%); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.team-card { min-width: 0; background: #fff; }
.team-card img { width: 100%; aspect-ratio: 1.58 / 1; object-fit: cover; object-position: center top; filter: saturate(.78); }
.team-card > div { padding: 22px 22px 26px; }
.team-card h2 { margin: 0 0 6px; color: var(--ink); font-size: 1.2rem; line-height: 1.25; }
.team-card p { margin: 0 0 8px; font-size: .9rem; line-height: 1.5; }
.team-role { color: var(--orange-dark); font-weight: 800; }
.team-collective { padding: 42px; border-top: 6px solid var(--orange); background: var(--forest); color: #fff; }
.team-collective .eyebrow { color: #ffc7a6; }
.team-collective h3 { margin: 0; color: #fff; font-size: 1.65rem; line-height: 1.2; }
.team-collective-head { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: end; gap: 70px; }
.team-collective-head > p { max-width: 630px; margin: 0; color: #e1ebe8; }
.team-disciplines { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 34px 0 0; padding: 1px; background: rgba(255,255,255,.22); list-style: none; }
.team-disciplines li { min-height: 96px; padding: 15px 16px; background: var(--forest); color: #fff; line-height: 1.35; }
.team-disciplines strong, .team-disciplines span { display: block; }
.team-disciplines strong { font-size: .84rem; }
.team-disciplines span { margin-top: 3px; color: #cbdad6; font-size: .73rem; }
.team-leadership-heading { margin-top: 58px; }
.career-content { padding-block: 64px 86px; }
.career-intro { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 76px; padding-bottom: 58px; border-bottom: 1px solid var(--line); }
.career-intro p { max-width: 720px; font-size: 1.08rem; }
.benefit-strip { display: grid; grid-template-columns: repeat(2, 1fr); align-self: start; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.benefit-strip span { min-height: 88px; padding: 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--forest); font-size: .9rem; font-weight: 800; }
.jobs-list { display: grid; gap: 24px; padding-top: 52px; }
.job-card { padding: clamp(24px, 4vw, 46px); border: 1px solid var(--line-strong); background: #fff; box-shadow: 0 12px 35px rgba(18, 43, 36, .06); }
.job-top { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.job-top span { padding: 5px 10px; background: var(--soft); color: var(--forest); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.job-card h2 { max-width: 880px; margin: 0; color: var(--ink); font-size: clamp(1.6rem, 3vw, 2.45rem); line-height: 1.15; }
.job-card > p { margin: 8px 0 0; color: var(--orange-dark); font-weight: 800; }
.job-details summary { display: none; }
.job-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--line); }
.job-columns h3 { margin: 0 0 12px; color: var(--forest); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.job-columns ul { margin: 0; padding-left: 1.15em; font-size: .94rem; }
.job-columns li + li { margin-top: 7px; }
.job-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.application-panel { display: grid; grid-template-columns: .8fr 1.2fr; gap: 50px; margin-top: 38px; padding: 38px 42px; background: var(--forest); color: #fff; }
.application-panel h2 { color: #fff; font-size: 2rem; }
.application-panel p { margin: 3px 0; }
.application-panel a { color: #ffc7a6; }
.map-panel { padding-bottom: 70px; }
.map-panel iframe { width: 100%; height: 420px; border: 1px solid var(--line-strong); }
.map-consent { display: grid; place-items: center; min-height: 420px; padding: 42px; border: 1px solid var(--line-strong); border-top: 5px solid var(--orange); background: var(--paper); }
.map-consent > div { width: min(680px, 100%); }
.map-consent h2 { margin: 0; color: var(--ink); font-size: 2rem; }
.map-consent p { margin: 10px 0 0; }
.map-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.map-privacy { color: var(--muted); font-size: .8rem; }
.roundedCornerBox { margin-bottom: 35px; padding: 24px 28px; border-left: 5px solid var(--orange); background: var(--paper); }
.rich-text:has(.referenzLink), .rich-text:has(.referenz__item) { max-width: none; }
.rich-text > div:has(> .referenzLink) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.referenzLink { position: relative; min-height: 240px; overflow: hidden; background: var(--forest); }
.referenzLink img { width: 100%; height: 240px; object-fit: cover; opacity: .62; transition: transform .2s ease; }
.referenzLink a { position: absolute; inset: 0; z-index: 1; display: flex; align-items: flex-end; padding: 22px; color: #fff; text-decoration: none; }
.referenzLinkCaptionText { font-size: 1.08rem; font-weight: 800; line-height: 1.3; }
.referenzLink:hover img { transform: scale(1.025); }
.referenzBack { margin-bottom: 24px; }
.rich-text > div:has(> .referenz__head) { margin-bottom: 24px; }
.referenz__head { color: var(--ink); font-size: 1.65rem; font-weight: 800; line-height: 1.25; }
.rich-text > div:has(> .referenz__item) { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 25px; padding: 17px 0; border-top: 1px solid var(--line); }
.rich-text > div:has(> .referenz__item) > .referenz__item:first-child { color: var(--forest); font-weight: 800; }
.rich-text > div:has(> .referenz__item--twocols) { display: block; margin-top: 32px; }
.referenz__item--twocols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 22px; }
.referenz__item--twocols img { width: 100%; max-height: 360px; object-fit: cover; }
.referenzenImageText { margin: -12px 0 18px; padding: 12px 14px; background: var(--paper); font-size: .82rem; }
.referenzenImageCaption { color: var(--orange-dark); font-weight: 800; }
.not-found { width: min(var(--max), calc(100% - 48px)); margin: 0 auto; padding: 100px 0; }
.footer { position: relative; background: #eef2f0; color: var(--text); border-top: 1px solid var(--line-strong); }
.footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--orange); }
.footer-inner { display: grid; grid-template-columns: 1.45fr .9fr .65fr; gap: 72px; padding-block: 58px 52px; }
.footer-inner > div:not(.footer-brand) { padding-left: 28px; border-left: 1px solid var(--line-strong); }
.footer-inner > div > strong { display: block; margin-bottom: 14px; color: var(--forest); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-brand img { width: 270px; background: transparent; }
.footer-brand p { max-width: 520px; margin: 24px 0 0; color: #4c5a55; font-size: .95rem; }
.footer address { font-style: normal; }
.footer a { color: var(--forest); font-weight: 650; }
.footer a:hover { color: var(--orange-dark); }
.footer nav { display: grid; gap: 8px; }
.footer-bottom { border-top: 0; background: var(--forest-deep); }
.footer-bottom-inner { display: flex; justify-content: space-between; gap: 20px; padding-block: 15px; color: #e5eeeb; font-size: .78rem; }

/* Login and visual editor */
.admin-body, .editor-body { min-height: 100vh; background: #edf1ef; }
.login-box { width: min(470px, calc(100% - 32px)); margin: 8vh auto; padding: 38px; border-top: 6px solid var(--orange); background: #fff; box-shadow: 0 20px 60px rgba(11,41,35,.12); }
.login-box img { width: 220px; background: transparent; }
.login-box h1 { margin: 32px 0 22px; color: var(--ink); font-size: 2rem; }
label { display: grid; gap: 7px; margin-bottom: 14px; color: var(--ink); font-size: .88rem; font-weight: 750; }
input, textarea, select { width: 100%; padding: 10px 12px; border: 1px solid var(--line-strong); border-radius: 2px; background: #fff; color: var(--ink); }
textarea { resize: vertical; }
.hint { color: var(--muted); font-size: .84rem; }
.error { color: #a52a1c; font-weight: 800; }
.editor-header { position: sticky; top: 0; z-index: 30; display: grid; grid-template-columns: 230px 1fr auto; align-items: center; gap: 24px; height: 78px; padding: 0 24px; border-bottom: 1px solid var(--line); background: #fff; box-shadow: 0 3px 15px rgba(11,41,35,.06); }
.editor-header img { width: 170px; background: transparent; }
.editor-header h1 { margin: 0; color: var(--ink); font-size: 1rem; }
.editor-header nav, .editor-actions { display: flex; align-items: center; gap: 10px; }
.editor-header nav a { color: var(--ink); font-size: .85rem; font-weight: 700; }
.editor-shell { display: grid; grid-template-columns: 250px minmax(560px, 1fr) 360px; min-height: calc(100vh - 78px); }
.editor-sidebar { padding: 22px 16px; border-right: 1px solid var(--line); background: #f8faf9; }
.editor-sidebar h2 { margin: 0 8px 14px; color: var(--muted); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.editor-tabs { display: grid; gap: 4px; margin-bottom: 24px; }
.editor-tabs button, #pageList button { width: 100%; min-height: 42px; padding: 9px 11px; border: 0; border-left: 4px solid transparent; background: transparent; color: var(--ink); text-align: left; font-size: .86rem; font-weight: 750; cursor: pointer; }
.editor-tabs button:hover, #pageList button:hover { background: var(--soft); }
.editor-tabs button.is-active, #pageList button.is-active { border-left-color: var(--orange); background: #fff; color: var(--orange-dark); }
#pageList { display: grid; gap: 2px; max-height: calc(100vh - 300px); overflow-y: auto; }
.editor-workspace { min-width: 0; padding: 30px clamp(22px, 4vw, 52px) 80px; background: #fff; }
.workspace-head { display: flex; justify-content: space-between; gap: 30px; margin-bottom: 26px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.workspace-head h2 { margin: 0; color: var(--ink); font-size: 1.65rem; }
.workspace-head p { margin: 3px 0 0; color: var(--muted); font-size: .9rem; }
.panel { display: none; }
.panel.is-active { display: block; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.field-grid .wide { grid-column: 1 / -1; }
.editor-inspector { padding: 24px 20px; border-left: 1px solid var(--line); background: #f8faf9; }
.editor-inspector h2 { margin: 0 0 18px; color: var(--ink); font-size: 1.05rem; }
.editor-inspector iframe { width: 100%; height: 520px; border: 1px solid var(--line-strong); background: #fff; }
.preview-note { margin-top: 10px; color: var(--muted); font-size: .78rem; }
.status { min-width: 90px; color: var(--muted); font-size: .82rem; text-align: right; }
.block-toolbar { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; padding: 10px; background: var(--paper); border: 1px solid var(--line); }
.tool-button, .icon-button { min-height: 38px; padding: 7px 11px; border: 1px solid var(--line-strong); background: #fff; color: var(--ink); font-size: .78rem; font-weight: 750; cursor: pointer; }
.tool-button:hover, .icon-button:hover { border-color: var(--forest); background: var(--soft); }
.blocks { display: grid; gap: 12px; }
.block { position: relative; border: 1px solid var(--line); background: #fff; }
.block:focus-within { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(35,86,108,.12); }
.block-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 42px; padding: 6px 8px 6px 13px; border-bottom: 1px solid var(--line); background: #f7f9f8; }
.block-head strong { color: var(--muted); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.block-controls { display: flex; gap: 4px; }
.icon-button { min-width: 34px; min-height: 30px; padding: 3px 7px; }
.icon-button.danger { color: #a52a1c; }
.block-body { padding: 15px; }
.wysiwyg-toolbar { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }
.wysiwyg-toolbar button { min-width: 34px; min-height: 32px; border: 1px solid var(--line); background: #fff; font-weight: 800; cursor: pointer; }
.wysiwyg { min-height: 130px; padding: 14px; border: 1px solid var(--line-strong); background: #fff; color: var(--text); }
.wysiwyg p:first-child { margin-top: 0; }
.wysiwyg p:last-child { margin-bottom: 0; }
.media-picker { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; max-height: 360px; overflow-y: auto; padding: 8px; border: 1px solid var(--line); background: var(--paper); }
.media-option { padding: 0; border: 3px solid transparent; background: #fff; cursor: pointer; }
.media-option img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.media-option.is-selected { border-color: var(--orange); }
.collection-list { display: grid; gap: 10px; }
.collection-item { padding: 18px; border: 1px solid var(--line); background: #fff; }
.collection-item summary { color: var(--ink); font-weight: 800; cursor: pointer; }
.collection-item .field-grid { margin-top: 18px; }
.raw-details { margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--line); }
.raw-details summary { cursor: pointer; font-weight: 800; }
.raw-details textarea { margin-top: 12px; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .78rem; }
.empty-state { padding: 40px; border: 1px dashed var(--line-strong); color: var(--muted); text-align: center; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 1120px) {
  .brand-row { grid-template-columns: 220px minmax(0, 1fr) auto; }
  .brand-context { display: none; }
  .menu-button { display: block; }
  .topnav { display: none; position: absolute; z-index: 60; top: 144px; left: 0; right: 0; max-height: calc(100vh - 144px); overflow-y: auto; padding: 12px 24px 22px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; box-shadow: 0 22px 40px rgba(11,41,35,.16); }
  .topnav.is-open { display: grid; }
  .menu-group { display: block; }
  .menu-link, .menu-trigger { justify-content: flex-start; width: 100%; min-height: 48px; border-bottom: 1px solid var(--line); }
  .topnav > .menu-link::after, .menu-group > .menu-trigger::after { display: none; }
  .menu-trigger span { margin-left: auto; }
  .submenu { position: static; width: 100%; border-top: 0; box-shadow: none; }
  .submenu-inner { grid-template-columns: 190px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
  .submenu-intro { padding: 20px; }
  .submenu-links { padding: 8px 12px 14px; }
  .editor-shell { grid-template-columns: 220px minmax(0, 1fr); }
  .editor-inspector { display: none; }
  .service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .project-grid { grid-template-columns: 1fr; }
  .project-card { grid-template-columns: 260px minmax(0, 1fr); }
  .team-collective-head { grid-template-columns: 1fr; gap: 18px; }
  .team-disciplines { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  body { font-size: 16px; }
  .header-inner, .content-inner, .footer-inner, .footer-bottom-inner { width: min(100% - 30px, var(--max)); }
  .utility-inner > span { display: none; }
  .utility-inner { justify-content: flex-end; }
  .utility-inner div { gap: 14px; }
  .utility-inner div a:first-child { display: none; }
  .brand-row { min-height: 92px; grid-template-columns: minmax(0, 210px) auto; }
  .topnav { top: 130px; }
  .submenu-inner { grid-template-columns: 1fr; }
  .submenu-intro { display: none; }
  .submenu-links { grid-template-columns: 1fr; }
  .hero, .hero-inner { min-height: 390px; }
  .hero::after { background: linear-gradient(90deg, rgba(8,31,26,.94), rgba(8,31,26,.55)); }
  .hero-copy { width: 100%; padding: 44px 0; }
  .hero h1 { font-size: clamp(2.55rem, 14vw, 4.4rem); }
  .text-grid, .split-heading, .statement, .career-intro, .application-panel, .footer-inner, .rich-text:has(> .legacy-column) { grid-template-columns: 1fr; gap: 28px; }
  .footer-inner > div:not(.footer-brand) { padding: 24px 0 0; border-top: 1px solid var(--line-strong); border-left: 0; }
  .service-grid, .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof-grid > div { border-bottom: 1px solid var(--line); }
  .job-columns { grid-template-columns: 1fr; gap: 22px; }
  .statement { align-items: start; }
  .footer-bottom-inner { display: grid; }
  .editor-header { grid-template-columns: 1fr auto; padding: 0 15px; }
  .editor-header h1 { display: none; }
  .editor-header nav a:first-child { display: none; }
  .editor-shell { grid-template-columns: 1fr; }
  .editor-sidebar { position: static; border-right: 0; border-bottom: 1px solid var(--line); }
  #pageList { max-height: 220px; }
  .field-grid { grid-template-columns: 1fr; }
  .field-grid .wide { grid-column: auto; }
  .rich-text > div:has(> .referenzLink) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rich-text > div:has(> .referenz__item) { grid-template-columns: 1fr; gap: 5px; }
}
@media (max-width: 520px) {
  .utility-inner div a { font-size: .72rem; }
  .brand { width: 185px; }
  .hero, .hero-inner { min-height: 360px; }
  .editorial-content, .career-content { padding-block: 44px; }
  .service-grid, .team-grid, .rich-text > div:has(> .referenzLink), .referenz__item--twocols { grid-template-columns: 1fr; }
  .home-services { padding-block: 52px; }
  .statement { padding-block: 52px; }
  .benefit-strip { grid-template-columns: 1fr; }
  .job-card { padding: 22px; }
  .application-panel { padding: 28px 24px; }
  .media-picker { grid-template-columns: repeat(2, 1fr); }
  .project-card { grid-template-columns: 1fr; }
  .project-card img { height: 180px; }
  .proof-grid { grid-template-columns: 1fr; }
  .proof-grid > div { padding-inline: 15px; border-right: 1px solid var(--line); }
}

/* Deliberate mobile layout */
@media (max-width: 760px) {
  body.menu-open { overflow: hidden; }
  .site-header { position: sticky; top: 0; }
  .utility-inner { min-height: 34px; }
  .utility-inner div a:first-child { display: block; }
  .utility-inner div a:last-child { display: none; }
  .brand-row { min-height: 82px; grid-template-columns: minmax(0, 185px) auto; gap: 16px; }
  .brand { width: 185px; }
  .menu-button { position: relative; width: 46px; height: 46px; padding: 10px; border-color: var(--line-strong); }
  .menu-button span { position: absolute; left: 11px; width: 22px; margin: 0; transition: transform .18s ease, opacity .18s ease, top .18s ease; }
  .menu-button span:nth-child(1) { top: 14px; }
  .menu-button span:nth-child(2) { top: 21px; }
  .menu-button span:nth-child(3) { top: 28px; }
  .menu-button.is-open span:nth-child(1) { top: 21px; transform: rotate(45deg); }
  .menu-button.is-open span:nth-child(2) { opacity: 0; }
  .menu-button.is-open span:nth-child(3) { top: 21px; transform: rotate(-45deg); }
  .topnav {
    position: fixed;
    inset: 116px 0 0;
    width: 100%;
    max-height: none;
    padding: 8px 15px 34px;
    align-content: start;
    align-items: start;
    justify-content: stretch;
    justify-items: stretch;
    gap: 0;
    overscroll-behavior: contain;
    box-shadow: none;
  }
  .topnav.is-open { display: block; }
  .topnav > .menu-link, .topnav > .menu-group { width: 100%; }
  .menu-group { display: block; }
  .menu-link, .menu-trigger { min-height: 54px; padding: 12px 10px; font-size: .98rem; }
  .menu-link.is-active, .menu-group.is-active > .menu-trigger { padding-left: 16px; border-left: 4px solid var(--orange); background: var(--paper); }
  .submenu, .submenu-inner, .submenu-links { width: 100%; }
  .submenu-links { padding: 0 0 10px 16px; background: var(--paper); }
  .submenu-link { min-height: 48px; padding: 9px 12px; border-bottom-color: #cbd5d1; font-size: .88rem; font-weight: 700; }
  .submenu-link::after { font-size: .9rem; }

  .hero, .hero-inner, .hero-career, .hero-career .hero-inner { min-height: 320px; }
  .hero::before { background-position: 58% center; }
  .hero::after { background: linear-gradient(90deg, rgba(8,31,26,.96), rgba(8,31,26,.7)); }
  .hero-copy { width: 100%; padding: 38px 0 42px; }
  .hero h1 { max-width: 520px; font-size: clamp(2.35rem, 11vw, 3.35rem); line-height: 1.02; }
  .page-datenschutz .hero h1 { font-size: 1.9rem; hyphens: auto; overflow-wrap: break-word; }
  .hero p { margin-top: 15px; font-size: 1.02rem; line-height: 1.45; }
  .hero-actions { margin-top: 22px; }
  .hero-actions .button { min-height: 44px; padding: 9px 14px; font-size: .9rem; }

  .proof-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof-grid > div { min-height: 84px; padding: 15px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .proof-grid strong { font-size: .86rem; }
  .proof-grid span { font-size: .7rem; line-height: 1.35; }
  .editorial-content, .career-content { padding-block: 36px 44px; }
  .rich-text { font-size: 1rem; }
  .rich-text:has(> .legacy-column) { gap: 16px; }
  .page-home .rich-text > p:first-child { font-size: 1.08rem; line-height: 1.5; }
  .legacy-copy > p:first-child { font-size: 1.08rem; }
  .legacy-services { margin-top: 12px; padding: 22px 20px; }
  .legacy-services h2 { margin-top: 22px; }

  .home-services, .project-showcase { padding-block: 46px 50px; }
  .section-heading { margin-bottom: 22px; }
  .section-heading h2, .statement h2, .career-intro h2, .application-panel h2 { font-size: 2rem; }
  .split-heading { gap: 12px; }
  .split-heading p { font-size: .95rem; }
  .mobile-carousel-controls { display: flex; justify-content: flex-end; gap: 6px; margin: -6px 0 10px; }
  .mobile-carousel-controls button { width: 42px; height: 38px; border: 1px solid var(--forest); background: #fff; color: var(--forest); font-size: 1.15rem; font-weight: 800; cursor: pointer; }
  .mobile-carousel-controls button:active { background: var(--forest); color: #fff; }
  .service-grid { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: min(84vw, 328px); gap: 10px; overflow-x: auto; padding: 0 14px 12px 0; border: 0; scroll-padding-inline: 0 14px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .service-grid::-webkit-scrollbar, .project-grid::-webkit-scrollbar { display: none; }
  .service-card { display: grid; grid-template-columns: 118px minmax(0, 1fr); min-height: 132px; border: 1px solid var(--line-strong); scroll-snap-align: start; }
  .service-card-media { height: 100%; min-height: 132px; }
  .service-card-copy { min-height: 132px; padding: 16px 16px 18px; }
  .service-card h3 { margin-top: 5px; font-size: 1rem; }
  .service-card p { display: -webkit-box; margin-top: 7px; overflow: hidden; font-size: .75rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .service-card b { top: 41px; right: 14px; }
  .project-grid { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: min(86vw, 336px); gap: 10px; overflow-x: auto; padding: 0 14px 12px 0; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .project-card { grid-template-columns: 128px minmax(0, 1fr); min-height: 152px; scroll-snap-align: start; }
  .project-card img { height: 100%; min-height: 152px; }
  .project-card > div { padding: 17px 15px; }
  .project-card h3 { margin-top: 7px; font-size: .98rem; }
  .project-card p { font-size: .75rem; }
  .statement { gap: 20px; padding-block: 48px; }
  .statement .button { justify-self: start; }

  .team-section { padding-bottom: 52px; }
  .team-grid { display: grid; grid-template-columns: 1fr; gap: 10px; border: 0; background: transparent; }
  .team-card { display: grid; grid-template-columns: 118px minmax(0, 1fr); min-height: 168px; border: 1px solid var(--line); }
  .team-card img { width: 118px; height: 100%; min-height: 168px; aspect-ratio: auto; }
  .team-card > div { padding: 16px 15px 18px; }
  .team-card h2 { font-size: 1.05rem; }
  .team-card p { font-size: .79rem; line-height: 1.4; }
  .team-collective { padding: 26px 22px; }
  .team-collective h3 { font-size: 1.4rem; }
  .team-disciplines { grid-template-columns: 1fr; }
  .team-disciplines li { min-height: 54px; }
  .team-leadership-heading { margin-top: 42px; }

  .career-intro { padding-bottom: 38px; }
  .benefit-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .benefit-strip span { min-height: 68px; padding: 13px; font-size: .8rem; }
  .jobs-list { gap: 14px; padding-top: 34px; }
  .job-card { padding: 20px 18px; box-shadow: 0 7px 22px rgba(18,43,36,.06); }
  .job-card h2 { font-size: 1.45rem; }
  .job-card > p { font-size: .93rem; }
  .job-details { margin-top: 20px; }
  .job-details summary { display: flex; align-items: center; justify-content: space-between; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line-strong); color: var(--forest); font-size: .84rem; font-weight: 800; cursor: pointer; }
  .job-details summary::after { content: "+"; margin-left: 12px; color: var(--orange-dark); font-size: 1.2rem; }
  .job-details[open] summary::after { content: "−"; }
  .job-columns { gap: 20px; margin-top: 0; padding: 22px 4px 4px; border-top: 0; }
  .job-actions { margin-top: 18px; }
  .job-actions .button { flex: 1 1 145px; padding-inline: 12px; }
  .application-panel { margin-top: 24px; padding: 25px 20px; }
  .map-panel { padding-bottom: 48px; }
  .map-panel iframe { height: 300px; }
  .map-consent { min-height: 300px; padding: 28px 20px; }
  .map-consent h2 { font-size: 1.65rem; }
  .map-actions { display: grid; }
  .map-actions .button { width: 100%; }

  .referenzLink { min-height: 190px; }
  .referenzLink img { height: 190px; }
  .referenzLinkCaptionText { font-size: .98rem; }
  .referenz__head { font-size: 1.35rem; }
  .rich-text > div:has(> .referenz__item) { padding-block: 13px; }
  .referenzenImageText { font-size: .76rem; }

  .footer-inner { gap: 18px; padding-block: 38px 30px; }
  .footer-brand img { width: 205px; }
  .footer-brand p { display: none; }
  .footer-inner > div:not(.footer-brand) { padding-top: 18px; }
  .footer-inner address, .footer-inner nav { font-size: .83rem; }
  .footer-inner nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 15px; }
  .footer-bottom-inner { gap: 4px; padding-block: 13px; font-size: .7rem; }

  .editor-header { min-height: 68px; height: auto; grid-template-columns: minmax(100px, 140px) auto; gap: 10px; padding: 8px 12px; }
  .editor-header img { width: 132px; }
  .editor-actions { justify-content: flex-end; }
  .editor-actions .status, .editor-actions nav { display: none; }
  .editor-actions .button { min-height: 42px; padding: 8px 12px; font-size: .82rem; }
  .editor-sidebar { padding: 15px 12px; }
  .editor-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .editor-tabs button { min-height: 46px; border-bottom: 1px solid var(--line); border-left-width: 3px; }
  .editor-workspace { padding: 22px 15px 60px; }
  .workspace-head { align-items: flex-start; margin-bottom: 20px; }
  .workspace-head h2 { font-size: 1.35rem; }
  .workspace-head .tool-button { flex: 0 0 auto; }
  .block-toolbar { padding: 8px; }
  .tool-button { flex: 1 1 auto; }
  .block-head { align-items: flex-start; flex-wrap: wrap; }
  .block-controls { width: 100%; justify-content: flex-end; }
  .block-body { padding: 12px; }
  .wysiwyg { min-height: 110px; padding: 11px; }
}

@media (max-width: 420px) {
  .header-inner, .content-inner, .footer-inner, .footer-bottom-inner { width: calc(100% - 24px); }
  .brand-row { grid-template-columns: minmax(0, 172px) auto; }
  .brand { width: 172px; }
  .hero h1 { font-size: 2.35rem; }
  .hero-actions { display: grid; }
  .hero-actions .button { width: 100%; }
  .service-card { grid-template-columns: 102px minmax(0, 1fr); }
  .project-card { grid-template-columns: 112px minmax(0, 1fr); }
  .team-card { grid-template-columns: 104px minmax(0, 1fr); }
  .team-card img { width: 104px; }
  .team-card > div { padding-inline: 13px; }
  .editor-header { grid-template-columns: 108px auto; }
  .editor-header img { width: 108px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media (forced-colors: active) {
  .hero::before, .hero::after { display: none; }
  .nav-link.is-active, .service-card:hover { border: 2px solid currentColor; }
}
