/*
Theme Name: MS-Baustatik
Theme URI: https://www.ms-baustatik.de/
Author: MS-Baustatik
Description: Ein responsives, datenschutzfreundliches WordPress-Theme für ein Ingenieurbüro für Tragwerksplanung.
Version: 3.5.42
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: ms-baustatik
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  color-scheme: dark;
  --scroll-progress: 0;
  /* Direkt aus der gelieferten Blau-Petrol-Referenzgrafik abgeleitet. */
  --brand-dark: #0c2634;
  --brand-dark-deep: #071b26;
  --brand-dark-soft: #123344;
  --page-gradient: linear-gradient(115deg, #071b26 0%, #0c2634 58%, #123344 100%);
  /* Zurückhaltendes Kupferorange – nur gezielt als Akzent eingesetzt. */
  --brand-orange: #b84708;
  --brand-orange-hover: #a94308;
  --brand-orange-on-dark: #c95a12;
  --brand-light: #eff2f3;
  --accent-text: #e47e35;
  --accent-on-dark: #e47e35;
  --accent-soft: #102b35;
  --ink: var(--brand-light);
  --heading: #fff;
  --slate: #bcc8ce;
  --mist: #09222f;
  --paper: var(--brand-dark-deep);
  --surface: var(--brand-dark);
  --surface-soft: var(--brand-dark-soft);
  --line: #365b6d;
  --line-accent: #76502d;
  --field-border: #718993;
  --copy-on-dark: #cbd5da;
  --copy-on-dark-soft: #a5b5bd;
  --light-bg: #f1f4f3;
  --light-surface: #fff;
  --light-ink: #102630;
  --light-copy: #425a64;
  --light-line: #c8d4d8;
  --white: #fff;
  --shadow: 0 20px 60px rgba(0, 0, 0, .34);
  --shadow-light: 0 18px 48px rgba(7, 27, 38, .11);
  --radius: 18px;
  /* Fluides Desktop-Raster: nutzt grosse Monitore, ohne Textzeilen unlesbar lang zu machen. */
  --container: 1680px;
  --container-wide: 1840px;
  --page-gutter: clamp(24px, 4vw, 80px);
}

* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: clip; scroll-behavior: smooth; }
body { max-width: 100%; margin: 0; overflow-x: clip; color: var(--ink); background: var(--page-gradient) fixed; font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.65; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img, svg, video, iframe { max-width: 100%; }
a { color: inherit; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--brand-orange); outline-offset: 3px; }
img { display: block; max-width: 100%; height: auto; }
.container { width: min(var(--container), calc(100% - (2 * var(--page-gutter)))); margin: 0 auto; }
.section { padding: 82px 0; }
.section--muted { color: var(--light-ink); background: var(--light-bg); color-scheme: light; }
.section--muted h1, .section--muted h2, .section--muted h3 { color: var(--light-ink); }
.section--muted .section-heading p, .section--muted .discipline-heading p, .section--muted .about-copy p, .section--muted .faq-item p { color: var(--light-copy); }
.section--muted .eyebrow { color: var(--brand-orange-hover); }
.section--muted .service-overview-card, .section--muted .service-detail-card { border-color: var(--light-line); background: var(--light-surface); box-shadow: var(--shadow-light); }
.section--muted .service-overview-card h3, .section--muted .service-detail-card h3 { color: var(--light-ink); }
.section--muted .service-overview-card p, .section--muted .service-detail-card p { color: var(--light-copy); }
.section--muted .service-detail-card ul { color: var(--light-copy); border-color: var(--light-line); }
.section--muted .text-link { color: var(--light-ink); border-color: var(--light-line); }
.section--muted .card-index, .section--muted .service-number { color: var(--brand-orange-hover); border-color: #cba27f; }
.section--muted .faq-item { border-color: var(--light-line); }
.section--muted .faq-item summary { color: var(--light-ink); }
.eyebrow { display: inline-block; margin-bottom: 13px; color: var(--accent-text); font-size: .78rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { overflow-wrap: break-word; font-family: Georgia, 'Times New Roman', serif; line-height: 1.14; letter-spacing: -.018em; }
h1 { margin-bottom: 22px; font-size: clamp(2.35rem, 3.8vw, 4.2rem); }
h2 { margin-bottom: 17px; font-size: clamp(1.8rem, 2.7vw, 2.8rem); }
h3 { margin-bottom: 12px; font-size: 1.28rem; }
.section-heading { max-width: 860px; margin-bottom: 42px; }
.section-heading p { color: var(--slate); font-size: 1.08rem; }
.button, .wp-block-button__link { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 23px; overflow: hidden; color: #fff; border: 0; border-radius: 6px; background: var(--brand-orange); cursor: pointer; font-weight: 700; text-decoration: none; transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.button::after, .wp-block-button__link::after { position: absolute; inset: 0; z-index: -1; content: ''; background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.2) 47%, transparent 69%); transform: translateX(-125%); transition: transform .6s ease; }
.button:hover::after, .wp-block-button__link:hover::after { transform: translateX(125%); }
.button:hover, .wp-block-button__link:hover { color: #fff; background: var(--brand-orange-hover); box-shadow: 0 8px 22px rgba(184,71,8,.24); transform: translateY(-2px); }
.button:disabled { cursor: wait; opacity: .78; transform: none; }
.button--outline { color: #fff; background: transparent; box-shadow: inset 0 0 0 1px rgba(255,255,255,.55); }
.button--outline:hover { color: var(--brand-dark); background: #fff; }
.button--dark { color: var(--brand-light); background: var(--brand-dark-soft); }
.button--dark:hover { color: var(--brand-light); background: #192632; }

/* @section: willkommen */
.no-js .welcome-intro { display: none; }
.welcome-skip .welcome-intro { display: none !important; }
body.welcome-is-active { overflow: hidden; }
.welcome-intro { position: fixed; inset: 0; z-index: 100001; display: grid; place-items: center; min-height: 100vh; min-height: 100dvh; overflow: hidden; color: #fff; background: #071b26; opacity: 1; visibility: visible; transition: opacity .48s cubic-bezier(.4,0,.2,1), visibility .48s; animation: welcome-failsafe .01s linear 6.5s forwards; }
.welcome-intro::before { position: absolute; inset: -8%; content: ''; background: radial-gradient(circle at 50% 48%, rgba(32,88,108,.56), transparent 36%), linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px); background-size: auto, 52px 52px, 52px 52px; opacity: 0; transform: scale(1.08); }
.welcome-intro.is-running::before { animation: welcome-grid-in .95s ease .06s forwards; }
.welcome-intro::after { position: absolute; top: 50%; left: 50%; width: min(84vw, 940px); aspect-ratio: 1; border: 1px solid rgba(228,126,53,.16); border-radius: 50%; box-shadow: 0 0 0 82px rgba(228,126,53,.022), 0 0 0 164px rgba(228,126,53,.012); content: ''; opacity: 0; transform: translate(-50%,-50%) scale(.72); }
.welcome-intro.is-running::after { animation: welcome-orbit-in 1.15s cubic-bezier(.16,1,.3,1) .12s forwards; }
.welcome-intro.is-leaving { pointer-events: none; opacity: 0; visibility: hidden; }
.welcome-intro__skip { position: absolute; top: max(22px, env(safe-area-inset-top)); right: max(24px, env(safe-area-inset-right)); z-index: 4; padding: 10px 14px; color: #d4dee3; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; background: rgba(7,27,38,.58); cursor: pointer; font: inherit; font-size: .78rem; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.welcome-intro__skip:hover { color: #fff; border-color: rgba(228,126,53,.72); background: rgba(18,51,68,.9); }


/* Original logo: gentle reveal followed by a single masked light sweep. */
/* @section: navigation */
.site-header { position: sticky; top: 0; z-index: 20; color: var(--brand-light); border-bottom: 1px solid rgba(255,255,255,.14); background: linear-gradient(105deg, rgba(5,22,31,.97), rgba(12,42,55,.94) 58%, rgba(18,55,68,.92)); box-shadow: 0 8px 30px rgba(0,0,0,.08); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); transition: background .25s ease, box-shadow .25s ease; }
.site-header.is-scrolled { background: linear-gradient(105deg, rgba(5,22,31,.995), rgba(10,36,48,.985)); box-shadow: 0 12px 36px rgba(0,0,0,.28); }
.scroll-progress { position: absolute; right: 0; bottom: -1px; left: 0; z-index: 2; height: 2px; background: linear-gradient(90deg, var(--brand-orange), var(--accent-on-dark)); transform: scaleX(var(--scroll-progress)); transform-origin: left center; }
.admin-bar .site-header { top: 32px; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: min(var(--container-wide), calc(100% - (2 * var(--page-gutter)))); min-height: 92px; margin: 0 auto; }
.site-branding { display: flex; flex: 0 1 auto; align-items: center; gap: 17px; min-width: 0; }
.theme-logo-link { display: flex; flex: 0 1 310px; align-items: center; min-width: 0; text-decoration: none; }
.theme-logo-link, .theme-logo, .footer-logo-link, .footer-logo { background: transparent !important; }
.theme-logo { width: clamp(225px, 22vw, 310px); height: auto; max-height: 74px; object-fit: contain; object-position: left center; filter: none; }
.header-slogan { display: inline-flex; align-items: center; gap: 9px; padding-left: 17px; color: #d6e0e4; border-left: 1px solid rgba(255,255,255,.24); white-space: nowrap; font-size: .84rem; font-weight: 700; letter-spacing: .018em; }
.header-slogan i { display: block; width: 4px; height: 4px; border-radius: 50%; background: var(--brand-orange); }
.primary-nav { display: flex; flex: 0 0 auto; align-items: center; gap: 18px; }
.primary-nav .menu { display: flex; gap: 17px; margin: 0; padding: 0; list-style: none; }
.primary-nav a { position: relative; color: var(--brand-light); white-space: nowrap; font-size: .94rem; font-weight: 600; letter-spacing: .005em; text-decoration: none; }
.primary-nav a:hover { color: var(--accent-on-dark); }
.primary-nav .menu a::after { position: absolute; right: 0; bottom: -8px; left: 0; height: 2px; background: var(--accent-on-dark); content: ''; transform: scaleX(0); transform-origin: right center; transition: transform .22s ease; }
.primary-nav .menu a:hover::after, .primary-nav .menu a:focus-visible::after { transform: scaleX(1); transform-origin: left center; }
.primary-nav .header-cta { padding: 11px 16px; color: #fff; font-size: .9rem; }
.menu-toggle { display: none; min-height: 44px; padding: 9px 12px; color: var(--brand-light); border: 1px solid rgba(255,255,255,.35); border-radius: 5px; background: transparent; font-weight: 700; }

/* @section: hero */
.hero { --motion-x: 0px; --motion-y: 0px; position: relative; isolation: isolate; display: grid; place-items: center; min-height: min(820px, calc(100svh - 84px)); overflow: hidden; color: #fff; background: var(--brand-dark-deep); }
.hero-media { position: absolute; inset: 0; z-index: -3; display: block; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; filter: saturate(.82) contrast(1.05); transform: scale(1.045) translate3d(var(--motion-x), var(--motion-y), 0); transition: transform 1.1s cubic-bezier(.2,.7,.2,1); will-change: transform; }
.hero::before { position: absolute; inset: 0; z-index: -2; content: ''; background: linear-gradient(180deg, rgba(7,27,38,.10) 0%, rgba(7,27,38,.24) 48%, rgba(7,27,38,.50) 100%), linear-gradient(90deg, rgba(7,27,38,.07), rgba(12,38,52,.04), rgba(7,27,38,.07)); }
.hero::after { position: absolute; inset: 0; z-index: -1; content: ''; background: radial-gradient(circle at 50% 43%, transparent 0%, rgba(3,14,20,.04) 52%, rgba(3,14,20,.38) 100%); }
.hero-content { display: flex; justify-content: center; padding: 98px 0 92px; }
.hero .eyebrow { color: #f0a36c; }
.hero .lead { max-width: 760px; margin-right: auto; margin-bottom: 0; margin-left: auto; color: #eef3f5; font-size: clamp(1.05rem, 1.8vw, 1.28rem); text-shadow: 0 2px 14px rgba(0,0,0,.72); }
.hero-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 13px; margin-top: 34px; }
.hero-actions .button { min-width: 220px; padding: 16px 25px; color: var(--brand-dark-deep); background: #fff; box-shadow: 0 14px 34px rgba(0,0,0,.26); }
.hero-actions .button:hover { color: #fff; background: var(--brand-orange-hover); }
.hero-actions .button--outline { color: #fff; background: rgba(7,27,38,.28); box-shadow: inset 0 0 0 1px rgba(255,255,255,.72), 0 14px 34px rgba(0,0,0,.2); }
.hero-actions .button--outline:hover { color: var(--brand-dark-deep); background: #fff; }
.hero-credentials { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: 34px 0 0; padding: 0; list-style: none; text-shadow: none; }
.hero-credentials li { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; color: var(--brand-light); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(255,255,255,.06); font-size: .8rem; font-weight: 700; letter-spacing: .01em; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.hero-credentials__icon { flex: 0 0 auto; width: 15px; height: 15px; color: var(--accent-on-dark); }
/* @section: projektwege */
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 100000; width: auto; height: auto; margin: 0; padding: 12px 16px; overflow: visible; clip: auto; clip-path: none; color: #fff; border-radius: 5px; background: var(--brand-dark-deep); transform: translateY(-150%); transition: transform .15s ease; }
.skip-link:focus { transform: translateY(0); }
.project-paths { position: relative; z-index: 2; margin-top: -34px; }
.project-paths-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.project-paths-grid a { display: grid; gap: 8px; min-height: 168px; padding: 28px; color: var(--ink); border-right: 1px solid var(--line); text-decoration: none; transition: background .25s ease, box-shadow .25s ease; }
.project-paths-grid a:last-child { border-right: 0; }
.project-paths-grid a:hover { background: var(--accent-soft); }
.project-paths-grid span { color: var(--accent-text); font-size: .76rem; font-weight: 800; }
.project-paths-grid strong { color: var(--heading); font-family: Georgia, 'Times New Roman', serif; font-size: 1.45rem; }
.project-paths-grid small { color: var(--slate); font-size: .9rem; line-height: 1.55; }
.inquiry-process-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.inquiry-process-grid li { padding: 27px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.inquiry-process-grid li:hover { border-color: var(--line-accent); box-shadow: 0 16px 38px rgba(0,0,0,.18); transform: translateY(-5px); }
.inquiry-process-grid span { display: grid; place-items: center; width: 35px; height: 35px; margin-bottom: 22px; color: var(--accent-text); border: 1px solid var(--line-accent); border-radius: 50%; font-size: .72rem; font-weight: 800; }
.inquiry-process-grid strong { display: block; margin-bottom: 10px; color: var(--heading); font-family: Georgia, 'Times New Roman', serif; font-size: 1.18rem; }
.inquiry-process-grid p { margin-bottom: 0; color: var(--slate); font-size: .92rem; }
.pre-contact-trust { color: var(--copy-on-dark); background: var(--brand-dark); }
.pre-contact-trust .section-heading h2 { color: #fff; }
.trust-signals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius); background: rgba(255,255,255,.13); }
.trust-signals article { padding: 25px; background: var(--brand-dark-deep); }
.trust-signals strong { display: block; margin-bottom: 8px; color: var(--accent-on-dark); font-family: Georgia, 'Times New Roman', serif; font-size: 1.1rem; }
.trust-signals span { color: var(--copy-on-dark); font-size: .88rem; }

/* @section: leistungen */
.service-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.service-overview-card { position: relative; min-height: 220px; padding: 32px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.service-overview-card::after { position: absolute; right: 0; bottom: 0; width: 120px; height: 120px; border: 1px solid rgba(184,71,8,.18); border-radius: 50% 0 0 0; content: ''; }
.card-index { display: grid; place-items: center; width: 34px; height: 34px; margin-bottom: 22px; color: var(--accent-text); border: 1px solid var(--line-accent); border-radius: 50%; font-size: .72rem; font-weight: 800; }
.service-overview-card h3 { color: var(--heading); font-size: 1.55rem; }
.service-overview-card p { max-width: 480px; margin-bottom: 0; color: var(--slate); }
.service-page-link { margin-top: 26px; }
.service-showcase-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.service-showcase-card { position: relative; isolation: isolate; display: flex; align-items: stretch; flex-direction: column; min-height: 300px; padding: 30px; overflow: hidden; color: var(--light-ink); border: 1px solid var(--light-line); border-radius: var(--radius); background: var(--light-surface); box-shadow: var(--shadow-light); text-decoration: none; transition: border-color .32s ease, box-shadow .32s ease, transform .32s cubic-bezier(.16,1,.3,1); }
.service-showcase-card::before { position: absolute; top: -100px; right: -92px; z-index: -1; width: 260px; height: 260px; border: 1px solid rgba(184,71,8,.2); border-radius: 50%; background: radial-gradient(circle, rgba(228,126,53,.11), transparent 65%); content: ''; opacity: .62; transform: scale(.74); transition: opacity .34s ease, transform .48s cubic-bezier(.16,1,.3,1); }
.service-showcase-card::after { position: absolute; top: 0; bottom: 0; left: 0; width: 4px; background: linear-gradient(var(--brand-orange), var(--accent-text)); content: ''; transform: scaleY(0); transform-origin: bottom; transition: transform .38s cubic-bezier(.16,1,.3,1); }
.service-showcase-card:hover, .service-showcase-card:focus-visible { color: var(--light-ink); border-color: rgba(184,71,8,.48); box-shadow: 0 25px 58px rgba(7,27,38,.16); transform: translateY(-6px); }
.js .service-showcase-card.reveal-on-scroll.is-visible:hover, .js .service-showcase-card.reveal-on-scroll.is-visible:focus-visible { transform: translateY(-6px); }
.service-showcase-card:hover::before, .service-showcase-card:focus-visible::before { opacity: 1; transform: scale(1); }
.service-showcase-card:hover::after, .service-showcase-card:focus-visible::after { transform: scaleY(1); }
.service-showcase-card:last-child:nth-child(odd) { grid-column: 1 / -1; min-height: 250px; }
.service-showcase-card:last-child:nth-child(odd) .service-showcase-card__body > span { max-width: 820px; }
.service-showcase-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.service-showcase-card__index { display: grid; place-items: center; flex: 0 0 auto; width: 40px; height: 40px; color: var(--brand-orange-hover); border: 1px solid #cba27f; border-radius: 50%; font-size: .72rem; font-weight: 800; }
.service-showcase-card__symbol { display: block; width: 96px; height: 72px; color: #557581; transition: color .3s ease, transform .42s cubic-bezier(.16,1,.3,1); }
.service-showcase-card__symbol svg { display: block; width: 100%; height: 100%; overflow: visible; }
.service-showcase-card__symbol path { fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.service-showcase-card__symbol path.is-accent { stroke: var(--brand-orange-hover); }
.service-showcase-card:hover .service-showcase-card__symbol, .service-showcase-card:focus-visible .service-showcase-card__symbol { color: var(--brand-dark-soft); transform: translateY(-4px) scale(1.04); }
.service-showcase-card__body { display: flex; align-items: flex-start; flex: 1; flex-direction: column; min-width: 0; }
.service-showcase-card__body strong { margin-bottom: 11px; color: var(--light-ink); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.42rem, 2vw, 1.78rem); line-height: 1.15; }
.service-showcase-card__body > span { color: var(--light-copy); font-size: .92rem; line-height: 1.62; }
.service-showcase-card__body em { display: inline-flex; align-items: center; gap: 9px; margin-top: auto; padding-top: 22px; color: var(--brand-orange-hover); font-size: .84rem; font-style: normal; font-weight: 800; }
.service-showcase-card__body em span { transition: transform .22s ease; }
.service-showcase-card:hover .service-showcase-card__body em span { transform: translateX(4px); }
.service-visual { position: relative; isolation: isolate; display: block; overflow: hidden; background: #071b26; }
.service-visual > img { position: relative; z-index: 0; }
.service-plan-summary { padding: 0 0 76px; color: var(--light-ink); background: var(--light-bg); scroll-margin-top: 104px; }
.service-plan-summary__inner { padding: 28px 30px; border: 1px solid var(--light-line); border-left: 4px solid var(--brand-orange); border-radius: 0 var(--radius) var(--radius) 0; background: var(--light-surface); box-shadow: var(--shadow-light); }
.service-plan-summary__inner h2 { margin-bottom: 12px; color: var(--light-ink); font-size: clamp(1.65rem, 3vw, 2.45rem); }
.service-plan-summary__inner p { max-width: 980px; margin-bottom: 0; color: var(--light-copy); }
.planning-output { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 48px; margin-top: 48px; padding: 36px; color: var(--copy-on-dark); border-radius: var(--radius); background: var(--brand-dark); }
.planning-output__heading h3 { color: #fff; font-size: clamp(1.65rem, 2.5vw, 2.25rem); }
.planning-output__heading p { margin-bottom: 0; color: var(--copy-on-dark); }
.planning-output__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.13); }
.planning-output__grid article { padding: 24px; background: var(--brand-dark-deep); }
.planning-output__grid strong { display: block; margin-bottom: 8px; color: var(--accent-on-dark); font-family: Georgia, 'Times New Roman', serif; font-size: 1.08rem; line-height: 1.25; }
.planning-output__grid p { margin-bottom: 0; color: var(--copy-on-dark); font-size: .86rem; }

/* @section: leistungsseite */
.service-hero { --motion-x: 0px; --motion-y: 0px; position: relative; isolation: isolate; padding: clamp(82px, 6vw, 118px) 0 clamp(76px, 5vw, 104px); overflow: hidden; color: #fff; background: #071b26; }
.service-hero::before { position: absolute; inset: -4%; z-index: -2; background: radial-gradient(circle at 82% 18%, rgba(63,126,146,.32), transparent 31%), radial-gradient(circle at 62% 115%, rgba(184,71,8,.13), transparent 36%), linear-gradient(118deg, #061923 0%, #0a2a39 52%, #123b4c 100%); content: ''; transform: translate3d(var(--motion-x), var(--motion-y), 0); transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.service-hero::after { position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(112deg, transparent 48%, rgba(228,126,53,.08) 49%, transparent 50%); background-size: 54px 54px, 54px 54px, 100% 100%; content: ''; opacity: .42; -webkit-mask-image: linear-gradient(90deg, transparent 5%, #000 48%, #000 100%); mask-image: linear-gradient(90deg, transparent 5%, #000 48%, #000 100%); }
.service-hero__media { position: absolute; inset: 0; z-index: -3; display: block; }
.service-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.96) contrast(1.02) brightness(1.03); transform: scale(1.035) translate3d(var(--motion-x), var(--motion-y), 0); transition: transform 1.1s cubic-bezier(.2,.7,.2,1); will-change: transform; }
.service-hero--visual { display: grid; align-items: center; min-height: clamp(430px, 43vw, 610px); }
.service-hero--visual::before { inset: 0; background: linear-gradient(90deg, rgba(4,18,26,.76) 0%, rgba(7,27,38,.62) 37%, rgba(7,27,38,.28) 62%, rgba(7,27,38,.06) 100%), linear-gradient(180deg, rgba(7,27,38,.04), rgba(7,27,38,.26)); transform: none; }
/* Keep the shared container gutters in every image hero. */
.service-hero--visual .service-hero__content > * { max-width: min(760px, 58%); }
.service-hero__content { position: relative; }
.service-hero h1 { max-width: 780px; font-size: clamp(2.3rem, 3.1vw, 3.65rem); line-height: 1.08; }
.service-hero .lead { max-width: 760px; color: #d6e1e5; font-size: 1.06rem; }
.service-hero--visual .service-hero__content, .service-hero--portrait .service-hero__content { text-shadow: 0 2px 14px rgba(0,0,0,.28); }
.service-hero--portrait { padding: clamp(58px, 5vw, 86px) 0; }
.service-hero__portrait-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(340px, .72fr); gap: clamp(48px, 6vw, 104px); align-items: center; }
.service-hero--portrait .service-hero__content { z-index: 1; }
.about-portrait { justify-self: end; width: min(460px, 100%); height: clamp(440px, 42vw, 620px); overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius); background: var(--brand-dark); box-shadow: 0 28px 72px rgba(0,0,0,.32); }
.about-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 29%; filter: grayscale(1) contrast(1.035); }
.service-jump-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.service-jump-links a { padding: 11px 18px; color: #fff; border: 1px solid rgba(255,255,255,.38); border-radius: 5px; text-decoration: none; font-size: .9rem; font-weight: 700; }
.service-jump-links a:hover { color: var(--brand-dark); background: #fff; }
.service-discipline { scroll-margin-top: 104px; }
.discipline-heading { max-width: 780px; margin-bottom: 46px; }
.discipline-heading p { color: var(--slate); font-size: 1.08rem; }
.service-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.service-detail-grid--two { max-width: 1050px; margin: 0 auto; }
.service-detail-card { isolation: isolate; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: 0 10px 34px rgba(16,21,21,.09); transition: border-color .28s ease, box-shadow .28s ease, transform .28s ease; }
.service-detail-card:hover { border-color: rgba(184,71,8,.48); box-shadow: 0 24px 55px rgba(7,27,38,.18); transform: translateY(-7px); }
.service-detail-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; border-bottom: 1px solid var(--line); background: var(--mist); }
.service-detail-card__image-link { display: block; overflow: hidden; color: inherit; text-decoration: none; }
.service-detail-card__image-link:focus-visible { position: relative; z-index: 2; outline-offset: -4px; }
.service-detail-card__body { position: relative; padding: 30px; }
.service-number { position: absolute; top: 31px; right: 30px; color: var(--accent-text); font-size: .76rem; font-weight: 800; letter-spacing: .08em; }
.service-detail-card h3 { padding-right: 44px; color: var(--heading); font-size: 1.65rem; }
.service-detail-card p { color: var(--slate); }
.service-detail-card ul { display: grid; gap: 9px; margin: 23px 0 0; padding: 20px 0 0; border-top: 1px solid var(--line); list-style: none; font-size: .91rem; }
.service-detail-card li { position: relative; padding-left: 20px; }
.service-detail-card li::before { position: absolute; top: .66em; left: 0; width: 7px; height: 7px; border: 1px solid var(--brand-orange); transform: rotate(45deg); content: ''; }
.supplementary-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 26px; }
.supplementary-services article { padding: 28px 30px; color: var(--copy-on-dark); border-radius: var(--radius); background: var(--brand-dark); }
.supplementary-services h3 { color: #fff; }
.supplementary-services p { margin-bottom: 0; color: var(--copy-on-dark); }
.efficiency-certificate { margin-top: 24px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.efficiency-certificate__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 14px; color: var(--heading); }
.efficiency-certificate__header strong { font-family: Georgia, 'Times New Roman', serif; font-size: 1.02rem; }
.efficiency-certificate__header span { color: var(--slate); text-align: right; font-size: .7rem; }
.efficiency-scale { display: grid; gap: 4px; }
.efficiency-level { display: flex; align-items: center; justify-content: space-between; min-height: 29px; padding: 4px 10px; color: var(--brand-dark-deep); border-radius: 2px 5px 5px 2px; font-style: normal; box-shadow: inset -12px 0 18px rgba(0,0,0,.08); }
.efficiency-level b { font-size: .78rem; line-height: 1; }
.efficiency-level em { font-size: .66rem; font-style: normal; font-weight: 700; }
.efficiency-level--aplus { width: 56%; background: #16865a; }
.efficiency-level--a { width: 61.5%; background: #369653; }
.efficiency-level--b { width: 67%; background: #70a743; }
.efficiency-level--c { width: 72.5%; background: #a4b63b; }
.efficiency-level--d { width: 78%; background: #d2bd35; }
.efficiency-level--e { width: 83.5%; background: #e5a12f; }
.efficiency-level--f { width: 89%; background: #dc742d; }
.efficiency-level--g { width: 94.5%; background: #c94d32; }
.efficiency-level--h { width: 100%; background: #9d3036; }
.efficiency-level--aplus, .efficiency-level--g, .efficiency-level--h { color: #fff; }
.efficiency-certificate small { display: block; margin-top: 13px; color: var(--slate); font-size: .68rem; line-height: 1.45; }
.service-cta { padding: 76px 0; color: #fff; background: var(--brand-dark); }
.service-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 42px; }
.service-cta h2 { max-width: 760px; margin-bottom: 12px; font-size: clamp(2rem, 3vw, 3.2rem); }
.service-cta p { margin-bottom: 0; color: var(--copy-on-dark); }
.service-cta .button { flex: 0 0 auto; }
.service-principles { padding-top: 76px; padding-bottom: 76px; }
.service-principles__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.service-principles__grid article { position: relative; padding: 30px; overflow: hidden; border: 1px solid var(--light-line); border-radius: var(--radius); background: var(--light-surface); box-shadow: var(--shadow-light); }
.service-principles__grid span { display: block; margin-bottom: 23px; color: var(--brand-orange-hover); font-size: .73rem; font-weight: 800; letter-spacing: .1em; }
.service-principles__grid h3 { color: var(--light-ink); }
.service-principles__grid p { margin-bottom: 0; color: var(--light-copy); }
.service-method__grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: 68px; align-items: start; }
.service-method__copy p { max-width: 680px; color: var(--slate); font-size: 1.04rem; }
.service-deliverables { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.service-deliverables h2 { font-size: clamp(1.55rem, 2.4vw, 2.1rem); }
.service-deliverables .feature-list { grid-template-columns: 1fr; }
.service-scope-note { margin: 22px 0 0; padding: 16px 18px; color: var(--slate); border-left: 3px solid var(--brand-orange); background: var(--mist); font-size: .84rem; }
.service-technical__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.service-technical__grid article { padding: 30px; border: 1px solid var(--light-line); border-radius: var(--radius); background: var(--light-surface); box-shadow: var(--shadow-light); }
.service-technical__grid article > span { display: grid; place-items: center; width: 36px; height: 36px; margin-bottom: 24px; color: var(--brand-orange-hover); border: 1px solid #cba27f; border-radius: 50%; font-size: .7rem; font-weight: 800; }
.service-technical__grid h3 { color: var(--light-ink); font-size: 1.35rem; }
.service-technical__grid p { margin-bottom: 0; color: var(--light-copy); font-size: .93rem; }
.service-project-gallery { background: var(--brand-dark-deep); }
.service-project-gallery__slider { position: relative; max-width: 1440px; margin-inline: auto; }
.service-project-gallery__viewport { overflow: hidden; border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius); background: #06151d; box-shadow: var(--shadow); }
.service-project-gallery__track { display: flex; transition: transform .56s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.service-project-gallery__slide { flex: 0 0 100%; margin: 0; }
.service-project-gallery__open { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: #06151d; cursor: zoom-in; }
.service-project-gallery__open::after { position: absolute; right: 18px; bottom: 18px; display: grid; place-items: center; width: 42px; height: 42px; color: #fff; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; background: rgba(7,27,38,.72); content: '\2197'; font-size: 1.15rem; transition: background .2s ease, transform .2s ease; }
.service-project-gallery__open:hover::after { background: var(--brand-orange); transform: scale(1.06); }
.service-project-gallery__open img { width: 100%; height: 100%; object-fit: contain; }
.service-project-gallery__controls { display: flex; gap: 14px; align-items: center; justify-content: center; min-height: 58px; padding-top: 18px; }
.service-project-gallery__arrow, .project-lightbox__arrow, .project-lightbox__close { display: grid; place-items: center; padding: 0; color: #fff; border: 1px solid rgba(255,255,255,.34); border-radius: 50%; background: rgba(18,51,68,.82); cursor: pointer; font: inherit; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.service-project-gallery__arrow { width: 44px; height: 44px; font-size: 1.15rem; }
.service-project-gallery__arrow:hover, .project-lightbox__arrow:hover, .project-lightbox__close:hover { border-color: var(--brand-orange); background: var(--brand-orange); transform: scale(1.05); }
.service-project-gallery__toggle { padding: 7px 11px; color: var(--copy-on-dark); border: 1px solid rgba(255,255,255,.26); border-radius: 999px; background: transparent; cursor: pointer; font: inherit; font-size: .72rem; }
.service-project-gallery__toggle:hover { color: #fff; border-color: var(--brand-orange); }
.service-project-gallery__dots { display: flex; gap: 9px; align-items: center; }
.service-project-gallery__dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.38); cursor: pointer; transition: width .2s ease, background .2s ease; }
.service-project-gallery__dot[aria-current="true"] { width: 28px; border-radius: 999px; background: var(--brand-orange); }
.service-project-gallery__status { min-width: 48px; color: var(--copy-on-dark); font-size: .78rem; text-align: center; }
body.project-lightbox-is-open { overflow: hidden; }
.project-lightbox[hidden] { display: none; }
.project-lightbox { position: fixed; inset: 0; z-index: 200000; display: grid; place-items: center; padding: 34px 72px; background: rgba(2,10,14,.96); }
.project-lightbox__stage { display: grid; place-items: center; width: 100%; height: 100%; }
.project-lightbox__stage img { display: block; width: auto; max-width: min(1536px, 100%); height: auto; max-height: calc(100dvh - 68px); object-fit: contain; }
.project-lightbox__close { position: absolute; top: max(18px, env(safe-area-inset-top)); right: max(18px, env(safe-area-inset-right)); z-index: 2; width: 48px; height: 48px; font-size: 1.8rem; }
.project-lightbox__arrow { position: absolute; top: 50%; z-index: 2; width: 50px; height: 50px; font-size: 1.35rem; transform: translateY(-50%); }
.project-lightbox__arrow:hover { transform: translateY(-50%) scale(1.05); }
.project-lightbox__arrow--prev { left: max(18px, env(safe-area-inset-left)); }
.project-lightbox__arrow--next { right: max(18px, env(safe-area-inset-right)); }
.no-js .service-project-gallery__viewport { overflow: visible; border: 0; box-shadow: none; }
.no-js .service-project-gallery__track { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; transform: none !important; }
.no-js .service-project-gallery__slide { overflow: hidden; border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius); }
.no-js .service-project-gallery__controls { display: none; }
.service-coordination { padding-bottom: 50px; }
.service-coordination__grid { display: grid; grid-template-columns: minmax(0, 1.14fr) minmax(0, .86fr); gap: 68px; align-items: start; }
.service-coordination__grid > article > p { max-width: 720px; color: var(--slate); }
.service-assurance { padding: 32px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, var(--brand-dark-soft), var(--brand-dark-deep)); box-shadow: var(--shadow); }
.service-assurance h2 { font-size: clamp(1.55rem, 2.3vw, 2.05rem); }
.service-assurance p { color: var(--copy-on-dark); }
.service-assurance p:last-child { margin-bottom: 0; }
.service-process { padding-top: 46px; }
.service-process .process-block > div > p { color: var(--slate); }
.service-faq .faq-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 28px; }

/* @section: conversion-und-ratgeber */
.trust-section { background: var(--brand-dark); color: var(--copy-on-dark); }
.trust-section .section-heading h2 { color: #fff; }
.trust-section .section-heading p { color: var(--copy-on-dark); }
.trust-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius); background: rgba(255,255,255,.13); }
.trust-grid article { padding: 26px; background: var(--brand-dark-deep); }
.trust-grid strong { display: block; margin-bottom: 9px; color: var(--accent-on-dark); font-family: Georgia, 'Times New Roman', serif; font-size: 1.2rem; }
.trust-grid span { color: var(--copy-on-dark); font-size: .9rem; }
.home-guide-grid, .guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.home-guide-grid article, .guide-card { padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); transition: border-color .28s ease, box-shadow .28s ease, transform .28s cubic-bezier(.16,1,.3,1); }
.home-guide-grid article:hover, .guide-card:hover { border-color: var(--line-accent); box-shadow: 0 18px 44px rgba(0,0,0,.18); transform: translateY(-5px); }
.home-guide-grid h3, .guide-card h3 { overflow-wrap: anywhere; color: var(--heading); hyphens: auto; }
.home-guide-grid p, .guide-card p { color: var(--slate); }
.home-guide-grid a, .guide-card a, .text-link { color: var(--heading); font-weight: 700; text-decoration: none; }
.home-guide-grid a:hover, .guide-card a:hover, .text-link:hover { color: var(--accent-text); }
.text-link { display: inline-flex; gap: 8px; margin-top: 22px; padding-top: 17px; border-top: 1px solid var(--line); }
.detail-hero, .article-hero { padding: 78px 0; color: #fff; background: var(--brand-dark-deep); }
.detail-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 60px; align-items: center; }
.detail-hero h1, .article-hero h1 { font-size: clamp(2.25rem, 3.1vw, 3.55rem); line-height: 1.1; }
.detail-hero__image { margin: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius); background: var(--brand-dark); box-shadow: 0 24px 64px rgba(0,0,0,.28); }
.detail-hero__image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.detail-hero__image figcaption { padding: 10px 14px; color: #afc0c9; font-size: .72rem; }
.service-boundary { padding: 0 0 34px; color: var(--copy-on-dark); background: var(--brand-dark-deep); }
.service-boundary .container { padding: 22px 26px; border: 1px solid rgba(255,255,255,.14); border-left: 4px solid var(--accent-on-dark); border-radius: 8px; background: var(--brand-dark); }
.service-boundary strong { display: block; margin-bottom: 5px; color: #fff; }
.service-boundary p { margin-bottom: 0; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 24px; color: #afc0c9; font-size: .8rem; }
.breadcrumbs a { color: var(--accent-on-dark); text-decoration: none; }
.content-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 70px; align-items: start; }
.service-question-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 42px; align-items: start; }
.service-question-grid article { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.feature-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 28px 0 0; padding: 0; list-style: none; }
.feature-list--single { grid-template-columns: 1fr; }
.feature-list li { position: relative; padding: 18px 18px 18px 46px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.feature-list li::before { position: absolute; top: 19px; left: 18px; color: var(--brand-orange); content: '✓'; font-weight: 800; }
.info-panel { padding: 28px; border-radius: var(--radius); background: var(--mist); }
.info-panel h2 { font-size: 1.55rem; }
.process-block { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: 70px; }
.process-steps { display: grid; gap: 14px; margin: 0; padding: 0; counter-reset: steps; list-style: none; }
.process-steps li { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1.4fr); gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.process-steps strong { color: var(--heading); }
.process-steps span { color: var(--slate); }
.article-hero__inner { max-width: 1080px; }
.article-meta { margin: 26px 0 0; color: #9fb1bb; font-size: .82rem; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .55fr); gap: 64px; padding-top: 64px; padding-bottom: 76px; align-items: start; }
.article-content { max-width: 780px; }
.article-content section { position: relative; padding: 0 0 34px 58px; }
.article-content section + section { padding-top: 34px; border-top: 1px solid var(--line); }
.article-content h2 { font-size: clamp(1.55rem, 2.4vw, 2.2rem); }
.article-content p { color: var(--slate); font-size: 1.04rem; }
.section-count { position: absolute; top: 3px; left: 0; color: var(--accent-text); font-size: .78rem; font-weight: 800; }
.article-content section + section .section-count { top: 38px; }
.article-aside { position: sticky; top: 120px; display: grid; gap: 20px; }
.related-links { display: grid; gap: 8px; padding: 25px 28px; border: 1px solid var(--line); border-radius: var(--radius); }
.related-links h2 { font-size: 1.35rem; }
.related-links a { color: var(--heading); text-decoration: none; }
.editorial-note { padding: 20px 22px; color: var(--slate); border-left: 4px solid var(--brand-orange); background: var(--mist); }
.editorial-note strong { color: var(--heading); }
.editorial-note p { margin: 4px 0 0; font-size: .9rem; }
.guide-inquiry { margin-top: 34px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: 0 10px 30px rgba(16,21,21,.08); }
.guide-inquiry h2 { margin-bottom: 12px; }
.guide-inquiry p { margin-bottom: 22px; }
/* @section: ueber-mich */
.about-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 70px; align-items: center; }
.about-copy p { max-width: 650px; color: var(--slate); font-size: 1.06rem; }
.profile-facts { display: grid; gap: 1px; overflow: hidden; border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius); background: rgba(255,255,255,.13); box-shadow: var(--shadow); }
.profile-facts > div { padding: 25px 28px; color: var(--copy-on-dark); background: var(--brand-dark); transition: background .25s ease, transform .25s ease; }
.profile-facts > div:hover { z-index: 1; background: #173e50; transform: translateX(7px); }
.profile-facts > div:nth-child(2) { background: var(--brand-dark-soft); }
.profile-facts > div:nth-child(3) { background: var(--brand-dark-deep); }
.profile-facts > div:nth-child(4) { background: var(--brand-dark-soft); }
.profile-facts strong { display: block; margin-bottom: 7px; color: #fff; font-family: Georgia, 'Times New Roman', serif; font-size: 1.5rem; line-height: 1.1; }
.profile-facts span { font-size: .9rem; }
.project-experience { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: 48px; margin-top: 50px; padding-top: 46px; border-top: 1px solid var(--light-line); }
.project-experience__heading h2, .project-experience__heading h3 { color: var(--light-ink); font-size: clamp(1.65rem, 2.5vw, 2.3rem); }
.project-experience__heading p { margin-bottom: 0; color: var(--light-copy); }
.project-experience__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.project-experience__grid article { position: relative; padding: 27px; border: 1px solid var(--light-line); border-radius: 12px; background: var(--light-surface); box-shadow: 0 10px 30px rgba(7,27,38,.07); transition: border-color .28s ease, box-shadow .28s ease, transform .28s cubic-bezier(.16,1,.3,1); }
.project-experience__grid article:hover { border-color: #cba27f; box-shadow: 0 20px 46px rgba(7,27,38,.13); transform: translateY(-5px); }
.project-experience__grid span { display: block; margin-bottom: 20px; color: var(--brand-orange-hover); font-size: .72rem; font-weight: 800; }
.project-experience__grid strong { display: block; margin-bottom: 9px; color: var(--light-ink); font-family: Georgia, 'Times New Roman', serif; font-size: 1.16rem; }
.project-experience__grid p { margin-bottom: 0; color: var(--light-copy); font-size: .88rem; }

/* @section: faq */
.faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 34px; }
.faq-item { padding: 20px 0; border-bottom: 1px solid var(--line); }
.faq-item summary { position: relative; padding-right: 28px; color: var(--heading); cursor: pointer; font-size: 1.05rem; font-weight: 700; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { position: absolute; top: -3px; right: 4px; color: var(--brand-orange); content: '+'; font-size: 1.45rem; font-weight: 400; transition: transform .22s ease; }
.faq-item[open] summary::after { content: '–'; transform: rotate(180deg); }
.faq-item p { margin: 14px 0 0; color: var(--slate); font-size: .96rem; }
.faq-item[open] p { animation: faq-answer-in .32s ease both; }

/* @section: kontakt */
.contact-section { color: var(--light-ink); background: var(--light-bg); color-scheme: light; }
.contact-section > .container > .eyebrow { color: var(--brand-orange-hover); }
.contact-layout { display: grid; grid-template-columns: minmax(0, .83fr) minmax(0, 1.17fr); gap: 60px; align-items: start; }
.contact-details { padding: 32px; color: var(--copy-on-dark); border-radius: var(--radius); background: var(--brand-dark); }
.contact-details h2 { color: #fff; }
.contact-details a { color: var(--accent-on-dark); font-weight: 700; text-decoration: none; }
.contact-details small { display: block; margin-top: 26px; color: var(--copy-on-dark-soft); }
.contact-list { display: grid; gap: 15px; margin: 26px 0 0; padding: 0; list-style: none; }
.contact-list li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; align-items: start; min-width: 0; }
.contact-icon { width: 24px; height: 24px; margin-top: 2px; color: var(--accent-on-dark); }
.contact-list a { overflow-wrap: anywhere; }
.contact-list li.contact-list__social { display: block; }
.instagram-icon-link { display: grid; place-items: center; width: 44px; height: 44px; overflow: visible !important; color: #fff !important; border: 1px solid rgba(255,255,255,.25); border-radius: 12px; background: linear-gradient(145deg, var(--brand-orange), #8f3708); box-shadow: 0 9px 20px rgba(0,0,0,.2); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.instagram-icon-link:hover { border-color: rgba(255,255,255,.65); box-shadow: 0 12px 24px rgba(0,0,0,.28); transform: translateY(-2px); }
.instagram-icon-link .contact-icon { width: 23px; height: 23px; margin: 0; color: currentColor; }
.contact-form { padding: 32px; color: var(--light-ink); border: 1px solid var(--light-line); border-radius: var(--radius); background: var(--light-surface); box-shadow: var(--shadow-light); }
.inquiry-hint { position: relative; margin-bottom: 24px; padding: 17px 18px 17px 49px; color: var(--light-copy); border: 1px solid #d6b28f; border-radius: 8px; background: #fff8f2; }
.inquiry-hint::before { position: absolute; top: 17px; left: 18px; display: grid; place-items: center; width: 21px; height: 21px; color: #fff; border-radius: 50%; background: var(--brand-orange); content: '✓'; font-size: .73rem; font-weight: 800; }
.inquiry-hint strong { display: block; margin-bottom: 3px; color: var(--light-ink); }
.inquiry-hint p { margin-bottom: 0; font-size: .9rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.form-field--full { grid-column: 1 / -1; }
.form-field label { display: block; margin-bottom: 6px; color: var(--light-ink); font-size: .86rem; font-weight: 700; }
.form-field input, .form-field select, .form-field textarea { width: 100%; padding: 12px 13px; color: var(--light-ink); border: 1px solid #9aadb5; border-radius: 5px; background: #fff; font: inherit; }
.form-field textarea { min-height: 132px; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--brand-orange); outline: 0; box-shadow: 0 0 0 3px rgba(184,71,8,.22); }
.form-check { display: flex; align-items: flex-start; gap: 9px; margin-top: 18px; color: var(--light-copy); font-size: .85rem; }
.form-check input { margin-top: 5px; accent-color: var(--brand-orange); }
.form-check a { color: var(--light-ink); font-weight: 700; }
.form-submit { margin-top: 19px; }
.form-note { margin: 13px 0 0; color: var(--light-copy); font-size: .79rem; }
.form-honeypot { position: absolute !important; left: -9999px !important; }
.form-message { margin-bottom: 18px; padding: 13px 15px; border-radius: 5px; font-weight: 600; }
.form-message--success { color: #c7f0d5; border-left: 4px solid #4fb876; background: #183425; }
.form-message--error { color: #ffd0ca; border-left: 4px solid #e27367; background: #3b211f; }

/* @section: footer */
.site-footer { color: var(--copy-on-dark); background: var(--brand-dark-deep); }
.footer-main { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .75fr) minmax(0, 1fr) minmax(0, .75fr); gap: 42px; padding: 56px 0 37px; }
.footer-main h2 { margin-bottom: 13px; color: #fff; font-size: 1.25rem; }
.footer-main p { margin-bottom: 8px; }
.footer-main a { color: var(--copy-on-dark); text-decoration: none; }
.footer-main a:hover { color: var(--accent-on-dark); }
.footer-main .menu { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.footer-main .menu a { display: inline-flex; padding: 1px 0; }
.footer-logo-link { display: inline-flex; margin-bottom: 18px; }
.footer-logo { width: min(265px, 100%); height: auto; }
.footer-profile p { max-width: 310px; }
.contact-list--footer { gap: 10px; margin-top: 0; font-size: .88rem; }
.contact-list--footer li { grid-template-columns: 22px minmax(0, 1fr); gap: 9px; }
.contact-list--footer .contact-icon { width: 18px; height: 18px; margin-top: 3px; }
.contact-list--footer .instagram-icon-link { width: 40px; height: 40px; }
.contact-list--footer .instagram-icon-link .contact-icon { width: 21px; height: 21px; margin: 0; }
.footer-bottom { padding: 18px 0; color: var(--copy-on-dark-soft); border-top: 1px solid rgba(255,255,255,.1); font-size: .82rem; }

.project-paths-grid > *, .inquiry-process-grid > *, .trust-signals > *, .service-overview-grid > *, .service-showcase-grid > *, .planning-output__grid > *, .service-detail-grid > *, .service-principles__grid > *, .service-method__grid > *, .service-technical__grid > *, .service-project-gallery__slider, .service-coordination__grid > *, .supplementary-services > *, .home-guide-grid > *, .guide-grid > *, .service-question-grid > *, .feature-list > *, .faq-grid > *, .footer-main > *, .contact-layout > *, .article-layout > *, .content-grid > *, .detail-hero__grid > *, .about-layout > *, .project-experience__grid > *, .process-block > * { min-width: 0; }

/* Grosse Desktop-Monitore: mehr nutzbare Breite und ruhigere Kartenproportionen. */
@media (min-width: 1440px) {
  .section { padding: clamp(86px, 5.4vw, 112px) 0; }
  .service-overview-grid, .service-showcase-grid, .service-detail-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .service-showcase-card:last-child:nth-child(odd) { grid-column: auto; min-height: 300px; }
  .home-guide-grid, .guide-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .contact-layout { grid-template-columns: minmax(340px, .72fr) minmax(0, 1.28fr); gap: clamp(60px, 5vw, 96px); }
  .about-layout, .detail-hero__grid { gap: clamp(70px, 6vw, 112px); }
  .footer-main { gap: clamp(42px, 4vw, 76px); }
}

@media (min-width: 1920px) {
  body { font-size: 17px; }
  .service-project-gallery__slider { max-width: 1560px; }
}

/* Desktop (Nav nicht eingeklappt): Hero-Headline bewusst einzeilig halten. */

@media (max-width: 1100px) {
  .home-guide-grid, .guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planning-output, .project-experience { grid-template-columns: 1fr; }
}

/* @section: back-to-top */
.back-to-top { position: fixed; right: max(22px, env(safe-area-inset-right)); bottom: max(22px, env(safe-area-inset-bottom)); z-index: 30; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; color: #fff; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: var(--brand-dark); box-shadow: 0 10px 28px rgba(0,0,0,.32); cursor: pointer; font-size: 1.45rem; line-height: 1; transition: opacity .2s ease, transform .2s ease, background .2s ease; }
.back-to-top:hover { background: var(--brand-dark-soft); transform: translateY(-3px); }
.back-to-top[hidden] { display: none; }

/* @section: bewegung-und-interaktion */
.js .reveal-on-scroll { opacity: 0; transform: translateY(26px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); transition-delay: var(--reveal-delay, 0ms); }
.js .reveal-on-scroll.is-visible { opacity: 1; transform: translateY(0); }

.primary-nav a[aria-current="page"] { color: #fff; }
.primary-nav .menu a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left center; }

@keyframes welcome-failsafe { to { pointer-events: none; opacity: 0; visibility: hidden; } }
@keyframes welcome-grid-in { to { opacity: 1; transform: scale(1); } }
@keyframes welcome-orbit-in { to { opacity: 1; transform: translate(-50%,-50%) scale(1); } }
@keyframes service-card-symbol-draw { to { stroke-dashoffset: 0; } }
@keyframes faq-answer-in { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }

@media (prefers-reduced-motion: no-preference) {
	.js .service-showcase-card.reveal-on-scroll .service-showcase-card__symbol path { stroke-dasharray: 1; stroke-dashoffset: 1; }
	.js .service-showcase-card.reveal-on-scroll.is-visible .service-showcase-card__symbol path { animation: service-card-symbol-draw .92s cubic-bezier(.3,.7,.2,1) .14s forwards; }
	.js .service-showcase-card.reveal-on-scroll.is-visible .service-showcase-card__symbol path.is-accent { animation-delay: .32s; }
}

.page-content { padding: 64px 0; color: var(--light-ink); background: var(--light-bg); color-scheme: light; }
.page-content .entry-header, .page-content .entry-content { max-width: 850px; }
.page-content .entry-header { margin-bottom: 36px; }
.page-content article > .entry-header:last-child { margin-bottom: 0; }
.page-content h1, .page-content h2, .page-content h3 { color: var(--light-ink); }
.page-content .entry-content { color: var(--light-copy); }
.page-content .entry-content:empty, .entry-content > p:empty, .entry-content > .wp-block-spacer { display: none !important; }
.page-content .entry-content a { color: var(--brand-orange-hover); }
.legal-document { display: grid; gap: 32px; }
.legal-document section { padding-bottom: 28px; border-bottom: 1px solid var(--light-line); }
.legal-document section:last-child { padding-bottom: 0; border-bottom: 0; }
.legal-document h2 { margin-bottom: 12px; font-size: clamp(1.45rem, 2.5vw, 2rem); }
.legal-document h3 { margin: 22px 0 9px; font-size: 1.15rem; }
.legal-document p:last-child, .legal-document ul:last-child { margin-bottom: 0; }
.legal-document address { font-style: normal; }
.legal-document li + li { margin-top: 7px; }
.legal-status { max-width: 850px; margin-top: 34px; padding: 20px 22px; color: var(--slate); border-left: 4px solid var(--brand-orange); background: var(--mist); }
.legal-status strong { display: block; margin-bottom: 5px; color: var(--heading); }
.legal-status p { margin-bottom: 0; }
#startseite, #leistungen, #kontakt { scroll-margin-top: 100px; }

@media (max-width: 1180px) {
  .header-slogan { display: none; }
  .header-inner { min-height: 84px; }
  .theme-logo { width: min(280px, 24vw); max-height: 67px; }
}

@media (max-width: 1080px) {
  .header-inner { flex-wrap: wrap; }
  .js .menu-toggle { display: inline-block; }
  .primary-nav { flex: 0 0 100%; align-items: stretch; flex-direction: column; width: 100%; padding: 18px 20px 24px; border-top: 1px solid var(--line); background: var(--surface); box-shadow: 0 18px 32px rgba(16,21,21,.2); }
  .js .primary-nav { position: absolute; top: 84px; right: 0; left: 0; display: none; max-height: calc(100vh - 84px); max-height: calc(100dvh - 84px); overflow-y: auto; overscroll-behavior: contain; }
  .js .primary-nav.is-open { display: flex; }
  .no-js .site-header { position: static; }
  body.menu-is-open { overflow: hidden; }
  .primary-nav .menu { flex-direction: column; gap: 10px; }
  .primary-nav a { display: flex; align-items: center; min-height: 44px; padding: 8px 0; font-size: .95rem; }
  .primary-nav .header-cta { text-align: center; }
  .primary-nav .menu a::after { bottom: 2px; }
  .service-hero__portrait-grid { grid-template-columns: minmax(0, 1fr) minmax(280px, .7fr); gap: 42px; }
  .about-layout, .contact-layout, .detail-hero__grid, .content-grid, .service-question-grid, .service-method__grid, .service-coordination__grid, .process-block, .article-layout { grid-template-columns: 1fr; gap: 42px; }
  .project-paths { margin-top: 0; padding-top: 26px; }
  .project-paths-grid { grid-template-columns: 1fr; }
  .project-paths-grid a { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .project-paths-grid a:last-child { border-bottom: 0; }
  .inquiry-process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trust-signals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-aside { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-detail-grid { gap: 20px; }
  .service-detail-card__body { padding: 26px; }
  .service-number { top: 27px; right: 26px; }
}

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

@media (max-width: 720px) {
  .section { padding: 58px 0; }
	.welcome-intro__skip { top: max(14px, env(safe-area-inset-top)); right: max(14px, env(safe-area-inset-right)); }
  .header-inner { min-height: 76px; }
  .js .primary-nav { top: 76px; max-height: calc(100vh - 76px); max-height: calc(100dvh - 76px); }
  .theme-logo-link { flex-basis: 210px; }
  .theme-logo { width: 210px; max-height: 50px; }
  .hero { min-height: calc(100svh - 76px); }
  .hero-media img { object-position: center; }
  .hero::before { background: linear-gradient(180deg, rgba(7,27,38,.18) 0%, rgba(7,27,38,.34) 46%, rgba(7,27,38,.60) 100%); }
  .hero-content { padding: 72px 0 66px; }
  .hero .lead { font-size: 1rem; }
  .service-overview-grid, .service-showcase-grid, .planning-output__grid, .service-detail-grid, .service-principles__grid, .service-technical__grid, .project-experience__grid, .supplementary-services, .home-guide-grid, .guide-grid, .trust-grid, .feature-list, .article-aside, .inquiry-process-grid, .trust-signals { grid-template-columns: 1fr; }
  .service-showcase-card { min-height: 0; padding: 26px 24px; }
  .service-showcase-card:last-child:nth-child(odd) { grid-column: auto; min-height: 0; }
  .service-showcase-card__symbol { width: 84px; height: 63px; }
  .planning-output { padding: 28px; }
  .process-steps li { grid-template-columns: 1fr; gap: 5px; }
  .article-content section { padding-left: 38px; }
  .service-overview-card { min-height: 0; padding: 27px; }
  .service-hero { padding: 82px 0 72px; }
	.service-hero--visual { min-height: 460px; }
	.service-hero--visual::before { background: linear-gradient(180deg, rgba(4,18,26,.52) 0%, rgba(4,18,26,.68) 52%, rgba(4,18,26,.82) 100%); }
	.service-hero--visual .service-hero__content > * { max-width: 100%; }
	.service-hero__media img { object-position: 64% center; }
  .service-hero--portrait { padding: 40px 0 58px; }
  .service-hero__portrait-grid { grid-template-columns: 1fr; gap: 30px; }
  .service-hero--portrait .service-hero__content > * { max-width: 100%; }
  .about-portrait { order: -1; justify-self: stretch; width: 100%; height: auto; aspect-ratio: 4 / 3; }
  .about-portrait img { object-position: center 29%; }
  .service-hero::after { right: 0; background-size: 42px 42px, 42px 42px, 100% 100%; opacity: .55; }
  .detail-hero h1, .article-hero h1 { max-width: 100%; overflow-wrap: normal; word-break: normal; hyphens: none; text-wrap: balance; font-size: clamp(2rem, 7.2vw, 2.65rem); }
  .discipline-heading { margin-bottom: 34px; }
  .service-detail-card__body { padding: 26px 24px; }
  .service-number { top: 27px; right: 24px; }
	.service-technical__grid article { min-height: 0; }
	.service-project-gallery__controls { gap: 10px; }
	.no-js .service-project-gallery__track { grid-template-columns: 1fr; }
	.project-lightbox { padding: 64px 12px 24px; }
	.project-lightbox__arrow { top: auto; bottom: max(16px, env(safe-area-inset-bottom)); width: 46px; height: 46px; transform: none; }
	.project-lightbox__arrow:hover { transform: scale(1.05); }
	.project-lightbox__arrow--prev { left: calc(50% - 58px); }
	.project-lightbox__arrow--next { right: calc(50% - 58px); }
	.project-lightbox__stage img { max-height: calc(100dvh - 136px); }
	.service-faq .faq-grid { grid-template-columns: 1fr; }
  .supplementary-services article { padding: 25px 24px; }
  .service-cta { padding: 62px 0; }
  .service-cta__inner { align-items: flex-start; flex-direction: column; gap: 28px; }
  .faq-grid, .form-grid { grid-template-columns: 1fr; }
  .footer-main { grid-template-columns: 1fr; gap: 27px; padding: 45px 0 30px; }
  .back-to-top { right: 16px; bottom: 16px; width: 44px; height: 44px; }
}

@media (max-width: 420px) {
  .container, .header-inner { width: min(var(--container), calc(100% - 30px)); }
  .site-branding { gap: 10px; }
  .header-slogan { display: none; }
  .theme-logo-link { flex-basis: 172px; }
  .theme-logo { width: 172px; max-height: 41px; }
  .menu-toggle { padding: 8px 10px; font-size: .86rem; }
  .hero-actions .button, .service-cta .button { width: 100%; }
  .service-jump-links { flex-direction: column; }
  .service-jump-links a { text-align: center; }
  .service-detail-card__body { padding: 24px 20px; }
  .service-number { top: 25px; right: 20px; }
	.welcome-intro__skip { top: 12px; right: 12px; padding: 8px 11px; font-size: .68rem; }
	.service-project-gallery__status { display: none; }
  .efficiency-certificate { padding: 16px 12px; }
  .efficiency-certificate__header { align-items: flex-start; flex-direction: column; gap: 4px; }
  .efficiency-certificate__header span { text-align: left; }
  .efficiency-level { min-width: 142px; padding-right: 8px; padding-left: 8px; }
  .efficiency-level--aplus { width: 66%; }
  .efficiency-level--a { width: 70.25%; }
  .efficiency-level--b { width: 74.5%; }
  .efficiency-level--c { width: 78.75%; }
  .efficiency-level--d { width: 83%; }
  .efficiency-level--e { width: 87.25%; }
  .efficiency-level--f { width: 91.5%; }
  .efficiency-level--g { width: 95.75%; }
  .contact-form, .contact-details { padding: 24px 20px; }
  .inquiry-hint { padding: 16px 16px 16px 46px; }
  .inquiry-hint::before { top: 16px; left: 16px; }
}

@media (max-width: 600px) {
  .admin-bar .site-header { top: 0; }
}

/* Full-screen stage: override the former fixed-width intro at every breakpoint. */
.welcome-intro::after { width: 140vmax; }
.welcome-intro.is-running::before { animation: welcome-grid-in .95s ease .06s forwards, welcome-fullscreen-drift 4.7s ease-in-out .06s both; }
@keyframes welcome-fullscreen-drift { from { background-position: center, 0 40px, 0 40px; } to { background-position: center, 0 -40px, 0 -40px; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .js .reveal-on-scroll { opacity: 1; transform: none; }
	.welcome-intro { display: grid !important; animation: welcome-failsafe .01s linear 4s forwards !important; }
	.welcome-intro.is-reduced::before { opacity: 1; transform: scale(1); }
	.welcome-intro.is-reduced::after { opacity: .55; transform: translate(-50%,-50%) scale(1); }
}

/* v3.5.15: neues S/W-Arbeitsplatzfoto auf der Über-mich-Seite */
.about-portrait img { object-position: 58% center; }
@media (max-width: 720px) {
  .about-portrait img { object-position: 60% center; }
}


/* v3.5.16: Über-mich-Hero – Foto auf Desktop/Tablet über volle Headerbreite */
@media (min-width: 721px) {
  .service-hero--portrait {
    min-height: clamp(470px, 46vw, 650px);
    display: flex;
    align-items: center;
    padding: clamp(72px, 7vw, 108px) 0;
    background: #071b26;
  }
  .service-hero--portrait::before {
    z-index: 1;
    inset: 0;
    background: linear-gradient(90deg,
      rgba(4,18,26,.58) 0%,
      rgba(5,22,31,.44) 31%,
      rgba(6,25,35,.22) 49%,
      rgba(7,27,38,.08) 68%,
      rgba(7,27,38,0) 100%);
    transform: none;
  }
  .service-hero--portrait::after {
    z-index: 1;
    opacity: .24;
    -webkit-mask-image: none;
    mask-image: none;
  }
  .service-hero--portrait .service-hero__portrait-grid {
    display: block;
    width: 100%;
  }
  .service-hero--portrait .service-hero__content {
    position: relative;
    z-index: 2;
    width: min(680px, 54%);
    padding: clamp(22px, 2.5vw, 34px) clamp(20px, 2.4vw, 32px);
    margin-left: clamp(-32px, -2.1vw, -18px);
    border-radius: 0 18px 18px 0;
    background: linear-gradient(90deg, rgba(4,18,26,.68), rgba(4,18,26,.34) 72%, rgba(4,18,26,.08) 94%, transparent);
    backdrop-filter: blur(1.5px);
    -webkit-backdrop-filter: blur(1.5px);
  }
  .service-hero--portrait .about-portrait {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #071b26;
  }
  .service-hero--portrait .about-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 60% 44%;
    filter: grayscale(1) contrast(1.03) brightness(.98);
  }
}
@media (min-width: 721px) and (max-width: 1100px) {
  .service-hero--portrait { min-height: 500px; }
  .service-hero--portrait .service-hero__content { width: min(610px, 62%); margin-left: 0; }
  .service-hero--portrait .about-portrait img { object-position: 63% 44%; }
}


/* v3.5.18: Header-Hintergrundbilder auf allen bildbasierten Seiten deutlicher sichtbar.
   Die Abdunklung konzentriert sich auf den Textbereich; freie Bildflächen bleiben heller. */


/* v3.5.19: Intro ausschließlich mit dem unveränderten Original-Logo. */
.welcome-intro--logo {
  background: #071b26;
  animation: welcome-failsafe .01s linear 4.2s forwards;
}
.welcome-intro--logo::before {
  inset: 0;
  background:
    radial-gradient(circle at 50% 43%, rgba(36, 92, 111, .34) 0%, rgba(15, 51, 66, .18) 24%, rgba(7, 27, 38, 0) 55%),
    linear-gradient(180deg, #0a2532 0%, #071b26 58%, #061720 100%);
  opacity: 0;
  transform: scale(1.035);
}
.welcome-intro--logo.is-running::before {
  animation: welcome-logo-bg-in 1.15s cubic-bezier(.2,.7,.2,1) .04s forwards;
}
.welcome-intro--logo::after {
  top: 50%;
  left: 50%;
  width: min(82vw, 1040px);
  height: 1px;
  aspect-ratio: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.06) 20%, rgba(228,126,53,.20) 50%, rgba(255,255,255,.06) 80%, transparent 100%);
  opacity: 0;
  transform: translate(-50%, 122px) scaleX(.22);
}
.welcome-intro--logo.is-running::after {
  animation: welcome-logo-horizon .75s ease 1.52s forwards;
}
.welcome-intro__logo-stage {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  padding: max(72px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(54px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
}
.welcome-intro__logo-greeting {
  position: absolute;
  top: calc(50% - clamp(108px, 13vw, 158px));
  left: 50%;
  width: min(92vw, 900px);
  color: rgba(224, 234, 238, .82);
  font-size: clamp(.88rem, 1.25vw, 1.12rem);
  font-weight: 700;
  letter-spacing: .18em;
  opacity: 0;
  text-align: center;
  text-transform: uppercase;
  transform: translate(-50%, 8px);
}
.welcome-intro--logo.is-running .welcome-intro__logo-greeting {
  animation: welcome-logo-greeting 1.05s ease .10s both;
}
.welcome-intro__logo-wrap {
  position: relative;
  width: min(840px, 82vw);
  aspect-ratio: 960 / 228;
}
.welcome-intro__original-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  filter: blur(10px) brightness(.68) drop-shadow(0 18px 38px rgba(0,0,0,.30));
  transform: scale(.968);
  transform-origin: center;
}
.welcome-intro--logo.is-running .welcome-intro__original-logo {
  animation: welcome-original-logo-focus .82s cubic-bezier(.16,1,.3,1) .58s forwards;
}
.welcome-intro__logo-sweep {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(108deg, transparent 34%, rgba(255,255,255,.52) 49%, transparent 64%) 165% 0 / 290% 100% no-repeat;
  -webkit-mask: url('assets/images/logos/ms-baustatik-logo-darkmode.png') center / contain no-repeat;
  mask: url('assets/images/logos/ms-baustatik-logo-darkmode.png') center / contain no-repeat;
}
.welcome-intro--logo.is-running .welcome-intro__logo-sweep {
  animation: welcome-original-logo-sweep .88s ease-in-out 1.38s both;
}
.welcome-intro--logo.is-leaving .welcome-intro__logo-stage {
  transform: scale(1.012);
  transition: transform .48s cubic-bezier(.4,0,.2,1);
}
@keyframes welcome-logo-bg-in {
  from { opacity: 0; transform: scale(1.035); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes welcome-logo-greeting {
  0% { opacity: 0; transform: translate(-50%, 8px); }
  26%, 68% { opacity: 1; transform: translate(-50%, 0); }
  100% { opacity: 0; transform: translate(-50%, -6px); }
}
@keyframes welcome-original-logo-focus {
  0% { opacity: 0; filter: blur(10px) brightness(.68) drop-shadow(0 18px 38px rgba(0,0,0,.30)); transform: scale(.968); }
  45% { opacity: .78; }
  100% { opacity: 1; filter: blur(0) brightness(1) drop-shadow(0 18px 38px rgba(0,0,0,.30)); transform: scale(1); }
}
@keyframes welcome-original-logo-sweep {
  0% { opacity: 0; background-position: 165% 0; }
  16%, 78% { opacity: .78; }
  100% { opacity: 0; background-position: -65% 0; }
}
@keyframes welcome-logo-horizon {
  from { opacity: 0; transform: translate(-50%, 122px) scaleX(.22); }
  to { opacity: .62; transform: translate(-50%, 122px) scaleX(1); }
}
@media (max-width: 720px) {
  .welcome-intro__logo-stage { padding-right: 14px; padding-left: 14px; }
  .welcome-intro__logo-wrap { width: 92vw; }
  .welcome-intro__logo-greeting { top: calc(50% - clamp(88px, 24vw, 116px)); font-size: .82rem; letter-spacing: .13em; }
  .welcome-intro--logo::after { width: 88vw; transform: translate(-50%, 88px) scaleX(.22); }
  .welcome-intro--logo.is-running::after { animation-name: welcome-logo-horizon-mobile; }
}
@keyframes welcome-logo-horizon-mobile {
  from { opacity: 0; transform: translate(-50%, 88px) scaleX(.22); }
  to { opacity: .58; transform: translate(-50%, 88px) scaleX(1); }
}
@media (max-height: 520px) {
  .welcome-intro__logo-wrap { width: min(720px, 72vw); }
  .welcome-intro__logo-greeting { top: calc(50% - 92px); }
  .welcome-intro--logo::after { transform: translate(-50%, 74px) scaleX(.22); }
  .welcome-intro--logo.is-running::after { animation-name: welcome-logo-horizon-short; }
}
@keyframes welcome-logo-horizon-short {
  from { opacity: 0; transform: translate(-50%, 74px) scaleX(.22); }
  to { opacity: .54; transform: translate(-50%, 74px) scaleX(1); }
}
@media (prefers-reduced-motion: reduce) {
  .welcome-intro--logo.is-reduced::before { opacity: 1; transform: none; }
  .welcome-intro--logo.is-reduced::after { opacity: .35; transform: translate(-50%, 122px) scaleX(1); }
  .welcome-intro--logo.is-reduced .welcome-intro__logo-greeting { opacity: 1; transform: translate(-50%, 0); }
  .welcome-intro--logo.is-reduced .welcome-intro__original-logo { opacity: 1; filter: none; transform: none; }
  .welcome-intro--logo.is-reduced .welcome-intro__logo-sweep { opacity: 0; }
}


/* v3.5.20: Über-mich-Hero – exakte Ausrichtung am globalen Seitenraster.
   Hero-Text und darunterliegende Inhalte beginnen nun auf derselben Containerkante.
   Das Foto bleibt vollflächig, mit optimiertem Ausschnitt für Desktop und Tablet. */
@media (min-width: 721px) {
  .service-hero--portrait {
    min-height: clamp(520px, 40vw, 720px);
    padding: clamp(70px, 6vw, 104px) 0;
  }

  .service-hero--portrait::before {
    background: linear-gradient(90deg,
      rgba(4,18,26,.82) 0%,
      rgba(4,18,26,.72) 24%,
      rgba(5,22,31,.54) 40%,
      rgba(6,25,35,.26) 58%,
      rgba(7,27,38,.08) 74%,
      rgba(7,27,38,0) 100%);
  }

  .service-hero--portrait .service-hero__content {
    width: min(680px, 54%);
    margin-left: 0;
    padding: clamp(22px, 2.5vw, 34px) 0;
    border-radius: 0;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .service-hero--portrait .about-portrait img {
    object-position: 57% 50%;
  }
}

@media (min-width: 721px) and (max-width: 1100px) {
  .service-hero--portrait { min-height: 540px; }
  .service-hero--portrait .service-hero__content {
    width: min(610px, 62%);
    margin-left: 0;
    padding-inline: 0;
  }
  .service-hero--portrait .about-portrait img {
    object-position: 61% 50%;
  }
}


/* v3.5.21: Über-mich-Raster + stabilisierte Intro-Animation auf Mobil/Tablet. */
@media (min-width: 721px) {
  /* Die frühere Full-width-Regel auf .service-hero__portrait-grid hat die
     globale .container-Breite überschrieben. Dadurch lag der Hero-Text näher
     am Fensterrand als der Inhalt direkt darunter. Hier wird exakt dasselbe
     Seitenraster wie bei allen .container-Abschnitten wiederhergestellt. */
  .service-hero--portrait .service-hero__portrait-grid {
    width: min(var(--container), calc(100% - (2 * var(--page-gutter))));
    margin-inline: auto;
  }

  .service-hero--portrait .service-hero__content {
    margin-left: 0;
    padding-left: 0;
  }
}

/* WebKit/iOS kann beim animierten Blur/Masking einer transparenten PNG-Datei
   kurz die rechteckige Compositing-Fläche anzeigen. Auf Touch-Geräten und
   tablet-typischen Breiten wird deshalb nur noch Opazität + Skalierung genutzt.
   Das Original-Logo bleibt unverändert, der weiße Rahmen/Flash entfällt. */
@keyframes welcome-original-logo-focus-safe {
  0% { opacity: 0; transform: translate3d(0, 5px, 0) scale(.975); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

@media (max-width: 1366px), (hover: none) and (pointer: coarse) {
  .welcome-intro--logo,
  .welcome-intro__logo-stage,
  .welcome-intro__logo-wrap,
  .welcome-intro__original-logo {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  .welcome-intro--logo {
    background: #071b26;
    box-shadow: inset 0 0 0 2px #071b26;
  }

  .welcome-intro__logo-wrap {
    overflow: visible;
    transform: translateZ(0);
  }

  .welcome-intro__original-logo {
    filter: none;
    transform: translate3d(0, 5px, 0) scale(.975);
    will-change: opacity, transform;
  }

  .welcome-intro--logo.is-running .welcome-intro__original-logo {
    animation: welcome-original-logo-focus-safe .72s cubic-bezier(.16,1,.3,1) .58s forwards;
  }

  /* Diese beiden Ebenen nutzten Masking bzw. eine sehr feine helle Linie und
     sind die typischen Auslöser des Safari-Compositing-Blitzers. */
  .welcome-intro__logo-sweep,
  .welcome-intro--logo::after {
    display: none !important;
  }

  .welcome-intro--logo.is-leaving .welcome-intro__logo-stage {
    transform: none;
    transition: none;
  }
}

/* v3.5.22: Intro-Effekt auf Mobil/Tablet wiederhergestellt – ohne WebKit-Masken/Blur-Flash.
   Der Lichtimpuls läuft als weicher Gradient HINTER dem Original-Logo. Dadurch bleibt die
   Animation sichtbar, ohne dass Safari/iOS die rechteckige PNG-Compositing-Fläche aufblitzen lässt. */
@keyframes welcome-logo-safe-light-sweep {
  0%   { opacity: 0; transform: translate3d(-62%, 0, 0) scaleX(.72); }
  18%  { opacity: .18; }
  48%  { opacity: .42; }
  82%  { opacity: .16; }
  100% { opacity: 0; transform: translate3d(62%, 0, 0) scaleX(.72); }
}

@keyframes welcome-logo-safe-accent {
  0%   { opacity: 0; transform: translateX(-50%) scaleX(.12); }
  55%  { opacity: .68; transform: translateX(-50%) scaleX(1); }
  100% { opacity: .22; transform: translateX(-50%) scaleX(.78); }
}

@media (max-width: 1366px), (hover: none) and (pointer: coarse) {
  .welcome-intro__logo-wrap {
    isolation: isolate;
  }

  .welcome-intro__original-logo {
    position: relative;
    z-index: 2;
  }

  /* Sicherer Lichtimpuls: kein mask/-webkit-mask, kein filter, kein Blend-Mode. */
  .welcome-intro__logo-sweep {
    display: block !important;
    z-index: 1;
    inset: -34% -18%;
    opacity: 0;
    background: radial-gradient(ellipse at 50% 50%, rgba(228,126,53,.24) 0%, rgba(191,220,229,.10) 28%, rgba(7,27,38,0) 67%);
    -webkit-mask: none;
    mask: none;
    transform: translate3d(-62%, 0, 0) scaleX(.72);
    will-change: opacity, transform;
  }

  .welcome-intro--logo.is-running .welcome-intro__logo-sweep {
    animation: welcome-logo-safe-light-sweep .92s cubic-bezier(.4,0,.2,1) 1.28s both;
  }

  /* Dezenter orangefarbener Akzent unter dem Logo – 2px statt 1px, um den
     bekannten Safari-Hairline-Compositing-Flash zu vermeiden. */
  .welcome-intro__logo-wrap::after {
    position: absolute;
    left: 50%;
    bottom: -18px;
    z-index: 3;
    width: min(58%, 420px);
    height: 2px;
    content: '';
    border-radius: 999px;
    background: linear-gradient(90deg, transparent 0%, rgba(228,126,53,.16) 14%, rgba(228,126,53,.78) 50%, rgba(228,126,53,.16) 86%, transparent 100%);
    opacity: 0;
    transform: translateX(-50%) scaleX(.12);
    transform-origin: center;
  }

  .welcome-intro--logo.is-running .welcome-intro__logo-wrap::after {
    animation: welcome-logo-safe-accent .72s cubic-bezier(.16,1,.3,1) 1.50s both;
  }

  /* Die problematische globale Hairline bleibt deaktiviert. */
  .welcome-intro--logo::after {
    display: none !important;
  }
}

@media (max-width: 720px) {
  .welcome-intro__logo-wrap::after {
    bottom: -13px;
    width: 56%;
  }

  .welcome-intro__logo-sweep {
    inset: -28% -12%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .welcome-intro--logo.is-reduced .welcome-intro__logo-sweep,
  .welcome-intro--logo.is-reduced .welcome-intro__logo-wrap::after {
    animation: none !important;
    opacity: 0 !important;
  }
}


/* v3.5.26: Porträt im Originalformat, ohne feste Höhe oder Bildbeschnitt. */
.service-hero--portrait {
  display: block;
  min-height: 0;
  padding: clamp(32px, 4vw, 64px) 0;
}
.service-hero--portrait::before,
.service-hero--portrait::after { display: none; }
.service-hero--portrait .service-hero__portrait-grid {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(28px, 4vw, 72px);
  align-items: center;
}
.service-hero--portrait .service-hero__content {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: none;
  backdrop-filter: none;
}
.service-hero--portrait .about-portrait {
  position: static;
  inset: auto;
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  aspect-ratio: auto;
  overflow: visible;
  order: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.service-hero--portrait .about-portrait img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: 1448 / 1086;
  object-fit: contain;
  object-position: center;
}
@media (max-width: 1100px) {
  .service-hero--portrait .service-hero__portrait-grid { grid-template-columns: minmax(0, 1fr); }
  .service-hero--portrait .about-portrait { order: -1; }
}

/* v3.5.40–3.5.42: 3D-Modelle Holzbau und Stahlbau in Übersicht und Detailseite.
   Die Karten bleiben im 4:3-Raster; die Modelle werden vollständig ohne Cropping dargestellt. */
.service-detail-card .service-visual--holzbau,
.service-detail-card .service-visual--stahlbau {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #071b26;
}
.service-detail-card .service-visual--holzbau img,
.service-detail-card .service-visual--stahlbau img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
  background: #071b26;
}
.detail-hero__image--holzbau-model,
.detail-hero__image--stahlbau-model { background: #071b26; }
.detail-hero__image--holzbau-model .service-visual--holzbau,
.detail-hero__image--stahlbau-model .service-visual--stahlbau { display: block; }
.detail-hero__image--holzbau-model img,
.detail-hero__image--stahlbau-model img { aspect-ratio: auto; object-fit: contain; object-position: center; background: #071b26; }
@media (max-width: 720px) {
  .detail-hero__image--holzbau-model img,
  .detail-hero__image--stahlbau-model img { width: 100%; height: auto; }
}

/* v3.5.37: Intro Variante 1 – technische Signatur, robust auf Desktop/Mobil/Tablet.
   Alte Intro-Effekte bleiben im Quellverlauf erhalten, werden hier aber eindeutig übersteuert.
   Kein Masking/Blur auf dem Logo: vermeidet rechteckige WebKit-Compositing-Blitzer. */
.welcome-intro--logo {
  display: grid;
  place-items: center;
  min-height: 100vh;
  min-height: 100dvh;
  background: #071b26;
  animation: welcome-failsafe .01s linear 4.2s forwards;
}
.welcome-intro--logo::before {
  inset: 0;
  background:
    radial-gradient(circle at 50% 44%, rgba(39,96,115,.34) 0%, rgba(16,54,70,.18) 30%, rgba(7,27,38,0) 62%),
    linear-gradient(180deg,#0a2532 0%,#071b26 60%,#061720 100%);
  opacity: 1;
  transform: none;
  animation: none !important;
}
.welcome-intro--logo::after { display: none !important; }
.welcome-intro__logo-stage {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding:
    max(72px, env(safe-area-inset-top))
    max(18px, env(safe-area-inset-right))
    max(58px, env(safe-area-inset-bottom))
    max(18px, env(safe-area-inset-left));
}
.welcome-intro__logo-wrap {
  position: relative;
  isolation: isolate;
  width: min(1080px, 88vw);
  max-width: calc(100vw - 36px);
  aspect-ratio: 960 / 228;
  overflow: visible;
  transform: none;
}
.welcome-intro__logo-greeting {
  position: absolute;
  top: calc(50% - clamp(128px, 12vw, 178px));
  left: 50%;
  width: min(92vw, 960px);
  color: rgba(225,235,239,.90);
  font-size: clamp(.86rem, 1.2vw, 1.08rem);
  font-weight: 700;
  letter-spacing: .17em;
  text-align: center;
  text-transform: uppercase;
  opacity: 0;
  transform: translate(-50%, 8px);
}
.welcome-intro--logo.is-running .welcome-intro__logo-greeting {
  animation: welcome-v1-greeting .62s ease .08s forwards;
}
.welcome-intro__original-logo {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 1;
  filter: none !important;
  clip-path: inset(0 100% 0 0);
  transform: none !important;
  will-change: clip-path;
}
.welcome-intro--logo.is-running .welcome-intro__original-logo {
  animation: welcome-v1-write 1.05s cubic-bezier(.22,.61,.36,1) .50s forwards !important;
}
.welcome-intro__logo-wrap::before {
  position: absolute;
  top: 5%;
  bottom: 5%;
  left: 0;
  z-index: 4;
  width: 2px;
  content: '';
  border-radius: 999px;
  background: linear-gradient(180deg,transparent 0%,rgba(228,126,53,.95) 28%,rgba(255,255,255,.92) 50%,rgba(228,126,53,.95) 72%,transparent 100%);
  box-shadow: 0 0 16px rgba(228,126,53,.52);
  opacity: 0;
  transform: translateX(0);
  pointer-events: none;
}
.welcome-intro--logo.is-running .welcome-intro__logo-wrap::before {
  animation: welcome-v1-pen 1.05s cubic-bezier(.22,.61,.36,1) .50s both;
}
.welcome-intro__logo-sweep {
  position: absolute;
  inset: -34% -14%;
  z-index: 1;
  display: block !important;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.18) 0%,rgba(228,126,53,.18) 22%,rgba(7,27,38,0) 68%);
  -webkit-mask: none !important;
  mask: none !important;
  transform: translate3d(-62%,0,0) scaleX(.72);
  will-change: opacity, transform;
}
.welcome-intro--logo.is-running .welcome-intro__logo-sweep {
  animation: welcome-v1-sweep .78s cubic-bezier(.4,0,.2,1) 1.58s both !important;
}
.welcome-intro__logo-wrap::after {
  position: absolute;
  left: 50%;
  bottom: -20px;
  z-index: 3;
  width: min(60%, 520px);
  height: 2px;
  content: '';
  border-radius: 999px;
  background: linear-gradient(90deg,transparent,rgba(228,126,53,.78),transparent);
  opacity: 0;
  transform: translateX(-50%) scaleX(.15);
  transform-origin: center;
}
.welcome-intro--logo.is-running .welcome-intro__logo-wrap::after {
  animation: welcome-v1-accent .62s cubic-bezier(.16,1,.3,1) 1.76s forwards !important;
}
.welcome-intro--logo.is-leaving .welcome-intro__logo-stage {
  transform: scale(1.012);
  transition: transform .42s cubic-bezier(.4,0,.2,1);
}
@keyframes welcome-v1-greeting {
  0% { opacity: 0; transform: translate(-50%,8px); }
  100% { opacity: 1; transform: translate(-50%,0); }
}
@keyframes welcome-v1-write {
  0% { clip-path: inset(0 100% 0 0); }
  100% { clip-path: inset(0 0 0 0); }
}
@keyframes welcome-v1-pen {
  0% { left: 0%; opacity: 0; }
  7% { opacity: .92; }
  92% { opacity: .92; }
  100% { left: 100%; opacity: 0; }
}
@keyframes welcome-v1-sweep {
  0% { opacity: 0; transform: translate3d(-62%,0,0) scaleX(.72); }
  28% { opacity: .34; }
  72% { opacity: .24; }
  100% { opacity: 0; transform: translate3d(62%,0,0) scaleX(.72); }
}
@keyframes welcome-v1-accent {
  0% { opacity: 0; transform: translateX(-50%) scaleX(.15); }
  100% { opacity: .72; transform: translateX(-50%) scaleX(1); }
}
@media (max-width: 720px) {
  .welcome-intro__logo-stage { padding-inline: 10px; }
  .welcome-intro__logo-wrap {
    width: 94vw;
    max-width: calc(100vw - 20px);
  }
  .welcome-intro__logo-greeting {
    top: calc(50% - clamp(92px, 24vw, 122px));
    width: 94vw;
    font-size: .80rem;
    letter-spacing: .13em;
  }
  .welcome-intro__logo-wrap::after { bottom: -13px; width: 56%; }
  .welcome-intro__logo-sweep { inset: -28% -10%; }
}
@media (max-height: 520px) {
  .welcome-intro__logo-wrap { width: min(760px, 74vw); }
  .welcome-intro__logo-greeting { top: calc(50% - 92px); }
}
@media (prefers-reduced-motion: reduce) {
  .welcome-intro--logo.is-reduced .welcome-intro__logo-greeting {
    opacity: 1;
    transform: translate(-50%,0);
  }
  .welcome-intro--logo.is-reduced .welcome-intro__original-logo {
    clip-path: none;
    opacity: 1;
  }
  .welcome-intro--logo.is-reduced .welcome-intro__logo-wrap::before,
  .welcome-intro--logo.is-reduced .welcome-intro__logo-wrap::after,
  .welcome-intro--logo.is-reduced .welcome-intro__logo-sweep { display: none !important; }
}

/* Responsive Nachschärfung: verhindert horizontales Überlaufen und hält breite Layouts proportional. */
html, body { max-width: 100%; overflow-x: clip; }
img, svg, video { max-width: 100%; }
.site-main, .site-header, .site-footer { min-width: 0; }
@supports not (overflow: clip) {
  html, body { overflow-x: hidden; }
}

/* Startseiten-H1 auf Desktop bewusst einzeilig, solange genügend Breite vorhanden ist. */

/* Rückmeldung bei asynchronen Kontaktanfragen. */
[data-contact-form] button:disabled { opacity: .65; cursor: wait; }
[data-async-message]:empty { display: none; }

/* 3.5.39: Ein gemeinsames, mittiges Raster für die Startseiten-Texte.
   Die einzeilige Überschrift darf ihren Textcontainer nicht überschreiten. */
.hero-content { min-width: 0; }
.hero-copy {
  position: relative;
  z-index: 1;
  width: min(1440px, 100%);
  min-width: 0;
  margin-inline: auto;
  text-align: center;
  text-shadow: 0 3px 20px rgba(0,0,0,.42);
}
.hero-copy h1 {
  max-width: 100%;
  margin-inline: auto;
  font-size: clamp(2.5rem, 3vw, 3.75rem);
  white-space: normal;
  text-wrap: balance;
}
@media (min-width: 1081px) {
  .hero-copy h1 { white-space: nowrap; }
}
@media (max-width: 1080px) {
  .hero-copy { max-width: 780px; }
  .hero-copy h1 { font-size: clamp(2.3rem, 5vw, 3.4rem); }
}
@media (max-width: 720px) {
  .hero-copy h1 { font-size: clamp(2rem, 8vw, 3.4rem); }
}
/* Unterseiten: Text und Aktionen beginnen auf derselben Containerkante. */
.service-hero__content, .detail-hero__grid > div, .article-hero__inner {
  min-width: 0;
  text-align: left;
}
.detail-hero .hero-actions { justify-content: flex-start; }
.article-hero__inner { max-width: none; }
.article-hero__inner > * { max-width: 1080px; }
.breadcrumbs { flex-wrap: wrap; }
.service-hero h1, .detail-hero h1, .article-hero h1 {
  word-break: normal;
  overflow-wrap: normal;
  text-wrap: balance;
}

@media (max-width: 720px) {
  .service-hero h1 { font-size: clamp(1.65rem, 7.2vw, 2.65rem); }
}
@media (min-width: 721px) and (max-width: 1080px) {
  .service-technical__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.service-technical__grid p { hyphens: auto; overflow-wrap: break-word; }
