/*
Theme Name: VS Bau & Putz
Theme URI: https://bau-putz.net/
Author: Fastlife Studios
Description: Schlankes, blockbasiert pflegbares Theme fuer Bau & Putz und VS Immobilien.
Version: 3.20.37
Requires at least: 6.8
Requires PHP: 8.1
Text Domain: vs-bau-putz
*/

@font-face {
  font-family: "Archivo";
  src: url("assets/fonts/Archivo-Variable-latin-ext.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Archivo";
  src: url("assets/fonts/Archivo-Variable-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --paper: #f8f9fa;
  --surface: #ffffff;
  --surface-soft: #f1f3f6;
  --ink: #172033;
  --muted: #5b6472;
  --line: #d9dde4;
  --line-dark: #aeb6c2;
  --blue: #223f80;
  --blue-deep: #14264d;
  --orange: #f04e2f;
  --orange-action: #c63f25;
  --charcoal: #14264d;
  --max: 1216px;
  --text: 704px;
  --gutter: 48px;
  --radius: 4px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Archivo", Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.65;
}
body::selection { background: #ffd7cb; color: var(--ink); }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
p, h1, h2, h3, h4, ul, ol, dl, figure { margin-top: 0; }
p { color: var(--muted); }
h1, h2, h3, h4, h5, h6 { color: var(--ink); letter-spacing: 0; overflow-wrap: normal; word-break: normal; hyphens: none; text-wrap: balance; }
h1 { font-size: 4rem; line-height: 1; }
h2 { font-size: 3rem; line-height: 1.05; }
h3 { font-size: 1.3rem; line-height: 1.2; }
:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 5px #14264d; }

.skip-link { position: fixed; left: 16px; top: -70px; z-index: 100; padding: 12px 16px; background: var(--ink); color: #fff; }
.skip-link:focus { top: 16px; }
.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; }

.site-header { position: sticky; top: 0; z-index: 40; background: rgba(241, 243, 241, 0.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.header-inner { width: min(var(--max), calc(100% - var(--gutter))); min-height: 88px; margin: 0 auto; display: flex; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; flex: 0 0 122px; }
.brand-logo { width: 112px; height: 70px; object-fit: contain; object-position: left center; }
.main-nav { flex: 1; }
.main-nav-list { display: flex; align-items: center; justify-content: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.main-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 11px; border-bottom: 2px solid transparent; color: #3f4642; font-size: 0.91rem; font-weight: 590; text-decoration: none; }
.main-nav a:hover, .main-nav a[aria-current="page"] { border-bottom-color: var(--orange); color: var(--ink); }
.main-nav a[aria-current="page"] { font-weight: 720; }
.header-cta, .button, .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 19px; border: 1px solid var(--orange-action); border-radius: var(--radius); background: var(--orange-action); color: #fff; font-weight: 680; line-height: 1.2; text-decoration: none; transition: background 160ms ease, border-color 160ms ease, transform 160ms ease; }
.header-cta:hover, .button:hover, .wp-block-button__link:hover { border-color: #9f351b; background: #9f351b; transform: translateY(-1px); }
.button.secondary, .wp-block-button.is-style-outline .wp-block-button__link { border-color: var(--line-dark); background: transparent; color: var(--ink); }
.button.secondary:hover, .wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--blue); background: #fff; }
.nav-toggle { display: none; width: 46px; height: 46px; margin-left: auto; border: 1px solid var(--line-dark); border-radius: var(--radius); background: var(--surface); }
.nav-toggle span:not(.sr-only) { display: block; width: 20px; height: 2px; margin: 4px auto; background: var(--ink); }

#inhalt { overflow: visible; }
#inhalt:focus { outline: 0; box-shadow: none; }
#inhalt > .wp-block-group, #inhalt > .wp-block-cover, #inhalt > .wp-block-columns { margin-top: 0; margin-bottom: 0; }
.alignwide { width: min(var(--max), calc(100% - var(--gutter))); margin-left: auto; margin-right: auto; }
.alignfull { width: 100%; max-width: none; }
.content-section { width: min(var(--max), calc(100% - var(--gutter))); margin: 0 auto; padding: 100px 0; }
.content-section + .content-section { border-top: 1px solid var(--line); }
.content-section.compact { padding-top: 66px; padding-bottom: 66px; }
.section-intro { max-width: 820px; margin-bottom: 48px; }
.section-intro h2 { max-width: 760px; margin-bottom: 18px; }
.section-intro > p:last-child { max-width: 680px; margin-bottom: 0; font-size: 1.05rem; }
.eyebrow, .card-kicker { margin-bottom: 15px; color: var(--blue); font-size: 0.76rem; font-weight: 720; letter-spacing: 0; text-transform: uppercase; }
.lead { max-width: 650px; color: var(--muted); font-size: 1.12rem; line-height: 1.55; }
.text-link { display: inline-flex; align-items: center; min-height: 42px; padding: 7px 0 5px; border-bottom: 2px solid var(--orange); color: var(--ink); font-weight: 680; text-decoration: none; }
.text-link:hover { border-bottom-color: var(--blue); }

.main-hero { min-height: 640px; padding: 0; background: var(--charcoal); }
.main-hero .wp-block-cover__image-background { object-position: center 50%; }
.main-hero .wp-block-cover__inner-container { width: 100vw !important; max-width: none !important; }
.main-hero .hero-panel { position: relative; width: min(48%, 660px); min-height: 640px; margin: 0; padding: 78px 86px 72px max(24px, calc((100vw - var(--max)) / 2)); display: flex; flex-direction: column; justify-content: center; isolation: isolate; }
.main-hero .hero-panel::before { content: ""; position: absolute; z-index: -1; inset: 0 -52px 0 0; background: rgba(17, 23, 20, 0.95); clip-path: polygon(0 0, calc(100% - 52px) 0, 100% 100%, 0 100%); }
.main-hero h1 { max-width: 580px; margin-bottom: 26px; color: #fff; font-size: 4rem; line-height: 0.98; overflow-wrap: normal; hyphens: none; word-break: normal; }
.main-hero .eyebrow { padding-left: 16px; border-left: 4px solid var(--orange); color: #fff; text-transform: none; }
.main-hero .lead { max-width: 520px; margin-bottom: 0; color: #edf1ef; }
.main-hero .wp-block-buttons { gap: 12px; margin-top: 30px; }
.main-hero .is-style-outline .wp-block-button__link { border-color: rgba(255,255,255,.65); color: #fff; }
.main-hero .is-style-outline .wp-block-button__link:hover { background: rgba(255,255,255,.1); }

@media (min-width: 48.001rem) {
  .main-hero .wp-block-cover__image-background { transform: scale(1.24); transform-origin: 35% 60%; }
  .main-hero .hero-panel::before {
    inset: 0 calc(clamp(110px, 15vw, 230px) * -1) 0 0;
    clip-path: none;
    background: linear-gradient(
      90deg,
      #111714 0%,
      #111714 38%,
      rgba(17, 23, 20, 0.99) 48%,
      rgba(17, 23, 20, 0.94) 58%,
      rgba(17, 23, 20, 0.8) 68%,
      rgba(17, 23, 20, 0.58) 78%,
      rgba(17, 23, 20, 0.32) 87%,
      rgba(17, 23, 20, 0.12) 94%,
      rgba(17, 23, 20, 0) 100%
    );
  }
}

@media (min-width: 68.75rem) {
  .main-hero .wp-block-cover__image-background { left: auto; right: 0; width: max(calc(100% - min(48%, 660px) + 52px), 71.125rem); min-width: 0; max-width: none; height: 100%; object-fit: cover; object-position: right center; transform: scale(1.35); transform-origin: 36% 60%; }
  .main-hero .hero-panel { width: min(54%, calc((100vw - var(--max)) / 2 + 36rem)); }
}

.trust-grid { width: min(var(--max), calc(100% - var(--gutter))); margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.trust-item { min-height: 120px; padding: 26px 28px 24px 0; border-right: 1px solid var(--line); }
.trust-item + .trust-item { padding-left: 28px; }
.trust-item:last-child { border-right: 0; }
.trust-item h2 { margin-bottom: 4px; color: var(--blue); font-size: 1.05rem; line-height: 1.3; }
.trust-item p { margin: 0; font-size: 0.92rem; }

.split-intro { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: 76px; align-items: start; }
.split-intro h2 { margin-bottom: 0; }
.split-intro .split-copy { max-width: 650px; }
.split-intro .split-copy p:last-child { margin-bottom: 0; }

.service-overview, .service-grid, .projects-grid, .detail-grid, .process-grid, .audience-grid, .placeholder-gallery, .person-copy-grid, .image-grid { display: grid; gap: 16px; }
.service-overview > *, .service-grid > *, .projects-grid > *, .detail-grid > *, .process-grid > *, .audience-grid > *, .placeholder-gallery > *, .person-copy-grid > *, .image-grid > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.service-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.service-group, .service-card, .detail-card { position: relative; padding: 28px; border: 1px solid var(--line); border-top: 4px solid var(--blue); border-radius: var(--radius); background: var(--surface); }
.service-group { min-height: 330px; display: flex; flex-direction: column; }
.service-group h3 { margin-bottom: 12px; font-size: 1.55rem; }
.service-group ul { margin: auto 0 0; padding: 22px 0 0; border-top: 1px solid var(--line); list-style: none; color: var(--ink); }
.service-group li { padding: 4px 0; font-weight: 620; }
.service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.service-card { min-height: 290px; }
.service-card h3 { margin-bottom: 12px; font-size: 1.5rem; }
.service-card ul, .detail-card ul { margin: 18px 0 0; padding-left: 19px; color: var(--muted); }
.service-card li, .detail-card li { margin: 5px 0; }
.service-card.featured { border-color: var(--blue-deep); background: var(--blue-deep); }
.service-card.featured h3, .service-card.featured p, .service-card.featured li, .service-card.featured .card-kicker { color: #fff; }
.service-grid > .service-card:last-child:nth-child(odd) { grid-column: 1 / -1; min-height: 0; display: grid; grid-template-columns: 64px minmax(220px, .65fr) minmax(280px, 1fr); gap: 10px 28px; align-items: start; }
.service-grid > .service-card:last-child:nth-child(odd) .card-kicker { grid-column: 1; grid-row: 1 / span 2; }
.service-grid > .service-card:last-child:nth-child(odd) h3 { grid-column: 2; grid-row: 1; }
.service-grid > .service-card:last-child:nth-child(odd) > p:not(.card-kicker) { grid-column: 2; grid-row: 2; }
.service-grid > .service-card:last-child:nth-child(odd) ul { grid-column: 3; grid-row: 1 / span 2; margin-top: 0; }

.projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
.projects-grid.projects-featured { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.project-card { margin: 0; background: var(--surface); border-bottom: 1px solid var(--line); }
.project-card .wp-block-image { margin: 0; overflow: hidden; aspect-ratio: 4 / 3; }
.project-card .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.project-copy { min-height: 210px; padding: 26px 0 28px; }
.project-copy h3 { margin-bottom: 10px; font-size: 1.6rem; }

.process-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); }
.process-step { min-height: 255px; padding: 28px 24px 28px 0; border-right: 1px solid var(--line); }
.process-step + .process-step { padding-left: 24px; }
.process-step:last-child { border-right: 0; }
.process-step .card-kicker { margin-bottom: 56px; color: var(--orange-action); font-size: 1rem; }

.work-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 84px; align-items: center; }
.work-grid .wp-block-image { margin: 0; min-height: 480px; }
.work-grid .wp-block-image img { width: 100%; height: 480px; object-fit: cover; }
.work-copy { max-width: 540px; }
.team-intro .wp-block-image img { object-position: center 48%; }

.image-grid figure { margin: 0; overflow: hidden; background: var(--surface-soft); }
.image-grid img { width: 100%; height: 100%; object-fit: cover; }
.work-image-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.work-image-grid figure { aspect-ratio: 3 / 4; }

.project-section { padding-top: 86px; padding-bottom: 86px; }
.project-feature-head { max-width: 830px; margin-bottom: 34px; }
.project-feature-head h2 { margin-bottom: 14px; }
.project-feature-head p:last-child { max-width: 690px; margin-bottom: 0; }
.project-image-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.project-image-grid figure { aspect-ratio: 16 / 10; }
.project-image-grid figure:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 7; }
.project-image-grid figure:last-child:nth-child(2) { grid-column: 1 / -1; }
.project-image-grid figure:last-child:nth-child(4) { grid-column: 1 / -1; aspect-ratio: 16 / 7; }
.project-section-alt { position: relative; }
.project-section-alt::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); background: var(--surface-soft); }

.person-feature { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr); gap: 80px; align-items: center; }
.person-feature .wp-block-image { height: 560px; margin: 0; overflow: hidden; }
.person-feature .wp-block-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 36%; }
.person-feature-copy { max-width: 590px; }
.location-image-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.location-image-grid figure { aspect-ratio: 4 / 3; }
.contact-image-grid { grid-template-columns: minmax(190px, .7fr) minmax(190px, .7fr) minmax(0, 1.6fr); gap: 12px; }
.contact-image-grid figure { height: 420px; }

.estate-band { padding: 84px 0; background: var(--blue-deep); color: #fff; }
.estate-band-inner { width: min(var(--max), calc(100% - var(--gutter))); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 80px; align-items: center; }
.estate-band h2 { max-width: 760px; margin-bottom: 16px; color: #fff; }
.estate-band p { max-width: 680px; color: rgba(255,255,255,.76); }
.estate-band .eyebrow { color: #ffb29d; }
.estate-band .text-link { color: #fff; }
.estate-mark { display: grid; justify-items: center; gap: 13px; padding-left: 42px; border-left: 1px solid rgba(255,255,255,.24); color: #fff; font-weight: 680; text-align: center; }
.estate-mark img { width: 118px; }

.page-hero-band { padding: 74px 0; border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.page-hero-grid { width: min(var(--max), calc(100% - var(--gutter))); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr); gap: 72px; align-items: center; }
.page-hero-copy h1 { max-width: 780px; margin-bottom: 22px; font-size: 3.7rem; }
.page-hero-copy .wp-block-buttons { margin-top: 28px; }
.page-hero-image { margin: 0; min-height: 390px; }
.page-hero-image img { width: 100%; height: 390px; object-fit: cover; }
.page-hero-placeholder { min-height: 390px; display: grid; place-items: center; padding: 28px; border: 1px dashed var(--line-dark); background: #dce1de; color: var(--muted); text-align: center; }
.page-ueber-uns .page-hero-image { min-height: 0; height: auto; aspect-ratio: 3 / 2; background: var(--surface); }
.page-ueber-uns .page-hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.page-kontakt .page-hero-image img { object-position: center 50%; }

.detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.detail-card { min-height: 240px; }
.detail-card h3 { margin-bottom: 10px; }
.detail-card p:last-child { margin-bottom: 0; }
.audience-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.audience-grid > * { min-height: 64px; margin: 0; padding: 16px; display: flex; align-items: center; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-weight: 620; }
.placeholder-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.placeholder-gallery.two-up { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.placeholder-media, .image-placeholder { min-height: 330px; margin: 0; display: grid; align-content: end; padding: 22px; border: 1px dashed var(--line-dark); background: #dce1de; color: var(--muted); }
.placeholder-media span, .image-placeholder span { font-weight: 700; }
.placeholder-media small, .image-placeholder small { margin-top: 6px; }
.editor-placeholder { display: none !important; }
.review-note { display: none; }

.contact-cta { padding: 82px 0; background: var(--charcoal); color: #fff; }
.contact-cta-inner { width: min(var(--max), calc(100% - var(--gutter))); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 50px; align-items: center; }
.contact-cta h2 { margin-bottom: 12px; color: #fff; }
.contact-cta p { margin-bottom: 0; color: rgba(255,255,255,.72); }
.contact-cta .wp-block-buttons { justify-content: flex-end; }

.contact-layout { display: grid; grid-template-columns: minmax(290px, .62fr) minmax(0, 1.38fr); gap: 50px; align-items: start; }
.contact-panel { padding: 30px; background: var(--blue-deep); color: #fff; }
.contact-panel h2, .contact-panel h3, .contact-panel a { color: #fff; }
.contact-panel p { color: rgba(255,255,255,.74); }
.contact-line { margin: 0; padding: 17px 0; border-top: 1px solid rgba(255,255,255,.2); color: #fff !important; }
.contact-details { margin: 0; }
.contact-details div { padding: 17px 0; border-top: 1px solid rgba(255,255,255,.2); }
.contact-details dt { color: rgba(255,255,255,.58); font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.contact-details dd { margin: 4px 0 0; color: #fff; font-weight: 650; }
.contact-form-panel { padding: 34px; border: 1px solid var(--line); background: var(--surface); }
.form-panel-head { margin-bottom: 28px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.contact-form label { display: grid; gap: 7px; color: var(--ink); font-size: .83rem; font-weight: 680; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; min-height: 50px; padding: 12px 13px; border: 1px solid var(--line-dark); border-radius: 0; background: #fff; color: var(--ink); font: inherit; }
.contact-form textarea { resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline: 2px solid rgba(34,63,128,.25); border-color: var(--blue); }
.form-message, .privacy-check, .form-hint { grid-column: 1 / -1; }
.privacy-check { display: flex !important; flex-direction: row; align-items: flex-start; gap: 10px !important; max-width: 800px; line-height: 1.5; }
.privacy-check input { width: 18px; min-height: 18px; margin-top: 2px; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-form button { justify-self: start; border: 0; cursor: pointer; }
.optional, .form-hint { color: var(--muted); font-weight: 500; }
.form-feedback { margin-bottom: 18px; padding: 14px 16px; border-left: 4px solid var(--blue); background: #eef3ff; color: var(--ink); font-weight: 650; }
.form-feedback.error { border-left-color: var(--orange-action); background: #fff1ec; }

.site-footer { padding: 58px max(24px, calc((100% - var(--max)) / 2)) 30px; background: #0d1512; color: rgba(255,255,255,.76); }
.footer-inner { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(190px, .35fr) minmax(160px, .28fr); gap: 64px; }
.footer-brand img { width: 112px; margin-bottom: 18px; }
.footer-brand p { max-width: 500px; }
.site-footer p { color: rgba(255,255,255,.66); }
.footer-col { display: grid; align-content: start; gap: 8px; }
.footer-col h2 { margin-bottom: 7px; color: #fff; font-size: .78rem; text-transform: uppercase; }
.footer-col a { color: rgba(255,255,255,.9); }
.footer-note { margin: 34px 0 0; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.13); font-size: .82rem; }

/* Alte Rechtstexte bleiben bis zum separaten Rechtsblock sauber lesbar. */
.page-hero { width: min(var(--max), calc(100% - var(--gutter))); margin: 0 auto; padding: 76px 0 58px; border-bottom: 1px solid var(--line); }
.page-hero > div { max-width: 850px; }
.page-hero h1 { margin-bottom: 18px; font-size: 3.7rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.page-section { width: min(var(--max), calc(100% - var(--gutter))); margin: 0 auto; padding: 72px 0; }
.page-section + .page-section { border-top: 1px solid var(--line); }
.legal-layout { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 56px; align-items: start; }
.legal-nav { position: sticky; top: 112px; display: grid; gap: 8px; padding: 20px 0; border-top: 3px solid var(--blue); }
.legal-nav a { color: var(--muted); font-weight: 620; text-decoration: none; }
.legal-copy { max-width: 790px; }
.legal-nav,
.legal-copy { min-width: 0; }
.legal-nav a,
.legal-copy p,
.legal-copy a,
.legal-copy span { overflow-wrap: anywhere; }
.legal-copy section { padding: 0 0 42px; scroll-margin-top: 110px; }
.legal-copy section + section { padding-top: 42px; border-top: 1px solid var(--line); }
.legal-copy h2 { font-size: 2.15rem; }
.legal-copy h1,
.legal-copy h2,
.legal-copy h3 { min-width: 0; overflow-wrap: anywhere; }
.legal-copy h3 { margin-top: 26px; }
.legal-placeholder, .placeholder-text, .placeholder-copy { color: var(--orange-action); font-weight: 680; }
.p92-legal-placeholder { grid-column: 1 / -1; margin: 0 0 3rem; padding: 1.5rem 1.75rem; border-left: 4px solid var(--orange-action); background: #fff1ec; color: var(--ink); }
.p92-legal-placeholder p { max-width: 68rem; margin: 0; }
.p92-legal-placeholder p + p { margin-top: .5rem; }
.p92-legal-placeholder__label { color: var(--orange-action); font-size: .76rem; font-weight: 780; text-transform: uppercase; }
.p92-inline-placeholder { padding: 1rem 1.15rem; border-left: 3px solid var(--orange-action); background: #fff1ec; color: var(--ink) !important; font-weight: 650; }
.p92-accessibility .wp-block-list { padding-left: 1.25rem; }
.p92-accessibility .wp-block-list li + li { margin-top: .55rem; }
.project-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 18px 0 0; padding: 0; list-style: none; }
.project-meta li { display: grid; gap: 3px; color: var(--muted); }
.project-meta strong { color: var(--ink); font-size: .75rem; text-transform: uppercase; }
.person-copy-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.person-copy-grid article { padding-top: 22px; border-top: 3px solid var(--blue); }

@media (max-width: 1080px) {
  .header-cta { display: none; }
  .main-nav a { padding-left: 8px; padding-right: 8px; font-size: .86rem; }
  .main-hero .hero-panel { width: 58%; }
  .page-hero-grid { grid-template-columns: 1fr 360px; gap: 44px; }
  .work-grid { gap: 50px; }
  .projects-grid.projects-featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .projects-grid.projects-featured .project-card:last-child { grid-column: 1 / -1; }
  .person-feature { gap: 50px; }
}

@media (max-width: 860px) {
  :root { --gutter: 36px; }
  .header-inner { min-height: 78px; }
  .brand { flex-basis: 105px; }
  .brand-logo { width: 96px; height: 60px; }
  .nav-toggle { display: block; }
  .main-nav { position: absolute; left: 0; right: 0; top: 100%; display: none; padding: 8px 18px 18px; border-bottom: 1px solid var(--line); background: var(--paper); }
  .main-nav.is-open { display: block; }
  .main-nav-list { display: grid; justify-content: stretch; }
  .main-nav a { width: 100%; padding: 11px 8px; border-bottom: 1px solid var(--line); font-size: 1rem; }
  .main-hero { min-height: 600px; }
  .main-hero .hero-panel { width: 68%; min-height: 600px; padding-right: 60px; }
  .main-hero h1 { font-size: 3.25rem; }
  .split-intro, .work-grid, .page-hero-grid, .contact-layout { grid-template-columns: 1fr; }
  .page-hero-image, .page-hero-image img { min-height: 0; height: 360px; }
  .estate-band-inner { grid-template-columns: 1fr 180px; gap: 44px; }
  .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process-step:nth-child(2) { border-right: 0; }
  .process-step:nth-child(3), .process-step:nth-child(4) { border-top: 1px solid var(--line); }
  .audience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .legal-layout { grid-template-columns: 1fr; gap: 30px; }
  .legal-nav { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .work-image-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .person-feature { grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr); gap: 38px; }
  .location-image-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .location-image-grid figure { grid-column: auto; aspect-ratio: 4 / 3; }
  .location-image-grid figure:last-child { grid-column: 1 / -1; aspect-ratio: 16 / 8; }
  .contact-image-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-image-grid figure { height: 410px; }
  .contact-image-grid figure:last-child { grid-column: 1 / -1; height: auto; aspect-ratio: 16 / 8; }
}

@media (max-width: 640px) {
  :root { --gutter: 32px; }
  body { font-size: 16px; }
  h2 { font-size: 2.2rem; }
  .header-inner { min-height: 70px; }
  .brand-logo { width: 82px; height: 52px; }
  .main-hero { min-height: 610px; align-items: flex-end; }
  .main-hero .wp-block-cover__image-background { object-position: 63% center; }
  .main-hero .hero-panel { width: 100%; min-height: 440px; margin-top: 170px; padding: 56px 22px 48px; justify-content: flex-end; }
  .main-hero .hero-panel::before { inset: -38px 0 0; clip-path: polygon(0 38px, 100% 0, 100% 100%, 0 100%); }
  .main-hero h1 { font-size: 2.55rem; }
  .main-hero .lead { font-size: 1rem; }
  .main-hero .wp-block-buttons { display: grid; }
  .main-hero .wp-block-button, .main-hero .wp-block-button__link { width: 100%; }
  .trust-grid, .service-overview, .service-grid, .projects-grid, .projects-grid.projects-featured, .detail-grid, .placeholder-gallery, .placeholder-gallery.two-up, .person-copy-grid, .work-image-grid, .project-image-grid, .person-feature, .location-image-grid, .contact-image-grid { grid-template-columns: 1fr; }
  .trust-item { min-height: 0; padding: 20px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .trust-item + .trust-item { padding-left: 0; }
  .trust-item:last-child { border-bottom: 0; }
  .content-section { padding-top: 72px; padding-bottom: 72px; }
  .section-intro { margin-bottom: 36px; }
  .split-intro { gap: 24px; }
  .service-group, .service-card, .detail-card { min-height: 0; padding: 24px; }
  .service-grid > .service-card:last-child:nth-child(odd) { grid-column: auto; display: block; }
  .service-grid > .service-card:last-child:nth-child(odd) ul { margin-top: 18px; }
  .project-copy { min-height: 0; }
  .projects-grid.projects-featured .project-card:last-child { grid-column: auto; }
  .project-section { padding-top: 68px; padding-bottom: 68px; }
  .project-image-grid figure, .project-image-grid figure:first-child, .project-image-grid figure:last-child:nth-child(2), .project-image-grid figure:last-child:nth-child(4) { grid-column: auto; aspect-ratio: 4 / 3; }
  .person-feature .wp-block-image { height: 460px; }
  .location-image-grid figure, .location-image-grid figure:last-child { grid-column: auto; aspect-ratio: 4 / 3; }
  .contact-image-grid figure { grid-column: auto; height: auto; aspect-ratio: 3 / 4; }
  .contact-image-grid figure:last-child { grid-column: auto; height: auto; aspect-ratio: 16 / 9; }
  .process-grid { grid-template-columns: 1fr; }
  .process-step, .process-step + .process-step { min-height: 0; padding: 26px 0; border-right: 0; border-top: 1px solid var(--line); }
  .process-step .card-kicker { margin-bottom: 18px; }
  .work-grid .wp-block-image, .work-grid .wp-block-image img { min-height: 0; height: 310px; }
  .estate-band { padding: 68px 0; }
  .estate-band-inner { grid-template-columns: 1fr; gap: 40px; }
  .estate-mark { justify-items: start; padding: 28px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.24); text-align: left; }
  .estate-mark img { width: 88px; }
  .page-hero-band { padding: 54px 0 0; }
  .page-hero-grid { width: 100%; gap: 42px; }
  .page-hero-copy { width: calc(100% - var(--gutter)); margin: 0 auto; }
  .page-hero-copy h1, .page-hero h1 { font-size: 2.55rem; }
  .page-hero-image, .page-hero-image img { height: 270px; }
  .audience-grid { grid-template-columns: 1fr; }
  .contact-cta { padding: 64px 0; }
  .contact-cta-inner { grid-template-columns: 1fr; gap: 28px; }
  .contact-cta .wp-block-buttons { justify-content: flex-start; }
  .contact-form-panel { padding: 22px; }
  .contact-form { grid-template-columns: 1fr; }
  .form-message, .privacy-check, .form-hint { grid-column: 1; }
  .footer-inner { grid-template-columns: 1fr; gap: 34px; }
  .footer-brand { grid-column: auto; }
  .legal-nav { grid-template-columns: 1fr; }
  .legal-copy h2 { font-size: 1.9rem; }
  .project-meta { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  :focus-visible { outline: 3px solid Highlight; box-shadow: none; }
}

/* P3: stabile Theme-Huelle und geschuetzte Gutenberg-Referenzmodule. */
[hidden] { display: none !important; }
body.menu-open { overflow: hidden; }
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.shell { width: min(calc(100% - 3rem), 76rem); margin-inline: auto; }

.site-header { position: relative; z-index: 50; border-bottom: 1px solid #d9dde4; background: rgba(255,255,255,.97); backdrop-filter: none; }
.site-header__inner { display: flex; min-height: 5.5rem; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; width: 12rem; height: 4.5rem; align-items: center; flex: 0 0 auto; overflow: hidden; }
.brand img { width: 100%; height: 100%; object-fit: contain; }
.desktop-nav { display: flex; align-items: center; gap: .25rem; }
.desktop-nav__dropdown { position: relative; }
.desktop-nav__link {
  position: relative;
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: .5rem;
  padding: .7rem .8rem;
  border: 0;
  background: transparent;
  color: #172033;
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
  font-weight: 660;
  letter-spacing: 0;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}
.desktop-nav__link::after {
  position: absolute;
  right: .8rem;
  bottom: .3rem;
  left: .8rem;
  height: 2px;
  background: #f04e2f;
  content: "";
  opacity: 0;
  transform: scaleX(.3);
  transition: opacity 160ms ease, transform 160ms ease;
}
.desktop-nav__link:hover::after,
.desktop-nav__link.is-active::after,
.desktop-nav__link[aria-current="page"]::after,
.desktop-nav__link[aria-expanded="true"]::after { opacity: 1; transform: scaleX(1); }
.chevron { width: .48rem; height: .48rem; border-right: 2px solid currentcolor; border-bottom: 2px solid currentcolor; transform: translateY(-.12rem) rotate(45deg); transition: transform 160ms ease; }
[aria-expanded="true"] > .chevron { transform: translateY(.12rem) rotate(225deg); }
.desktop-nav__menu {
  position: absolute;
  z-index: 60;
  top: calc(100% + .75rem);
  left: -1rem;
  width: min(39rem, calc(100vw - 3rem));
  padding: 1.5rem;
  border: 1px solid #d9dde4;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(20,38,77,.14);
}
.desktop-nav__menu::before { position: absolute; top: -.75rem; right: 0; left: 0; height: .75rem; content: ""; }
.desktop-nav__menu a { display: flex; min-height: 2.75rem; align-items: center; padding: .65rem .75rem; border-radius: 4px; color: #172033; font-weight: 630; line-height: 1.3; text-decoration: none; }
.desktop-nav__menu a:hover,
.desktop-nav__menu a[aria-current="page"] { background: #f1f3f6; color: #223f80; }
.desktop-nav__all { margin-bottom: 1rem; border-bottom: 1px solid #d9dde4; border-radius: 0 !important; color: #223f80 !important; }
.desktop-nav__service-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .25rem; }
.menu-trigger { display: none; min-width: 5.25rem; min-height: 2.875rem; align-items: center; justify-content: center; gap: .65rem; padding: .6rem .75rem; border: 1px solid #d9dde4; border-radius: 4px; background: #fff; color: #14264d; cursor: pointer; font-weight: 720; }
.menu-trigger__icon { display: grid; width: 1.25rem; gap: .24rem; }
.menu-trigger__icon span { display: block; width: 100%; height: 2px; background: currentcolor; }

.mobile-menu { position: fixed; z-index: 100; inset: 0; display: grid; grid-template-columns: 1fr minmax(18rem,28rem); }
.admin-bar .mobile-menu { top: 32px; }
.mobile-menu__backdrop { width: 100%; border: 0; background: rgba(20,38,77,.62); cursor: pointer; }
.mobile-menu__panel { display: flex; min-width: 0; height: 100%; flex-direction: column; overflow-y: auto; padding: 1.5rem; background: #fff; }
.mobile-menu__top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1.5rem; border-bottom: 1px solid #d9dde4; }
.mobile-menu__top p { margin: 0; color: #14264d; font-size: 1.375rem; font-weight: 720; }
.icon-button { display: inline-grid; width: 2.75rem; height: 2.75rem; border: 1px solid #d9dde4; border-radius: 50%; background: #fff; color: #14264d; cursor: pointer; font-size: 2rem; line-height: 1; place-items: center; }
.mobile-nav { display: grid; padding-block: 1rem; }
.mobile-nav > a,
.mobile-nav__accordion > button { display: flex; width: 100%; min-height: 3.25rem; align-items: center; justify-content: space-between; padding: .75rem .25rem; border: 0; border-bottom: 1px solid #d9dde4; background: transparent; color: #14264d; cursor: pointer; font-size: 1.125rem; font-weight: 690; text-align: left; text-decoration: none; }
.mobile-nav__subnav { display: grid; padding: .5rem 0 .75rem 1rem; border-bottom: 1px solid #d9dde4; }
.mobile-nav__subnav a { display: flex; min-height: 2.75rem; align-items: center; padding: .45rem .5rem; border-left: 2px solid #d9dde4; text-decoration: none; }
.mobile-nav__subnav a:hover,
.mobile-nav__subnav a[aria-current="page"] { border-left-color: #f04e2f; color: #223f80; }
.mobile-menu__contact { display: grid; gap: 1rem; margin-top: auto; padding-top: 2rem; text-align: center; }

.page-intro { position: relative; padding-block: 3rem 6rem; border-bottom: 1px solid #d9dde4; background: #fff; }
.page-intro::after { position: absolute; right: 0; bottom: 0; width: min(18vw,14rem); height: .4rem; background: #f04e2f; content: ""; }
.page-intro__grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr); align-items: end; gap: 4rem; }
.page-intro__grid .wp-block-post-title { max-width: 13ch; margin: 0; color: #14264d; font-size: 3.75rem; line-height: 1.06; }
.page-intro__copy { max-width: 37rem; padding-left: 2rem; border-left: 1px solid #d9dde4; }
.page-intro__copy p { margin-bottom: 1.5rem; }
.text-link--arrow { display: inline-flex; align-items: center; border: 0; color: #223f80; font-weight: 720; }
.text-link--arrow a { text-decoration: underline; }
.text-link--arrow::after { margin-left: .5rem; content: "→"; transition: transform 160ms ease; }
.text-link--arrow:hover::after { transform: translateX(.2rem); }

.service-register { border-top: 2px solid #14264d; counter-reset: service; }
.service-register__group { display: grid; grid-template-columns: minmax(8.5rem,.42fr) minmax(0,1fr); gap: 1.5rem; padding-block: 1.5rem; border-bottom: 1px solid #d9dde4; }
.service-register__group > h3 { margin: 0; padding-top: .8rem; color: #5b6472; font-size: .8125rem; font-weight: 720; line-height: 1.35; text-transform: uppercase; }
.service-register__list { margin: 0; padding: 0; list-style: none; }
.service-register__list li { counter-increment: service; margin: 0; }
.service-register__list li + li { border-top: 1px solid #d9dde4; }
.service-register__list a { display: grid; min-height: 4.75rem; grid-template-columns: 2.5rem minmax(0,1fr) 1.5rem; align-items: center; gap: 1rem; padding: .75rem; color: #172033; font-size: 1.375rem; font-weight: 690; line-height: 1.15; text-decoration: none; }
.service-register__list a::before { color: #5b6472; content: counter(service, decimal-leading-zero); font-size: .8125rem; font-weight: 500; }
.service-register__list a::after {
  width: 1.5rem;
  height: .75rem;
  background:
    linear-gradient(currentcolor,currentcolor) left center / 1.25rem 2px no-repeat,
    linear-gradient(45deg,transparent 42%,currentcolor 43% 57%,transparent 58%) right top / .55rem 50% no-repeat,
    linear-gradient(-45deg,transparent 42%,currentcolor 43% 57%,transparent 58%) right bottom / .55rem 50% no-repeat;
  color: #c63f25;
  content: "";
  transition: transform 160ms ease;
}
.service-register__list a:hover { background: #fff; color: #223f80; }
.service-register__list a:hover::after,
.service-register__list a:focus-visible::after { transform: translateX(.2rem); }

.project-record { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); border: 1px solid #d9dde4; border-radius: 8px; overflow: hidden; background: #fff; }
.project-record__media { min-height: 28rem; background: #f1f3f6; }
.project-record__media figure,
.project-record__media img { width: 100%; height: 100%; margin: 0; object-fit: cover; }
.project-record__facts { padding: 3rem 2rem; }
.is-style-vsbp-abschnitt { width: min(calc(100% - 3rem),76rem); margin-inline: auto; padding-block: 6rem; }
.is-style-vsbp-abschnitt-kompakt { width: min(calc(100% - 3rem),76rem); margin-inline: auto; padding-block: 4rem; }
.wp-block-image.is-style-vsbp-projektbild { aspect-ratio: 4 / 3; overflow: hidden; }
.wp-block-image.is-style-vsbp-projektbild img { width: 100%; height: 100%; object-fit: cover; }

.contact-band { padding-block: 3.25rem; background: #14264d; color: #fff; }
.contact-band__inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.45fr); align-items: center; gap: 4rem; }
.contact-band h2 { margin-bottom: 1rem; color: #fff; font-size: 2.25rem; }
.contact-band p { max-width: 42rem; color: #dfe6f5; }
.contact-band__action { padding-left: 3rem; border-left: 1px solid rgba(255,255,255,.25); }
.contact-band__action .wp-block-buttons { margin-bottom: .75rem; }
.contact-band--button-only .contact-band__action .wp-block-buttons { margin-bottom: 0; }
.contact-band__phone { margin: 0; font-weight: 690; }
.contact-band__phone a { color: #fff; }
.eyebrow--light { color: #cbd7f4; }

/* P4 Startseite: ruhige redaktionelle Fuehrung statt Kartenwand. */
.p4-hero-shell { width: 100%; }
.p4-hero { min-height: clamp(34rem, calc(100svh - 7rem), 40rem); }
.p4-hero .hero-panel { min-height: clamp(34rem, calc(100svh - 7rem), 40rem); }
.p4-hero .hero-note { margin: 1.25rem 0 0; color: #cbd7f4; font-size: .9rem; font-weight: 620; }

.p4-services { padding-block: 6.5rem; }
.p4-section-head { display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1fr); gap: 5rem; align-items: end; margin-bottom: 3rem; }
.p4-section-head h2 { max-width: 12ch; margin: 0; }
.p4-section-head__copy { max-width: 39rem; padding-left: 2rem; border-left: 1px solid var(--line); }
.p4-section-head__copy p:last-child { margin-bottom: 0; }
.p4-services .service-register { display: grid; width: 100%; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; border-top: 0; counter-reset: none; }
.p4-services .service-register__group { position: relative; display: flex; min-width: 0; padding: 1.85rem 1.75rem 1.25rem; flex-direction: column; gap: 0; overflow: hidden; border: 0; border-radius: 6px; background: #fff; box-shadow: 0 1px 2px rgba(20,38,77,.06),0 18px 45px rgba(20,38,77,.07); }
.p4-services .service-register__group::after { position: absolute; top: 0; left: 1.75rem; width: 3rem; height: 3px; background: var(--red); content: ""; }
.p4-services .service-register__group > h3 { display: grid; min-height: 0; grid-template-columns: 2.65rem minmax(0,1fr); align-items: center; gap: 1rem; margin: 0 0 1.4rem; padding: 0; border: 0; background: transparent; color: var(--ink); font-size: 1.18rem; font-weight: 690; line-height: 1.25; text-transform: none; }
.p4-services .service-register__group > h3::before { width: 2.65rem; height: 2.65rem; background: var(--blue); content: ""; -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; }
.p4-services .service-register__group:nth-child(1) > h3::before { -webkit-mask-image: url("assets/icons/drafting-compass.svg"); mask-image: url("assets/icons/drafting-compass.svg"); }
.p4-services .service-register__group:nth-child(2) > h3::before { -webkit-mask-image: url("assets/icons/hammer.svg"); mask-image: url("assets/icons/hammer.svg"); }
.p4-services .service-register__group:nth-child(3) > h3::before { -webkit-mask-image: url("assets/icons/grid-3x3.svg"); mask-image: url("assets/icons/grid-3x3.svg"); }
.p4-services .service-register__list { flex: 1; border-top: 1px solid var(--line); }
.p4-services .service-register__list li { counter-increment: none; }
.p4-services .service-register__list a { min-height: 4rem; grid-template-columns: minmax(0,1fr) 1.5rem; gap: 1rem; padding: .8rem 0; font-size: 1.05rem; }
.p4-services .service-register__list a::before { display: none; content: none; }
.p4-services .service-register__list a:hover { background: transparent; color: var(--blue); }

.p4-proof-band { padding-block: 6.5rem; border-top: 1px solid var(--line); background: var(--surface); }
.p4-proof { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; }
.p4-proof__head { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: 4rem; align-items: start; }
.p4-proof__head h2 { max-width: 14ch; margin-bottom: 0; }
.p4-proof__copy { max-width: 38rem; }
.p4-proof__copy p:last-child { margin-bottom: 0; }
.p4-proof__media { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(0,.9fr); gap: 1rem; align-items: start; margin-top: 2.25rem; }
.p63-project-tile { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); box-shadow: 0 8px 24px rgba(10,24,48,.055); }
.p63-project-tile figure { height: clamp(22rem,33vw,34rem); margin: 0; overflow: hidden; border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.p63-project-tile figure > a { display: block; width: 100%; height: 100%; overflow: hidden; }
.p63-project-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 360ms cubic-bezier(.22,1,.36,1); }
.p63-project-tile:last-child img { object-position: 75% center; }
.p63-project-tile__label { margin: 0; padding: 0; color: var(--ink); line-height: 1.35; }
.p63-project-tile__label a { display: flex; min-height: 8.25rem; flex-direction: column; align-items: stretch; gap: .85rem; padding: 1.2rem 1.35rem 1.1rem; color: var(--ink); text-decoration: none; }
.p63-project-tile__label a > span:first-child { max-width: 28ch; color: var(--blue-deep); font-size: 1.22rem; font-weight: 720; line-height: 1.18; }
.p63-project-tile__period { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: .8rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; font-weight: 560; white-space: nowrap; }
.p63-project-tile__period::after { color: var(--orange-deep); content: "Projekt ansehen  \2192"; font-size: .78rem; font-weight: 720; }

.p4-team { padding-block: 6.5rem; }
.p4-team__grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.72fr); gap: 5rem; align-items: center; }
.p4-team__media { display: block; }
.p4-team__media figure { margin: 0; overflow: hidden; aspect-ratio: 3 / 2; background: var(--surface-soft); }
.p4-team__media img { width: 100%; height: 100%; object-fit: cover; }
.p4-team__copy { max-width: 34rem; }
.p4-team__copy h2 { margin-bottom: 1.5rem; }

.p4-estate-band { padding-block: 5rem; border-block: 1px solid var(--line); background: var(--surface-soft); }
.p4-estate { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.28fr); gap: 5rem; align-items: center; }
.p4-estate h2 { max-width: 17ch; margin-bottom: 1.25rem; }
.p4-estate__topics { margin: 1.5rem 0; color: var(--ink); font-size: .92rem; font-weight: 670; }
.p4-estate__mark { min-height: 13rem; display: grid; place-items: center; border: 1px solid var(--line); border-top: 4px solid var(--blue-deep); background: var(--surface); }
.p4-estate__mark img { width: min(100%,17rem); height: auto; object-fit: contain; }

.p4-section-head > .wp-block-group:first-child > *,
.p4-proof__head > .wp-block-group:first-child > *,
.p4-estate > .wp-block-group:first-child > *,
.contact-band__inner > .wp-block-group:first-child > * { margin-left: 0 !important; margin-right: 0 !important; }

/* Redaktionelle Spalten folgen einer gemeinsamen linken Achse. */
.p5-head__inner > .wp-block-group:first-child > *,
.p6-head__inner > .wp-block-group:first-child > *,
.p6-index__intro > .wp-block-group:first-child > *,
.p6-split > .wp-block-group:first-child > *,
.p7-section-head > .wp-block-group:first-child > *,
.p7-proof-band__inner > .wp-block-group:first-child > *,
.p8-head__inner > .wp-block-group:first-child > *,
.p8-person__copy > *,
.p8-principle-band__inner > .wp-block-group:first-child > *,
.p8-section-head > .wp-block-group:first-child > *,
.p8-related__head > .wp-block-group:first-child > *,
.p9-head__copy > *,
.p9-main__intro > *,
.page-hero > .wp-block-group > * { margin-left: 0 !important; margin-right: 0 !important; }

/* P5 Leistungsseiten: klare Orientierung, belastbare Grenzen, keine Kartenwand. */
.p5-head { padding-block: 5.5rem 4.5rem; border-bottom: 1px solid var(--line); background: var(--surface); }
.p5-head__inner { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 5rem; align-items: start; }
.p5-head h1 { max-width: none; margin: 0; color: var(--blue-deep); font-size: 3.3rem; line-height: 1.04; }
.p5-head__copy { max-width: 40rem; margin-top: 3rem; padding-left: 2rem; border-left: 1px solid var(--line); }
.p5-head__copy > * { margin-left: 0 !important; margin-right: 0 !important; }
.p5-head__copy .lead { margin-bottom: 1.5rem; }
.p5-head__note { margin: 1.25rem 0 0; color: var(--muted); font-size: .9rem; font-weight: 620; }

.p5-section { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; padding-block: 6rem; }
.p5-section + .p5-section { border-top: 1px solid var(--line); }
.p5-split { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 5rem; align-items: start; }
.p5-split h2 { max-width: none; margin-bottom: 0; font-size: 2.4rem; }
.p5-copy { max-width: 43rem; }
.p5-copy > :last-child { margin-bottom: 0; }
.p5-copy h3 { margin-top: 2rem; font-size: 1.25rem; }

.p5-ruled-list { margin: 2rem 0 0; padding: 0; border-top: 2px solid var(--blue-deep); list-style: none; counter-reset: p5-row; }
.p5-ruled-list li { counter-increment: p5-row; display: grid; grid-template-columns: 2.5rem minmax(0,1fr); gap: 1rem; margin: 0; padding: 1.15rem .25rem; border-bottom: 1px solid var(--line); }
.p5-ruled-list li::before { color: var(--muted); content: counter(p5-row,decimal-leading-zero); font-size: .78rem; font-weight: 650; }
.p5-ruled-list__copy { min-width: 0; }
.p5-ruled-list strong { display: block; margin-bottom: .2rem; color: var(--ink); }

.p5-scope-band { padding-block: 5.5rem; border-block: 1px solid var(--line); background: var(--surface-soft); }
.p5-scope { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; }
.p5-note { margin-top: 2rem; padding: 1.4rem 1.6rem; border-left: 4px solid var(--orange); background: var(--surface); }
.p5-note p:last-child { margin-bottom: 0; }

.p5-visual { width: min(var(--max),calc(100% - var(--gutter))); margin: 0 auto; padding-block: 0 6rem; }
.p5-visual figure { aspect-ratio: 16 / 7; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p5-visual img { width: 100%; height: 100%; object-fit: cover; }
.p5-visual--portrait figure { aspect-ratio: 16 / 8.5; }
.p5-visual--schluesselfertig img { object-position: center 48%; }
.p5-visual--putz img { object-position: 62% 48%; }

.p5-related { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1fr); gap: 5rem; align-items: start; }
.p5-related__links { margin: 0; padding: 0; border-top: 2px solid var(--blue-deep); list-style: none; }
.p5-related__links li { margin: 0; border-bottom: 1px solid var(--line); }
.p5-related__links a { display: flex; min-height: 4.25rem; align-items: center; justify-content: space-between; gap: 1rem; color: var(--ink); font-weight: 690; text-decoration: none; }
.p5-related__links a::after { color: var(--orange-deep); content: "→"; transition: transform 160ms ease; }
.p5-related__links a:hover,
.p5-related__links a:focus-visible { color: var(--blue); }
.p5-related__links a:hover::after,
.p5-related__links a:focus-visible::after { transform: translateX(.2rem); }

.p5-faq { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); column-gap: 5rem; padding-block: 5rem 6rem; }
.p5-faq__head { grid-column: 1; grid-row: 1 / span 3; margin: 0; }
.p5-faq details { grid-column: 2; border-bottom: 1px solid var(--line); }
.p5-faq details:first-of-type { border-top: 2px solid var(--blue-deep); }
.p5-faq summary { padding: 1.25rem 2.5rem 1.25rem 0; color: var(--ink); font-size: 1.08rem; font-weight: 690; cursor: pointer; }
.p5-faq details > p { max-width: 43rem; padding: 0 2rem 1.4rem 0; }

.p5-overview-register { padding-block: 1rem 6rem; }
.p5-overview-register .service-register { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; }
.p5-overview-visual { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.5fr); gap: 1rem; align-items: end; }
.p5-overview-visual figure { margin: 0; overflow: hidden; background: var(--surface-soft); }
.p5-overview-visual figure:first-child { aspect-ratio: 16 / 9; }
.p5-overview-visual figure:last-child { aspect-ratio: 3 / 4; }
.p5-overview-visual img { width: 100%; height: 100%; object-fit: cover; }

/* P45 Leistungsuebersicht: drei reale Arbeitsschritte und eine scanbare Anfragehilfe. */
.p45-service-gallery { display: grid; grid-template-columns: minmax(0,.88fr) minmax(0,1.18fr) minmax(0,1fr); gap: 1rem; }
.p45-service-gallery figure { min-width: 0; margin: 0; }
.p45-service-gallery img { display: block; width: 100%; height: clamp(15rem,23vw,20.5rem); object-fit: cover; background: var(--surface-soft); }
.p45-service-gallery figure:nth-child(1) img { object-position: 50% 18%; }
.p45-service-gallery figure:nth-child(2) img { object-position: 50% 50%; }
.p45-service-gallery figcaption { margin: 0; padding: .8rem 0 0; color: var(--ink); font-size: .84rem; font-weight: 680; line-height: 1.35; }
.p45-request__intro { max-width: 25rem; margin: 1.25rem 0 0 !important; color: var(--muted); }
.p45-request-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; padding: 0; border-top: 2px solid var(--blue-deep); list-style: none; counter-reset: p45-request; }
.p45-request-grid li { counter-increment: p45-request; display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: .75rem; margin: 0; padding: 1.4rem 1.5rem 1.4rem 0; border-bottom: 1px solid var(--line); }
.p45-request-grid li:nth-child(even) { padding-right: 0; padding-left: 1.5rem; border-left: 1px solid var(--line); }
.p45-request-grid li::before { color: var(--muted); content: counter(p45-request,decimal-leading-zero); font-size: .75rem; font-weight: 680; line-height: 1.5; }
.p45-request-grid__copy { min-width: 0; }
.p45-request-grid strong { display: block; margin-bottom: .35rem; color: var(--ink); font-size: 1.02rem; line-height: 1.3; }
.p45-request-grid span { display: block; color: var(--muted); font-size: .92rem; line-height: 1.5; }

/* P41 Leistungsuebersicht: eine Entscheidungsstrecke statt doppelter Register. */
.p41-overview { padding-block: 6rem; border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.p41-overview__inner { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; }
.p41-overview__intro { display: grid; grid-template-columns: minmax(14rem,.42fr) minmax(0,1fr); align-items: end; gap: 4rem; margin-bottom: 2.5rem; }
.p41-overview__intro h2 { margin: 0; font-size: 2.65rem; }
.p41-overview__intro-copy { max-width: 38rem; }
.p41-overview__intro-copy p:last-child { margin-bottom: 0; }
.p41-path { display: grid; grid-template-columns: minmax(14rem,.42fr) minmax(0,1fr); gap: 4rem; padding-block: 2.75rem; border-top: 1px solid var(--line); }
.p41-path:last-child { border-bottom: 1px solid var(--line); }
.p41-path__head { display: grid; grid-template-columns: 2.75rem minmax(0,1fr); align-items: start; column-gap: 1rem; }
.p41-path__head > * { margin-left: 0 !important; margin-right: 0 !important; }
.p41-path__head::before { width: 2.75rem; height: 2.75rem; grid-row: 1 / span 2; background: var(--blue); content: ""; -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; }
.p41-path__head h3 { grid-column: 2; margin: 0 0 1rem; color: var(--blue-deep); font-size: 1.55rem; line-height: 1.18; }
.p41-overview__intro + .p41-path .p41-path__head::before { -webkit-mask-image: url("assets/icons/drafting-compass.svg"); mask-image: url("assets/icons/drafting-compass.svg"); }
.p41-overview__intro + .p41-path + .p41-path .p41-path__head::before { -webkit-mask-image: url("assets/icons/hammer.svg"); mask-image: url("assets/icons/hammer.svg"); }
.p41-overview__intro + .p41-path + .p41-path + .p41-path .p41-path__head::before { -webkit-mask-image: url("assets/icons/grid-3x3.svg"); mask-image: url("assets/icons/grid-3x3.svg"); }
.p41-path__head p { grid-column: 2; max-width: 26rem; margin: 0; color: var(--muted); }
.p41-service-list { display: grid; grid-template-columns: repeat(auto-fit,minmax(13rem,1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.p41-service-list li { min-width: 0; margin: 0; }
.p41-service-list a { position: relative; display: flex; min-height: 10.5rem; padding: 1.5rem 3.25rem 1.5rem 1.5rem; flex-direction: column; border: 1px solid rgba(20,38,77,.15); border-radius: 6px; background: var(--surface); color: var(--ink); text-decoration: none; transition: border-color 160ms ease,background-color 160ms ease; }
.p41-service-list a::after { position: absolute; top: 1.35rem; right: 1.35rem; color: var(--red); content: "→"; font-size: 1.3rem; line-height: 1; transition: transform 160ms ease; }
.p41-service-list strong { display: block; margin-bottom: auto; padding-bottom: 1.5rem; color: var(--ink); font-size: 1.22rem; line-height: 1.2; }
.p41-service-list span { display: block; color: var(--muted); font-size: .96rem; line-height: 1.5; }
.p41-service-list a:focus-visible { border-color: var(--blue); background: #fff; }
.p41-service-list a:focus-visible::after { transform: translateX(.2rem); }

/* P6 Projekte: private Arbeitsfassungen mit klarer Beweis- und Platzhalterlogik. */
.p6-head { padding-block: 5.5rem 4.5rem; border-bottom: 1px solid var(--line); background: var(--surface); }
.p6-head__inner { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 3rem; align-items: start; }
.p6-head h1 { max-width: none; margin: 0; color: var(--blue-deep); font-size: 3.2rem; line-height: 1.04; }
.page-projekte .p6-head h1 { overflow-wrap: normal; hyphens: none; }
.p6-head__copy { max-width: 41rem; padding-left: 2rem; border-left: 1px solid var(--line); }
.p6-head__copy .lead { margin-bottom: 1.5rem; }
.p6-worknote { margin: 1.5rem 0 0; padding: 1rem 1.25rem; border-left: 4px solid var(--orange); background: #fff3ef; color: var(--ink); font-size: .9rem; font-weight: 650; }
.p6-worknote strong { color: var(--orange-action); }

.p6-index { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; padding-block: 6rem; }
.p6-index__intro { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 4rem; align-items: end; margin-bottom: 3rem; }
.p6-index__intro h2 { max-width: 15ch; margin: 0; hyphens: none; }
.p6-index__intro > div:last-child { max-width: 42rem; align-self: end; padding: .75rem 0 .75rem 2rem; border-left: 1px solid var(--line); }
.p6-index__intro > div:last-child > * { margin-left: 0 !important; margin-right: 0 !important; }
.p6-index__intro > div:last-child > :last-child { margin-bottom: 0; }
.p6-index__list { display: grid; gap: 5rem; }
.p6-entry { display: grid; grid-template-columns: minmax(0,1.18fr) minmax(0,.82fr); gap: 0; border-top: 2px solid var(--blue-deep); background: var(--surface); }
.p6-entry:nth-child(even) .p6-entry__media { order: 2; }
.p6-entry__media { min-height: 28rem; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p6-entry__media figure { width: 100%; height: 100%; margin: 0; }
.p6-entry__media a { display: block; width: 100%; height: 100%; }
.p6-entry__media img { width: 100%; height: 100%; object-fit: cover; }
.p6-entry__copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 3rem; border-bottom: 1px solid var(--line); }
.p6-entry__copy h2 { min-width: 0; margin-bottom: 1rem; font-size: clamp(1.6rem,2.4vw,2rem); overflow-wrap: normal; hyphens: none; }
.p6-entry__copy h2 a { color: inherit; text-decoration: none; }
.p6-entry__copy h2 a:hover,
.p6-entry__copy h2 a:focus-visible { color: var(--blue); }
.p6-entry__facts { margin: 1.75rem 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.p6-entry__facts li { display: grid; grid-template-columns: 7rem minmax(0,1fr); gap: 1rem; margin: 0; padding: .8rem 0; border-bottom: 1px solid var(--line); }
.p6-entry__facts strong { color: var(--muted); font-size: .75rem; text-transform: uppercase; }
.p6-placeholder { color: var(--orange-action); font-weight: 760; letter-spacing: 0; }

/* P88 Projekte: vier Referenzen als zusammenhaengende, bildgefuehrte Buehne. */
.page-projekte .p6-head { padding-bottom: 3.25rem; border-bottom: 0; background: var(--paper); }
.p88-project-stage { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; padding-bottom: 6rem; }
.p88-project-stage__grid {
  display: grid;
  grid-template-columns: minmax(0,7.6fr) minmax(0,2.7fr) minmax(0,2.7fr);
  grid-template-rows: repeat(2,17.25rem);
  gap: .75rem;
}
.p88-project-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(20,38,77,.16);
  border-radius: var(--radius);
  background: var(--blue-deep);
  box-shadow: 0 10px 28px rgba(10,24,48,.08);
  isolation: isolate;
  transition: transform 220ms cubic-bezier(.22,1,.36,1), border-color 220ms ease, box-shadow 220ms ease;
}
.p88-project-tile--lead { grid-column: 1; grid-row: 1 / 3; }
.p88-project-tile--wide { grid-column: 2 / 4; grid-row: 1; }
.p88-project-tile--compact-a { grid-column: 2; grid-row: 2; }
.p88-project-tile--compact-b { grid-column: 3; grid-row: 2; }
.p88-project-tile__image,
.p88-project-tile__image figure { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; margin: 0; }
.p88-project-tile__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 420ms cubic-bezier(.22,1,.36,1); }
.p88-project-tile--lead .p88-project-tile__image img { object-position: 50% center; }
.p88-project-tile--wide .p88-project-tile__image img { object-position: center 45%; }
.p88-project-tile--compact-a .p88-project-tile__image img { object-position: 48% center; }
.p88-project-tile--compact-b .p88-project-tile__image img { object-position: 58% center; }
.p88-project-tile::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(180deg,rgba(7,15,31,.06) 12%,rgba(7,15,31,.52) 40%,rgba(7,15,31,.84) 64%,rgba(7,15,31,.97) 100%);
  content: "";
}
.p88-project-tile--compact-a::before,
.p88-project-tile--compact-b::before {
  background: linear-gradient(180deg,rgba(7,15,31,.1) 8%,rgba(7,15,31,.68) 30%,rgba(7,15,31,.88) 55%,rgba(7,15,31,.97) 100%);
}
.p88-project-tile__body { position: static; z-index: 2; width: 100%; padding: 1.45rem 1.55rem 1.5rem; }
.p88-project-tile--lead .p88-project-tile__body { padding: 2rem 2.15rem 2.1rem; }
.p88-project-tile__period { margin: 0 0 .5rem; color: #d8e0f2; font-size: .75rem; font-weight: 720; text-transform: uppercase; }
.p88-project-tile__title { max-width: none; margin: 0; color: #fff; font-size: 1.35rem; line-height: 1.08; }
.p88-project-tile--lead .p88-project-tile__title { max-width: 19ch; font-size: 2.25rem; }
.p88-project-tile--wide .p88-project-tile__title { font-size: 1.65rem; }
.p88-project-tile__title a { display: block; color: inherit; text-decoration: none; }
.p88-project-tile__title a::after { position: absolute; z-index: 3; inset: 0; content: ""; }
.p88-project-tile__arrow { position: absolute; right: 1.55rem; bottom: 1.6rem; color: #ff674b; font-size: 1.15em; line-height: 1; transition: transform 220ms ease; }
.p88-project-tile__service { max-width: 35rem; margin: .75rem 0 0; padding-right: 2.75rem; color: #eef2f8; font-size: .9rem; font-weight: 560; line-height: 1.45; }
.p88-project-tile--lead .p88-project-tile__service { font-size: 1rem; }
.p88-project-tile:focus-within { outline: 3px solid var(--orange-action); outline-offset: 3px; border-color: #fff; box-shadow: 0 18px 42px rgba(10,24,48,.16); }
.p88-project-tile__title a:focus-visible { outline: 0; box-shadow: none; }

@media (hover: hover) and (pointer: fine) {
  .p88-project-tile:hover { z-index: 2; transform: translateY(-3px) scale(1.004); border-color: rgba(255,255,255,.72); box-shadow: 0 20px 46px rgba(10,24,48,.17); }
  .p88-project-tile:hover .p88-project-tile__image img { transform: scale(1.025); }
  .p88-project-tile:hover .p88-project-tile__arrow { transform: translateX(3px); }
}

@media (max-width: 68.749rem) {
  .p88-project-stage__grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: none; }
  .p88-project-tile--lead { grid-column: 1 / -1; grid-row: auto; min-height: 30rem; }
  .p88-project-tile--wide,
  .p88-project-tile--compact-a { grid-column: auto; grid-row: auto; min-height: 21rem; }
  .p88-project-tile--compact-b { grid-column: 1 / -1; grid-row: auto; min-height: 21rem; }
  .p88-project-tile--compact-a .p88-project-tile__title,
  .p88-project-tile--compact-b .p88-project-tile__title { font-size: 1.5rem; }
}

@media (max-width: 42rem) {
  .page-projekte .p6-head { padding-bottom: 2.25rem; }
  .p88-project-stage { padding-bottom: 3.75rem; }
  .p88-project-stage__grid { grid-template-columns: minmax(0,1fr); }
  .p88-project-tile--lead,
  .p88-project-tile--wide,
  .p88-project-tile--compact-a,
  .p88-project-tile--compact-b { grid-column: auto; min-height: 21rem; }
  .p88-project-tile--lead { min-height: 25rem; }
  .p88-project-tile--lead .p88-project-tile__body,
  .p88-project-tile__body { padding: 1.4rem 1.35rem 1.45rem; }
  .p88-project-tile--lead .p88-project-tile__title { font-size: 1.45rem; }
  .p88-project-tile--wide .p88-project-tile__title,
  .p88-project-tile--compact-a .p88-project-tile__title,
  .p88-project-tile--compact-b .p88-project-tile__title { font-size: 1.38rem; }
  .p88-project-tile--lead .p88-project-tile__service,
  .p88-project-tile__service { font-size: .875rem; }
  .p88-project-tile__arrow { right: 1.35rem; bottom: 1.45rem; }
}

@media (max-width: 22rem) {
  .p88-project-tile--lead .p88-project-tile__title { font-size: 1.25rem; }
  .p88-project-tile--wide .p88-project-tile__title,
  .p88-project-tile--compact-a .p88-project-tile__title,
  .p88-project-tile--compact-b .p88-project-tile__title { font-size: 1.2rem; }
  .p88-project-tile__service { padding-right: 2.25rem; font-size: .8125rem; }
}

/* P111: Kundenbilder und Gesellschaftslogo, ohne alte Banner-Claims. */
.p111-korbbogen { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; padding-block: 5rem; }
.p111-korbbogen__intro { margin-bottom: 2rem; }
.p111-korbbogen__intro h2 { margin-bottom: .65rem; }
.p111-korbbogen__intro p:last-child { max-width: 43rem; color: var(--muted); }
.p111-korbbogen__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem 1.25rem; }
.p111-korbbogen__grid figure { margin: 0; }
.p111-korbbogen__grid img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.p111-korbbogen__grid figcaption { margin-top: .75rem; color: var(--muted); font-size: .92rem; }
.p111-estate-visual { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; display: grid; grid-template-columns: minmax(0,.43fr) minmax(0,1fr); gap: 3rem; align-items: center; padding-block: 3rem 1rem; }
.p111-estate-visual__brand { padding: 2rem; background: var(--surface-soft); }
.p111-estate-visual__brand img { width: 100%; height: auto; }
.p111-estate-visual__project figure { margin: 0; }
.p111-estate-visual__project img { display: block; width: 100%; aspect-ratio: 2.35 / 1; object-fit: cover; }
.p111-estate-visual__project figcaption { margin-top: .65rem; color: var(--muted); font-size: .9rem; }
.p111-sitelead { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 5rem; align-items: center; padding-block: 4rem; border-top: 1px solid var(--line); }
.p111-sitelead__image { aspect-ratio: 4 / 5; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p111-sitelead__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.p111-sitelead__copy { max-width: 37rem; }
.p111-sitelead__copy > * { margin-left: 0; margin-right: 0; }
.p111-sitelead h2 { margin: 0; }
.p111-sitelead p:last-child { max-width: 37rem; }
@media (max-width: 48rem) {
  .p111-korbbogen { padding-block: 3.5rem; }
  .p111-estate-visual, .p111-sitelead { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  .p111-estate-visual { padding-block: 2rem 0; }
  .p111-estate-visual__brand { padding: 1.5rem; }
  .p111-sitelead { padding-block: 3rem; }
}
@media (max-width: 40rem) {
  .p111-korbbogen__grid { grid-template-columns: minmax(0,1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .p88-project-tile,
  .p88-project-tile__image img,
  .p88-project-tile__arrow { transition: none; }
  .p88-project-tile:hover,
  .p88-project-tile:hover .p88-project-tile__image img,
  .p88-project-tile:hover .p88-project-tile__arrow { transform: none; }
}

.p6-hero-media { width: min(var(--max),calc(100% - var(--gutter))); margin: 0 auto; padding-top: 3rem; }
.p6-hero-media figure { aspect-ratio: 16 / 8; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p6-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.p6-facts-band { margin-top: 3rem; padding-block: 3rem; border-block: 1px solid var(--line); background: var(--surface-soft); }
.p6-facts { width: min(var(--max),calc(100% - var(--gutter))); margin: 0 auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.p6-fact { min-width: 0; padding: 1.4rem 1.75rem; border-right: 1px solid var(--line); }
.p6-fact:nth-child(3n) { border-right: 0; }
.p6-fact:nth-child(n+4) { border-top: 1px solid var(--line); }
.p6-fact strong { display: block; margin-bottom: .45rem; color: var(--muted); font-size: .75rem; text-transform: uppercase; }

.p6-section { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; padding-block: 6rem; }
.p6-section + .p6-section { border-top: 1px solid var(--line); }
.p6-split { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 5rem; align-items: start; }
.p6-split h2 { max-width: 14ch; margin: 0; }
.p6-copy { max-width: 43rem; }
.p6-copy > :last-child { margin-bottom: 0; }
.p83-project-caption .p6-split { grid-template-columns: minmax(0,1fr); gap: 1.35rem; }
.p83-project-caption .p6-split h2,
.p83-project-caption .p6-copy { max-width: none; }
.p83-project-caption .p6-copy p { max-width: none; margin: 0; }
@media (min-width: 64rem) {
  .p83-project-caption .p6-copy p { white-space: nowrap; }
}
.p6-gallery { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; padding-bottom: 6rem; }
.p6-gallery__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.p6-gallery figure { aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p6-gallery figure:first-child:last-child { grid-column: 1 / -1; aspect-ratio: 16 / 7; }
.p6-gallery__grid > figure:last-child:nth-child(odd):not(:first-child) { grid-column: 1 / -1; aspect-ratio: 16 / 7; }
.p6-gallery img { width: 100%; height: 100%; object-fit: cover; }
.p67-next__head { max-width: 52rem; margin-bottom: 2.75rem; }
.p67-next__head h2 { max-width: 28ch; margin: 0; }
.p67-next__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.25rem; }
.p67-next__grid--two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.p67-next-card { position: relative; min-width: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); transition: border-color 180ms ease; }
.p67-next-card:focus-within { border-color: #aeb6c2; }
.p67-next-card__image { aspect-ratio: 16 / 10; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p67-next-card__image a { display: block; width: 100%; height: 100%; }
.p67-next-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 220ms ease; }
.p67-next-card__body { flex: 1; display: flex; flex-direction: column; min-width: 0; padding: 1.45rem 1.5rem 1.35rem; }
.p67-next-card__kind { margin: 0 0 .7rem; }
.p67-next-card__title { max-width: 20ch; margin: 0 0 .75rem; font-size: 1.42rem; line-height: 1.12; }
.p67-next-card__text { min-height: 3.2em; margin: 0 0 1.25rem; color: var(--muted); font-size: .96rem; line-height: 1.6; }
.p67-next-card__link { margin: auto 0 0; padding-top: 1rem; border-top: 1px solid var(--line); }
.p67-next-card__link a { color: var(--blue-deep); font-size: .92rem; font-weight: 720; text-decoration-color: var(--orange-action); text-decoration-thickness: 2px; text-underline-offset: .35rem; }
.p67-next-card__link a::after { position: absolute; inset: 0; content: ""; }
.p67-next-card__link a:focus-visible { color: var(--orange-deep); }
.p84-service-route { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2rem; align-items: center; margin-bottom: 5rem; padding: 1.55rem 1.65rem; border-top: 2px solid var(--blue-deep); border-bottom: 1px solid var(--line); background: var(--surface); }
.p84-service-route__copy { display: grid; grid-template-columns: 10rem minmax(0,1fr); gap: 1.5rem; align-items: center; }
.p84-service-route__copy > .eyebrow { margin: 0; }
.p84-service-route__details h3 { margin: 0 0 .35rem; font-size: 1.25rem; }
.p84-service-route__details p { max-width: 42rem; margin: 0; font-size: .94rem; line-height: 1.5; }
.p84-service-route__link { margin: 0; }
.p84-service-route__link a { color: var(--blue-deep); font-size: .92rem; font-weight: 720; text-decoration-color: var(--orange-action); text-decoration-thickness: 2px; text-underline-offset: .35rem; white-space: nowrap; }
.p84-service-route__link a::after { position: absolute; inset: 0; content: ""; }
.p84-service-route__link a:focus-visible { outline: 0; box-shadow: none; }
.p84-service-route:focus-within { outline: 3px solid var(--orange-action); outline-offset: 3px; border-color: var(--blue-deep); }
.p84-related__overview { width: fit-content; margin: 2rem 0 0; }
.p84-related__overview a { color: inherit; }

@media (hover: hover) and (pointer: fine) {
  .p84-service-route:hover .p84-service-route__link a { color: var(--orange-deep); }
}

@media (min-width: 42.0625rem) and (max-width: 56rem) {
  .p67-next__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .p67-next__grid:not(.p67-next__grid--two) > .p67-next-card:last-child:nth-child(odd) { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); }
  .p67-next__grid:not(.p67-next__grid--two) > .p67-next-card:last-child:nth-child(odd) .p67-next-card__image { height: 100%; aspect-ratio: auto; }
}

@media (max-width: 42rem) {
  .p67-next__grid,
  .p67-next__grid--two { grid-template-columns: minmax(0,1fr); max-width: none; }
  .p67-next__head { margin-bottom: 2rem; }
  .p67-next-card__text { min-height: 0; }
	.p84-service-route { grid-template-columns: minmax(0,1fr); gap: 1.25rem; margin-bottom: 3.5rem; padding: 1.35rem; }
	.p84-service-route__copy { grid-template-columns: minmax(0,1fr); gap: .6rem; }
	.p84-service-route__link a { white-space: normal; }
}

/* P7 VS Immobilien: ruhige Einordnung statt kleinteiligem Kartenraster. */
.p7-head h1 { max-width: 13ch; }
.p104-heading-line { display: block; }
@media (min-width: 48rem) {
  .p7-head h1 { max-width: none; }
  .p104-heading-line { white-space: nowrap; }
}
.p7-situations { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 2px solid var(--blue-deep); }
.p7-situation { min-width: 0; padding: 2rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.p7-situation:last-child { border-right: 0; }
.p7-situation__number,
.p7-topic__number,
.p7-step__number { margin-bottom: 1rem; color: var(--orange-action); font-size: .78rem; font-weight: 760; }
.p7-situation h3,
.p7-topic h3,
.p7-step h3 { margin-bottom: .75rem; font-size: 1.3rem; }
.p7-situation > :last-child,
.p7-topic > :last-child,
.p7-step > :last-child { margin-bottom: 0; }
.p7-section-head { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 5rem; margin-bottom: 3rem; }
.p7-section-head h2 { max-width: none; margin: 0; font-size: 2.7rem; }
.p7-scope-section .p6-split h2 { max-width: none; font-size: 2.7rem; }
.p7-section-head > div:last-child { max-width: 42rem; }
.p7-register { border-top: 2px solid var(--blue-deep); }
.p7-topic { display: grid; grid-template-columns: 3.5rem minmax(0,.55fr) minmax(0,1fr); gap: 2rem; align-items: start; padding: 1.75rem 0; border-bottom: 1px solid var(--line); }
.p7-topic__number { margin: .25rem 0 0; }
.p7-topic h3,
.p7-topic > p:last-child { margin: 0; }
.p7-placeholder { color: var(--orange-action); font-weight: 760; }
.p7-steps { border-top: 2px solid var(--blue-deep); }
.p7-step { display: grid; grid-template-columns: 3.5rem minmax(0,.45fr) minmax(0,1fr); gap: 1.5rem; align-items: start; padding: 1.4rem 0; border-bottom: 1px solid var(--line); }
.p7-step__number,
.p7-step h3,
.p7-step > p:last-child { margin: 0; }
.p7-proof-band { padding-block: 4.5rem; border-block: 1px solid var(--line); background: var(--surface-soft); color: var(--ink); }
.p7-proof-band__inner { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 5rem; align-items: start; }
.p7-proof-band h2 { max-width: 15ch; margin: 0; color: var(--blue-deep); }
.p7-contact__placeholder { margin: 0; padding: 1rem 1.25rem; border-left: 4px solid var(--orange); background: rgba(255,255,255,.08); color: #fff !important; }
.p7-contact__placeholder .p7-placeholder { color: #fff; }
.p86-estate-contact .contact-band__inner { grid-template-columns: minmax(0,1fr) minmax(16rem,.38fr); gap: clamp(3rem,7vw,7rem); }
.p86-estate-contact .contact-band__action { display: flex; padding-left: 0; flex-direction: column; align-items: flex-start; gap: 1rem; border-left: 0; }
.p86-estate-contact .contact-band__action .wp-block-buttons { margin: 0; }
.p86-estate-contact__meta { margin: 0; color: #dfe6f5 !important; font-size: .94rem; font-weight: 520; line-height: 1.55; }
.p86-estate-contact__meta strong { color: #fff; font-weight: 720; }

/* P8 Ueber uns: echte Menschen und Standort statt generischer Beweiskarten. */
.p8-head { padding-block: 5.5rem 0; border-bottom: 1px solid var(--line); background: var(--surface); }
.p8-head__inner { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 5rem; align-items: start; padding-bottom: 4rem; }
.p8-head h1 { max-width: 12ch; margin: 0; color: var(--blue-deep); font-size: 3.75rem; line-height: 1.04; }
.p8-head__copy { max-width: 42rem; padding-left: 2rem; border-left: 1px solid var(--line); }
.p8-team-hero { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; }
.p8-team-hero figure { aspect-ratio: 16 / 8; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p8-team-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.p8-team-caption { display: grid; grid-template-columns: minmax(0,.35fr) minmax(0,1fr) minmax(0,.7fr); gap: 2rem; align-items: start; padding: 1.5rem 0 2.5rem; border-bottom: 1px solid var(--line); }
.p8-team-caption > * { margin: 0; }
.p8-team-caption .p8-placeholder { font-size: .9rem; }
.p8-section { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; padding-block: 6rem; }
.p8-section + .p8-section { border-top: 1px solid var(--line); }
.p8-person__grid { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 5rem; align-items: center; }
.p8-person__image { aspect-ratio: 4 / 5; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p8-person__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 32%; }
.p8-person__copy { max-width: 43rem; }
.p8-person__copy h2 {
  max-width: none;
  font-size: clamp(1.75rem,8.2vw,3rem);
  white-space: nowrap;
}
.p8-office-team { padding-top: 5rem; }
.p8-office-team__inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.9fr); gap: 5rem; align-items: center; }
.p8-office-team__copy { max-width: 43rem; }
.p8-office-team__copy > * { margin-left: 0; margin-right: 0; }
.p8-office-team__copy h2 {
  max-width: none;
  font-size: clamp(1.75rem, 8.2vw, 3rem);
  white-space: nowrap;
}
.p8-office-team__copy > p:not([class]) { max-width: 39rem; }
.p8-office-team__names { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; margin-top: 2.5rem; }
.p8-office-team__person { padding-top: 1rem; border-top: 2px solid var(--blue-deep); }
.p8-office-team__name { margin: 0 0 .25rem; color: var(--blue-deep); font-size: 1.2rem; font-weight: 780; }
.p8-office-team__role { margin: 0; color: var(--muted); font-size: .92rem; }
.p8-office-team__image { width: min(100%,34rem); aspect-ratio: 4 / 5; margin: 0; justify-self: end; overflow: hidden; background: var(--surface-soft); }
.p8-office-team__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 32%; }
.p112-office-portraits { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; align-items: start; }
.p112-office-card { min-width: 0; }
.p112-office-card__image { margin: 0; overflow: hidden; aspect-ratio: 4 / 5; background: var(--surface-soft); }
.p112-office-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.p112-office-card__name { margin: .85rem 0 .15rem; color: var(--blue-deep); font-size: clamp(1rem,1.25vw,1.2rem); font-weight: 780; line-height: 1.25; }
.p112-office-card__role { margin: 0; color: var(--muted); font-size: .92rem; }
.p8-placeholder { color: var(--orange-action); font-weight: 760; }
.p8-principle-band { padding-block: 0; background: var(--surface); }
.p8-principle-band__inner { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; padding-block: 4rem; border-block: 1px solid var(--line); display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1fr); gap: 5rem; align-items: start; }
.p8-principle-band h2 { max-width: 14ch; margin: 0; color: var(--blue-deep); font-size: clamp(2.15rem,3.1vw,3.2rem); line-height: 1.06; }
.p8-principle-band__inner > .wp-block-group:last-child { max-width: 42rem; padding-top: 2.1rem; }
.p8-principle-band__inner > .wp-block-group:last-child p { margin: 0; font-size: 1.12rem; line-height: 1.65; }
.p8-section-head { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 5rem; margin-bottom: 3rem; }
.p8-section-head h2 { max-width: 15ch; margin: 0; }
.p8-section-head > div:last-child { max-width: 42rem; }
.p8-location-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,.65fr); grid-template-rows: repeat(2,minmax(14rem,1fr)); gap: 1rem; }
.p8-location-grid figure { margin: 0; overflow: hidden; background: var(--surface-soft); }
.p8-location-grid img { width: 100%; height: 100%; object-fit: cover; }
.p8-location-grid__office { grid-row: 1 / 3; min-height: 38rem; }
.p8-location-grid__office img { object-position: center; }
.p8-location-grid__meeting img { object-position: center; }
.p8-location-grid__yard img { object-position: center; }
.p8-location__gate { margin: 1.5rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line); }
.p8-related { padding-block: 5.5rem; }
.p8-related__head { display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1fr); gap: 5rem; align-items: start; margin-bottom: 2.5rem; padding-top: 2.25rem; border-top: 2px solid var(--blue-deep); }
.p8-related__head h2 { max-width: 18ch; margin-bottom: 0; font-size: 2.4rem; }
.p8-related__copy { max-width: 36rem; padding-top: 2.1rem; }
.p8-related__copy > * { margin-left: 0 !important; margin-right: 0 !important; }
.p8-related__copy > p:not([class]) { margin-bottom: 1.25rem; color: var(--muted); }
.p8-related__copy .text-link { margin: 0; text-align: left; }
.p81-project-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.p81-project-card { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); box-shadow: 0 8px 24px rgba(10,24,48,.055); transition: transform 220ms cubic-bezier(.22,1,.36,1), border-color 220ms ease, box-shadow 220ms ease; }
.p81-project-card__image { aspect-ratio: 16 / 10; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p81-project-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 320ms cubic-bezier(.22,1,.36,1); }
.p81-project-card:first-child .p81-project-card__image img { object-position: center 56%; }
.p81-project-card:last-child .p81-project-card__image img { object-position: center 44%; }
.p81-project-card__body { display: flex; min-height: 14.5rem; flex-direction: column; padding: 1.5rem 1.6rem 1.35rem; }
.p81-project-card__body .eyebrow { margin-bottom: .7rem; }
.p81-project-card__title { max-width: 23ch; margin: 0; color: var(--blue-deep); font-size: 1.55rem; line-height: 1.12; overflow-wrap: normal; hyphens: none; }
.p81-project-card__title a { color: inherit; text-decoration: none; }
.p81-project-card__title a::after { position: absolute; z-index: 2; inset: 0; content: ""; }
.p81-project-card__text { max-width: 36rem; margin: .9rem 0 1.35rem; color: var(--muted); }
.p81-project-card__period { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: auto 0 0; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--ink); font-size: .86rem; font-weight: 700; }
.p81-project-card__period::after { color: var(--orange-deep); content: "Projekt ansehen  →"; font-size: .82rem; font-weight: 720; }
.p81-project-card:focus-within { outline: 3px solid var(--orange-action); outline-offset: 3px; border-color: var(--blue-deep); }
.p81-project-card__title a:focus-visible { outline: 0; box-shadow: none; }

@media (hover: hover) and (pointer: fine) {
  .p81-project-card:hover { z-index: 1; transform: translateY(-4px) scale(1.004); border-color: #b9c2d1; box-shadow: 0 18px 42px rgba(10,24,48,.12); }
  .p81-project-card:hover .p81-project-card__image img { transform: scale(1.025); }
  .p81-project-card:hover .p81-project-card__title { color: var(--blue); }
}

@media (prefers-reduced-motion: reduce) {
  .p81-project-card,
  .p81-project-card__image img { transition: none; }
  .p81-project-card:hover,
  .p81-project-card:hover .p81-project-card__image img { transform: none; }
}

/* P9 Kontakt: klarer Erstkontakt, ruhiges Formular und belastbare Zustaende. */
.p9-head { padding-block: 5rem; border-bottom: 1px solid var(--line); background: var(--surface); }
.p9-head__inner { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1fr); gap: 5rem; align-items: center; }
.p9-head__copy h1 { max-width: 12ch; margin: 0; color: var(--blue-deep); font-size: 3.75rem; line-height: 1.04; }
.p9-head__copy .lead { max-width: 37rem; }
.p9-head__actions { margin-top: 2rem; }
.p9-head__image { height: 31rem; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p9-head__image img { width: 100%; height: 100%; object-fit: cover; object-position: 68% center; }
.p9-direct { border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.p9-direct__inner { width: min(var(--max),calc(100% - var(--gutter))); margin-inline: auto; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.p9-direct__item { min-height: 8rem; padding: 1.65rem 2rem; border-right: 1px solid var(--line); }
.p9-direct__item:first-child { padding-left: 0; }
.p9-direct__item:last-child { border-right: 0; }
.p9-direct__item p { margin: 0; }
.p9-direct__item > p:last-child { margin-top: .65rem; color: var(--blue-deep); font-size: 1.2rem; font-weight: 720; }
.p9-direct__schedule { display: grid; gap: .75rem; margin: .65rem 0 0; padding: 0; color: var(--blue-deep); list-style: none; }
.p9-direct__schedule li { display: grid; gap: .1rem; margin: 0; padding: 0; }
.p9-direct__schedule strong { color: var(--muted); font-size: .78rem; font-weight: 700; line-height: 1.4; }
.p9-direct__schedule span { display: block; color: var(--blue-deep); font-size: 1rem; font-weight: 720; font-variant-numeric: tabular-nums; line-height: 1.4; white-space: nowrap; }
.p9-main { width: min(70rem,calc(100% - var(--gutter))); margin-inline: auto; padding-block: 5.5rem 6rem; scroll-margin-top: 7rem; }
.p9-main__intro { max-width: 48rem; margin: 0; }
.p9-main__intro h2 { max-width: 24ch; margin-bottom: 1.25rem; font-size: clamp(2.35rem,4vw,3.35rem); line-height: 1.06; }
.p9-main__intro > p:not([class]) { max-width: 43rem; }
.p9-team-note { max-width: 43rem; margin: 1.25rem 0 0; color: var(--muted); }
.p9-hints { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 3rem 0 0; padding: 0; border-block: 1px solid var(--line); list-style: none; }
.p9-hints li { min-width: 0; padding: 1.5rem; border-right: 1px solid var(--line); }
.p9-hints li:first-child { padding-left: 0; }
.p9-hints li:last-child { border-right: 0; }
.p9-hints strong { color: var(--blue-deep); }
.p9-hints span { display: block; margin-top: .45rem; color: var(--muted); font-size: .93rem; line-height: 1.5; }
.p9-request-note { max-width: 43rem; margin: 1.25rem 0 0; color: var(--muted); font-size: .92rem; }
.p9-placeholder { color: var(--orange-action); font-weight: 760; }
.p9-form-panel { width: min(60rem,100%); margin: 0 auto; padding: 0; scroll-margin-top: 6.5rem; background: transparent; }
.p60-form-frame { overflow: hidden; border: 1px solid #c6ceda; border-radius: 4px; background: #f1f3f6; }
.p9-form { display: block; width: 100%; padding: clamp(1.75rem,4vw,2.5rem); }
.p60-form-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2rem; align-items: start; padding-bottom: 2rem; border-bottom: 1px solid #cfd5df; }
.p60-form-head__copy > * { margin: 0; }
.p60-form-kicker { color: var(--blue); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.p60-form-head h2 { max-width: none; margin-top: .55rem; color: var(--blue-deep); font-size: clamp(2rem,4vw,2.5rem); line-height: 1.06; }
.p60-form-head__copy > p:last-child { max-width: 42rem; margin-top: 1rem; color: var(--muted); font-size: 1rem; line-height: 1.6; }
.p60-required-note { margin: .2rem 0 0; color: var(--ink); font-size: .82rem; font-weight: 700; white-space: nowrap; }
.p60-form-body { display: block; }
.p60-form-group { min-width: 0; margin: 0; padding: 1.75rem 0 0; border: 0; }
.p60-form-group + .p60-form-group { margin-top: 1.75rem; padding-top: 0; }
.p60-group-help { margin-top: .35rem !important; }
.p60-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem 1.5rem; margin-top: 1rem; }
.p9-field { display: grid; gap: .55rem; min-width: 0; }
.p9-field--wide { grid-column: 1 / -1; }
.p9-form label { display: block; color: var(--ink); font-size: .9rem; font-weight: 720; }
.p60-required { color: var(--orange-action); }
.p9-form input,
.p9-form select,
.p9-form textarea { width: 100%; min-height: 3.5rem; padding: .9rem 1rem; border: 1px solid #707b8a; border-radius: 4px; background: #fff; color: var(--ink); font: inherit; transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease; }
.p9-form textarea { min-height: 10rem; resize: vertical; line-height: 1.55; }
.p9-form ::placeholder { color: var(--muted); opacity: 1; }
.p9-form input:hover,
.p9-form select:hover,
.p9-form textarea:hover { border-color: var(--blue-deep); background: #fff; }
.p9-form input:focus-visible,
.p9-form select:focus-visible,
.p9-form textarea:focus-visible { outline: 3px solid #fff; outline-offset: 2px; border-color: var(--blue-deep); background: #fff; box-shadow: 0 0 0 5px var(--blue-deep); }
.p9-contact-group { min-width: 0; }
.p9-contact-fields { margin-top: 1rem; }
.p9-form .field-help { margin: 0; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.p9-form .field-help.is-error { color: #a82c18; font-weight: 680; }
.p9-form .field-error { margin: 0; color: #a82c18; font-size: .84rem; font-weight: 680; }
.p9-form [aria-invalid="true"] { border-color: #a82c18; background: #fff8f6; }
.p9-form__footer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2rem; align-items: center; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid #cfd5df; }
.p9-form__footer .form-hint { grid-column: auto; max-width: 42rem; margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.6; }
.p9-form__footer .form-hint a { color: var(--blue-deep); font-weight: 680; }
.p86-form-next-step,
.p86-form-privacy { display: block; }
.p86-form-next-step { margin-bottom: .55rem; color: var(--ink); font-size: .9rem; }
.p86-form-next-step strong { color: var(--blue-deep); font-weight: 720; }
.p9-form button { min-width: 11.5rem; min-height: 3.5rem; padding-inline: 1.4rem; }
.form-feedback { margin: 0; padding: 1rem clamp(1.5rem,4vw,2.5rem); border-bottom: 1px solid #cfd5df; border-left: 4px solid var(--blue-deep); background: #e9effb; color: var(--ink); font-weight: 680; }
.form-feedback.error { border-left-color: var(--orange-action); background: #fff0eb; }
.form-error-summary { margin: 0; padding: 1rem clamp(1.5rem,4vw,2.5rem); border-bottom: 1px solid #ead0c8; border-left: 4px solid var(--orange-action); background: #fff0eb; }
.form-error-summary p { margin: 0 0 .5rem; }
.form-error-summary ul { margin: 0; padding-left: 1.2rem; }
.form-error-summary a { color: var(--blue-deep); }

@media (max-width: 68.749rem) {
  .p5-split h2 { font-size: 2.05rem; }
  .p6-head h1 { font-size: 2.65rem; }
  .p6-index__intro h2 { font-size: 2.65rem; }
  .p4-section-head,
  .p4-proof__head,
  .p4-team__grid { gap: 3rem; }
  .p5-head__inner,
  .p5-split,
  .p5-related,
  .p6-head__inner,
  .p6-index__intro,
  .p6-split,
  .p7-section-head,
  .p7-proof-band__inner,
  .p8-head__inner,
  .p8-person__grid,
  .p8-office-team__inner,
  .p8-principle-band__inner,
  .p8-section-head,
  .p8-related__inner { gap: 3rem; }
  .p9-head__inner { gap: 3rem; }
  .p9-direct__inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .p9-direct__item:nth-child(2n) { border-right: 0; }
  .p9-direct__item:nth-child(odd) { padding-left: 0; }
  .p9-direct__item:nth-child(n+3) { border-top: 1px solid var(--line); }
  .p9-hints { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .p9-hints li:nth-child(2n) { border-right: 0; }
  .p9-hints li:nth-child(n+3) { border-top: 1px solid var(--line); }
  .p9-hints li:nth-child(3) { padding-left: 0; }
  .p41-path { grid-template-columns: minmax(12rem,.32fr) minmax(0,1fr); gap: 2rem; }
  .p41-overview__intro + .p41-path .p41-service-list { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .p41-overview__intro + .p41-path + .p41-path .p41-service-list,
  .p41-overview__intro + .p41-path + .p41-path + .p41-path .p41-service-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .p41-service-list strong { font-size: 1.08rem; }
  .p5-head__inner { grid-template-columns: minmax(0,1fr); gap: 2.5rem; }
  .p5-head h1 { max-width: 18ch; }
  .p5-head__copy { max-width: 48rem; margin-top: 0; margin-left: 0 !important; margin-right: 0 !important; padding-top: 2rem; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
}

@media (max-width: 48rem) {
  .p4-hero { min-height: 0; padding-top: min(56.25vw,13.25rem); background: var(--charcoal); }
  .p4-hero .wp-block-cover__image-background { top: 0; bottom: auto; height: min(56.25vw,13.25rem); object-position: center 35%; transform: scale(1.18); transform-origin: 35% 10%; }
  .p4-hero .hero-panel { width: 100%; min-height: 28rem; margin-top: 0; }
  .p4-services,
  .p4-proof-band,
  .p4-team { padding-block: 4rem; }
  .p4-section-head,
  .p4-proof__head,
  .p4-team__grid,
  .p4-estate { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .p4-team__copy { order: -1; }
  .p4-section-head h2,
  .p4-proof__head h2 { max-width: none; }
  .p4-section-head__copy { padding-top: 1.5rem; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .p4-services .service-register { grid-template-columns: minmax(0,1fr); }
  .p4-services .service-register__group > h3 { min-height: 0; }
  .p4-proof__media { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; align-items: start; margin-top: 2.25rem; }
  .p63-project-tile figure { height: auto; aspect-ratio: 4 / 3; }
  .p4-estate-band { padding-block: 4rem; }
  .p4-estate__mark { min-height: 8rem; justify-content: center; padding: 1.25rem; border: 1px solid var(--line); border-top: 4px solid var(--blue-deep); }
  .p4-estate__mark img { width: min(100%,17rem); height: auto; }
  .p5-head { padding-block: 3rem 4rem; }
  .p5-head__inner,
  .p5-split,
  .p5-related { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .p5-head h1 { max-width: none; font-size: 2.5rem; }
  .p5-head__copy { padding-top: 1.5rem; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .p5-section { padding-block: 3.75rem; }
  .p5-split h2 { max-width: none; font-size: 1.8rem; }
  .p5-scope-band { padding-block: 3.75rem; }
  .p5-visual { padding-bottom: 3.75rem; }
  .p5-visual figure,
  .p5-visual--portrait figure { aspect-ratio: 4 / 3; }
  .p5-visual--putz img { object-position: 67% 48%; }
  .p5-overview-register { padding-bottom: 3.75rem; }
  .p5-overview-visual { grid-template-columns: minmax(0,1fr) minmax(9rem,.42fr); gap: .75rem; }
  .p45-service-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
  .p45-service-gallery figure:first-child { grid-column: 1 / -1; }
  .p45-service-gallery img { height: auto; aspect-ratio: 4 / 3; }
  .p45-service-gallery figure:first-child img { aspect-ratio: 16 / 8; }
  .p45-request-grid { grid-template-columns: minmax(0,1fr); }
  .p45-request-grid li,
  .p45-request-grid li:nth-child(even) { padding: 1.25rem 0; border-left: 0; }
  .p5-faq { display: block; width: min(50rem,calc(100% - var(--gutter))); }
  .p5-faq__head { margin-bottom: 2rem; }
  .p41-overview__intro,
  .p41-path { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .p41-overview__intro + .p41-path .p41-service-list { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .p41-overview__intro + .p41-path + .p41-path .p41-service-list,
  .p41-overview__intro + .p41-path + .p41-path + .p41-path .p41-service-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .p6-head { padding-block: 3rem 4rem; }
  .p6-head__inner,
  .p6-index__intro,
  .p6-entry,
  .p6-split,
  .p6-next { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .p6-head h1 { max-width: none; font-size: 1.95rem; overflow-wrap: normal; hyphens: none; }
  .p6-head__copy { padding-top: 1.5rem; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .p6-index,
  .p6-section { padding-block: 3.75rem; }
  .p6-index__list { gap: 3rem; }
  .p6-index__intro h2 { max-width: none; font-size: 2rem; hyphens: none; }
  .p6-index__intro > div:last-child { max-width: none; padding: 1.5rem 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .p6-entry:nth-child(even) .p6-entry__media { order: 0; }
  .p6-entry__media { min-height: 0; aspect-ratio: 4 / 3; }
  .p6-entry__copy { padding: 1.75rem 0; }
  .p6-entry__copy h2 { font-size: 1.65rem; line-height: 1.08; }
  .p6-hero-media figure { aspect-ratio: 4 / 3; }
  .p6-facts { grid-template-columns: minmax(0,1fr); }
  .p6-fact,
  .p6-fact:nth-child(3n) { border-right: 0; }
  .p6-fact:nth-child(n+2) { border-top: 1px solid var(--line); }
  .p6-gallery { padding-bottom: 3.75rem; }
  .p6-gallery__grid { grid-template-columns: minmax(0,1fr); }
  .p6-gallery figure,
  .p6-gallery figure:first-child:last-child,
  .p6-gallery__grid > figure:last-child:nth-child(odd):not(:first-child) { grid-column: auto; aspect-ratio: 4 / 3; }
  .p7-situations,
  .p7-section-head,
  .p7-proof-band__inner { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .p7-situation { padding: 1.75rem 0; border-right: 0; }
  .p7-topic,
  .p7-step { grid-template-columns: 2.5rem minmax(0,1fr); gap: 1rem; }
  .p7-topic > p:last-child,
  .p7-step > p:last-child { grid-column: 2; }
  .p7-proof-band { padding-block: 4rem; }
  .p8-head { padding-top: 3rem; }
  .p8-head__inner,
  .p8-person__grid,
  .p8-office-team__inner,
  .p8-principle-band__inner,
  .p8-section-head,
  .p8-related__head { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  .p8-head h1 { max-width: none; font-size: 2.5rem; }
  .p8-head__copy { padding-top: 1.5rem; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .p8-team-hero figure { aspect-ratio: 3 / 2; }
  .p8-team-caption { grid-template-columns: minmax(0,1fr); gap: 1rem; }
  .p8-section { padding-block: 3.75rem; }
  .p8-person__image { aspect-ratio: 4 / 5; }
  .p8-office-team { padding-top: 3.75rem; }
  .p8-office-team__image { width: 100%; max-width: none; aspect-ratio: 4 / 3; justify-self: stretch; }
  .p8-office-team__image img { object-position: center 28%; }
  .p112-office-portraits { max-width: 36rem; }
  .p8-principle-band__inner { gap: 1.5rem; padding-block: 3.25rem; }
  .p8-principle-band h2 { max-width: 16ch; font-size: 2.25rem; }
  .p8-principle-band__inner > .wp-block-group:last-child { max-width: none; padding-top: 0; }
  .p8-principle-band__inner > .wp-block-group:last-child p { font-size: 1rem; line-height: 1.6; }
  .p8-location-grid { grid-template-columns: minmax(0,1fr); grid-template-rows: none; }
  .p8-location-grid figure,
  .p8-location-grid__office { grid-row: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .p8-related__copy { max-width: none; padding-top: 0; }
  .p9-head { padding-block: 3rem; }
  .p9-head__inner { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .p9-head__copy h1 { max-width: none; font-size: 2.5rem; }
  .p9-head__image { height: auto; aspect-ratio: 4 / 3; }
  .p9-main { padding-block: 4rem; }
  .p9-form-panel { padding: 0; }
  .contact-band h2 { font-size: 2rem; }
}

@media (max-width: 42rem) {
  .p81-project-grid { grid-template-columns: minmax(0,1fr); }
  .p81-project-card__body { min-height: 0; }
}

@media (max-width: 22rem) {
  .p81-project-card__title { font-size: 1.25rem; }
}

@media (max-width: 34rem) {
  .p9-direct__inner { grid-template-columns: minmax(0,1fr); }
  .p9-direct__item,
  .p9-direct__item:first-child,
  .p9-direct__item:nth-child(odd) { min-height: 0; padding: 1.5rem 0; border-top: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .p9-direct__item:last-child { border-bottom: 0; }
  .p9-form-panel { scroll-margin-top: 4.75rem; }
  .p9-form { padding: 1rem; }
  .p60-form-head { grid-template-columns: minmax(0,1fr); gap: .65rem; padding-bottom: 1.25rem; }
  .p60-form-head h2 { font-size: 1.9rem; }
  .p60-form-head__copy > p:last-child { margin-top: .75rem; font-size: .96rem; line-height: 1.55; }
  .p60-required-note { margin: 0; }
  .p60-form-group { padding-top: 1.25rem; }
  .p60-form-group + .p60-form-group { margin-top: 1.25rem; padding-top: 0; }
  .p60-field-grid,
  .p9-contact-fields { grid-template-columns: minmax(0,1fr); }
  .p9-form__footer { grid-template-columns: minmax(0,1fr); gap: 1.25rem; align-items: start; margin-top: 1.5rem; padding-top: 1.25rem; }
}

@media (max-width: 30rem) {
  .p8-office-team__names { grid-template-columns: minmax(0,1fr); gap: 1.25rem; }
  .p6-head h1 { font-size: 1.8rem; }
  .p4-proof__media { grid-template-columns: minmax(0,1fr); }
  .p63-project-tile figure { aspect-ratio: 4 / 3; }
  .p63-project-tile__label a { min-height: 7.75rem; padding: 1.1rem 1.15rem 1rem; }
  .p63-project-tile__label a > span:first-child { font-size: 1.12rem; }
  .p63-project-tile__period { white-space: normal; }
  .p5-overview-visual { grid-template-columns: minmax(0,1fr); }
  .p5-overview-visual figure:first-child,
  .p5-overview-visual figure:last-child { aspect-ratio: 4 / 3; }
  .p45-service-gallery { grid-template-columns: minmax(0,1fr); }
  .p45-service-gallery figure:first-child { grid-column: auto; }
  .p45-service-gallery figure:first-child img { aspect-ratio: 4 / 3; }
  .p41-overview { padding-block: 4rem; }
  .p41-overview__intro,
  .p41-path { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .p41-overview__intro h2 { font-size: 2.25rem; }
  .p41-path { padding-block: 2.25rem; }
  .p41-service-list { grid-template-columns: minmax(0,1fr); }
  .p9-form-panel { padding: 0; }
  .p9-form button { width: 100%; }
  .p9-hints { grid-template-columns: minmax(0,1fr); }
  .p9-hints li,
  .p9-hints li:nth-child(3) { padding: 1.15rem 0; border-right: 0; border-top: 1px solid var(--line); }
  .p9-hints li:first-child { border-top: 0; }
}

.site-footer { padding: 0 0 1.5rem; border-top: 4px solid var(--orange); background: #0c1830; color: #dfe6f5; }
.site-footer--joined { border-top: 1px solid rgba(255,255,255,.2); }
.site-footer__lead { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 4rem; align-items: center; padding-block: 2.5rem; }
.site-footer__signature { display: flex; min-width: 0; align-items: center; padding-left: 1rem; border-left: 4px solid var(--orange); }
.site-footer__signature p { margin: 0; }
.site-footer__name { margin-bottom: .3rem !important; color: #fff !important; font-size: 1.55rem; font-weight: 760; line-height: 1; }
.site-footer__signature div > p:last-child { max-width: 24rem; color: #b9c5dc; }
.site-footer__direct { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; }
.site-footer__direct a { display: grid; min-width: 0; min-height: 3.25rem; align-content: center; gap: .25rem; padding: .25rem 0 .65rem; border-bottom: 2px solid rgba(255,255,255,.5); color: #fff; text-decoration: none; transition: border-color 160ms ease, color 160ms ease; }
.site-footer__direct a:hover,
.site-footer__direct a:focus-visible { border-bottom-color: var(--orange); color: #fff; }
.site-footer__direct span { color: #c6d0e3; font-size: .8125rem; font-weight: 700; text-transform: uppercase; }
.site-footer__direct strong { min-width: 0; overflow-wrap: anywhere; font-size: 1.08rem; }
.site-footer__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 3rem; padding-block: 2.25rem; border-top: 1px solid rgba(255,255,255,.16); }
.site-footer--joined .site-footer__grid { border-top: 0; }
.site-footer h2 { margin-bottom: .75rem; color: #fff; font-size: .8125rem; line-height: 1.35; text-transform: uppercase; }
.site-footer nav { display: flex; flex-direction: column; align-items: flex-start; }
.site-footer nav a { display: inline-flex; min-height: 2.75rem; align-items: center; padding-block: .45rem; color: #dfe6f5; text-decoration-color: transparent; }
.site-footer nav a:hover,
.site-footer nav a:focus-visible { color: #fff; text-decoration-color: currentcolor; }
.site-footer address { color: #dfe6f5; font-style: normal; line-height: 1.7; }
.site-footer__location-links { display: grid; gap: .35rem; margin-top: .9rem; }
.site-footer__location-links a { width: fit-content; color: #fff; text-decoration-color: rgba(255,255,255,.45); text-underline-offset: .2rem; }
.site-footer__location-links a:hover,
.site-footer__location-links a:focus-visible { text-decoration-color: var(--orange); }
.site-footer__schedule { display: grid; gap: 1.125rem; margin: 0; }
.site-footer__schedule dt { margin: 0 0 .25rem; color: #b9c5dc; font-size: .875rem; line-height: 1.5; }
.site-footer__schedule dd { display: grid; gap: .125rem; margin: 0; color: #fff; font-size: 1rem; line-height: 1.5; font-variant-numeric: tabular-nums; }
.site-footer__schedule dd span { white-space: nowrap; }
.site-footer address a,
.p9-direct__item > p:last-child a { display: inline-flex; min-height: 1.5rem; align-items: center; }
.site-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.16); color: #aebbd3; font-size: .8125rem; }
.site-footer__bottom p { margin: 0; color: #aebbd3; }

/* Dezente Scroll-Einblendung: wird nur durch JavaScript aktiviert. */
.vsbp-reveal {
  opacity: 0;
  transform: translateY(1.125rem);
  transition: opacity 520ms cubic-bezier(.22,1,.36,1), transform 520ms cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform;
}
.vsbp-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .vsbp-reveal { opacity: 1; transform: none; transition: none; }
}

@media (max-width: 68.749rem) {
  .desktop-nav { display: none; }
  .menu-trigger { display: inline-flex; }
	.site-footer__lead { gap: 3rem; }
	.site-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

.menu-open .site-header .menu-trigger { visibility: hidden; }

@media (min-width: 62rem) and (max-width: 68.749rem) {
  .desktop-nav { display: flex; }
  .menu-trigger { display: none; }
  .site-footer__grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem; }
}

@media (max-width: 48.875rem) {
  .admin-bar .mobile-menu { top: 46px; }
}

@media (max-width: 48rem) {
  .shell { width: min(calc(100% - 2rem),76rem); }
  .site-header__inner { min-height: 4.75rem; }
  .brand { width: 9.5rem; height: 3.75rem; }
  .page-intro { padding-block: 2rem 4rem; }
  .page-intro__grid,
  .project-record,
  .contact-band__inner { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .page-intro__grid .wp-block-post-title { font-size: 2.5rem; }
  .page-intro__copy { padding-top: 1.5rem; padding-left: 0; border-top: 1px solid #d9dde4; border-left: 0; }
  .service-register__group { grid-template-columns: minmax(0,1fr); gap: 0; }
  .service-register__group > h3 { padding: .35rem .75rem .5rem; }
  .service-register__list a { min-height: 4.25rem; grid-template-columns: 2rem minmax(0,1fr) 1.5rem; gap: .65rem; font-size: 1.18rem; }
  .project-record__media { min-height: 20rem; }
  .contact-band__action { padding-top: 2rem; padding-left: 0; border-top: 1px solid rgba(255,255,255,.25); border-left: 0; }
	.p86-estate-contact .contact-band__inner { grid-template-columns: minmax(0,1fr); gap: 2rem; }
	.p86-estate-contact .contact-band__action { padding-top: 0; border-top: 0; }
	.p86-estate-contact .wp-block-button,
	.p86-estate-contact .wp-block-button__link { width: 100%; }
  .site-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem 1.5rem; }
	.site-footer__lead { grid-template-columns: minmax(0,1fr); gap: 2rem; padding-block: 2.5rem; }
}

@media (max-width: 30rem) {
	.p4-hero .wp-block-cover__image-background { transform: scale(1.27); transform-origin: 35% 56%; }
	h2 { font-size: 2rem; }
	.p7-section-head h2 { font-size: 1.8rem; }
	.p7-scope-section .p6-split h2 { font-size: 1.8rem; }
	.p9-contact-fields { grid-template-columns: minmax(0,1fr); }
	.mobile-menu { grid-template-columns: 1fr; }
	.mobile-menu__backdrop { display: none; }
	.mobile-menu__panel { width: 100%; }
	.site-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem 1rem; padding-block: 2rem; }
	.site-footer__direct { grid-template-columns: minmax(0,1fr); gap: 1.25rem; }
	.site-footer__signature { align-items: flex-start; }
	.site-footer__bottom { padding-top: 1.25rem; }
	.contact-band__phone { display: grid; gap: .25rem; }
	.contact-band__phone a { white-space: nowrap; }
	.p41-overview .p41-path .p41-service-list { grid-template-columns: minmax(0,1fr) !important; }
}

@media (max-width: 22rem) {
  .p67-next-card__title { font-size: 1.24rem; }
	.p5-head h1 { font-size: 2rem; }
	.p5-split h2 { font-size: 1.5rem; }
	.contact-band h2 { font-size: 1.75rem; }
	.p6-head h1 { font-size: 1.5rem; }
	.p6-entry__copy h2 { font-size: 1.4rem; overflow-wrap: normal; hyphens: none; }
	.p6-entry__facts li { grid-template-columns: minmax(0,1fr); gap: .35rem; }
	.site-footer__grid { grid-template-columns: minmax(0,1fr); }
}

/* P75: eindeutige Linkkarten reagieren als geschlossene, ruhige Einheit. */
.p6-entry,
.p63-project-tile,
.p67-next-card {
  position: relative;
  transition: transform 200ms cubic-bezier(.22,1,.36,1), border-color 200ms ease, box-shadow 200ms ease;
}

.p6-entry {
  overflow: hidden;
  border: 1px solid var(--line);
  border-top: 2px solid var(--blue-deep);
  box-shadow: 0 8px 24px rgba(10,24,48,.055);
}
.p6-entry__copy { position: static; border-bottom: 0; }
.p6-entry__media img { transition: transform 280ms cubic-bezier(.22,1,.36,1); }
.p6-entry .text-link a::after,
.p63-project-tile__label a::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  content: "";
}
.p6-entry:focus-within,
.p63-project-tile:focus-within,
.p67-next-card:focus-within {
  outline: 3px solid var(--orange-action);
  outline-offset: 3px;
  border-color: var(--blue-deep);
}
.p6-entry .text-link a:focus-visible,
.p63-project-tile__label a:focus-visible,
.p67-next-card__link a:focus-visible {
  outline: 0;
  box-shadow: none;
}

.p63-project-tile__label a { transition: border-color 200ms ease,color 200ms ease; }

.p67-next-card {
  box-shadow: 0 8px 24px rgba(10,24,48,.055);
}
.p67-next-card__image img { transition: transform 280ms cubic-bezier(.22,1,.36,1); }

.p41-service-list a {
  box-shadow: 0 6px 18px rgba(10,24,48,.04);
  transition: transform 200ms cubic-bezier(.22,1,.36,1), border-color 200ms ease, background-color 200ms ease, box-shadow 200ms ease;
}
.p41-service-list a:focus-visible {
  outline: 3px solid var(--orange-action);
  outline-offset: 3px;
  border-color: var(--blue-deep);
  box-shadow: 0 10px 26px rgba(10,24,48,.1);
}

@media (hover: hover) and (pointer: fine) {
  .p6-entry:hover,
  .p63-project-tile:hover,
  .p67-next-card:hover,
  .p41-service-list a:hover {
    z-index: 1;
    transform: translateY(-3px) scale(1.003);
  }
  .p6-entry:hover { transform: translateY(-3px) scale(1.002); }
  .p41-service-list a:hover { transform: translateY(-2px); }
  .p6-entry:hover,
  .p63-project-tile:hover,
  .p67-next-card:hover,
  .p41-service-list a:hover {
    border-color: #b9c2d1;
    box-shadow: 0 16px 36px rgba(10,24,48,.11);
  }
  .p6-entry:hover .p6-entry__media img { transform: scale(1.015); }
  .p63-project-tile:hover img,
  .p67-next-card:hover .p67-next-card__image img { transform: scale(1.025); }
  .p6-entry:hover .text-link--arrow::after,
  .p63-project-tile:hover .p63-project-tile__label a > span:first-child { color: var(--blue); }
  .p67-next-card:hover .p67-next-card__link a { color: var(--orange-deep); }
  .p41-service-list a:hover::after { transform: translateX(.2rem); }
  .p6-entry:has(a:active),
  .p63-project-tile:has(a:active),
  .p67-next-card:has(a:active),
  .p41-service-list a:active { transform: translateY(-1px) scale(1.001); }
}

@media (prefers-reduced-motion: reduce) {
  .p6-entry,
  .p6-entry__media img,
  .p63-project-tile,
  .p63-project-tile img,
  .p67-next-card,
  .p67-next-card__image img,
  .p41-service-list a { transition: none; }
  .p6-entry:hover,
  .p6-entry:hover .p6-entry__media img,
  .p63-project-tile:hover,
  .p63-project-tile:hover img,
  .p67-next-card:hover,
  .p67-next-card:hover .p67-next-card__image img,
  .p41-service-list a:hover { transform: none; }
}

@media (forced-colors: active) {
  .p6-entry:focus-within,
  .p63-project-tile:focus-within,
  .p67-next-card:focus-within,
  .p41-service-list a:focus-visible {
    outline: 3px solid Highlight;
    border-color: Highlight;
    box-shadow: none;
  }
}

/* P97 Jubilaeum: ein zusammenhaengendes, kompaktes Startseitenband. */
.p89-anniversary-strip { border-bottom: 1px solid #233b69; background: var(--blue-deep); color: #fff; }
.p89-anniversary-strip__inner {
  display: grid;
  min-height: 20.5rem;
  grid-template-columns: minmax(0,1.38fr) minmax(24rem,1fr);
  gap: 0;
  align-items: stretch;
}
.p97-anniversary-strip__content {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(18rem,.86fr) minmax(0,1.14fr);
  gap: 2rem;
  align-items: center;
  padding: 2.75rem 3.25rem 2.75rem 0;
}
.p89-anniversary-mark { display: flex; min-width: 0; align-items: center; gap: 1rem; margin: 0; padding: 0; border: 0; }
.p89-anniversary-mark__number { margin: 0; color: #fff; font-size: 6.75rem; font-weight: 820; font-variant-numeric: lining-nums tabular-nums; line-height: .78; }
.p89-anniversary-mark__label { margin: 0; color: #fff; font-size: .96rem; font-weight: 760; line-height: 1.25; white-space: nowrap; }
.p89-anniversary-mark__label span { display: block; margin-top: .45rem; color: #cbd4e5; font-size: .72rem; font-weight: 650; }
.p89-anniversary-strip__copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; margin: 0; padding: 0; }
.p89-anniversary-strip__copy .eyebrow { margin: 0 0 .65rem; color: #dfe6f5; }
.p89-anniversary-strip__copy h2 { max-width: 18ch; margin: 0; color: #fff; font-size: 2.15rem; line-height: 1.05; }
.p89-anniversary-strip__details { margin: 1rem 0 .75rem; color: #dfe6f5; font-size: .96rem; font-weight: 590; line-height: 1.48; }
.p89-anniversary-strip__details span { display: block; }
.p89-anniversary-strip__link { margin: 0; }
.p89-anniversary-strip__link .text-link { gap: .65rem; border-bottom-color: var(--orange); color: #fff; }
.p89-anniversary-strip__link .text-link:hover { border-bottom-color: #fff; color: #fff; }
.p89-anniversary-strip__image { min-height: 20.5rem; margin: 0; overflow: hidden; background: #0c1830; }
.p89-anniversary-strip__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }

.p95-anniversary-hero { padding: 0; background: var(--blue-deep); }
.p95-anniversary-hero__inner { display: grid; width: min(var(--max),calc(100% - var(--gutter))); grid-template-areas: "image" "copy"; grid-template-columns: minmax(0,1fr); overflow: visible; }
.p95-anniversary-hero__image { position: relative; grid-area: image; aspect-ratio: 16 / 8.5; min-width: 0; min-height: 0; margin: 0; overflow: hidden; background: #eaf0f5; }
.p95-anniversary-hero__image::after { display: none; }
.p95-anniversary-hero__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; }
.p95-anniversary-hero__content {
  display: grid;
  min-width: 0;
  grid-area: copy;
  grid-template-areas:
    "eyebrow lead date"
    "title lead date";
  grid-template-columns: minmax(17rem,.82fr) minmax(20rem,1.18fr) minmax(13rem,.55fr);
  gap: .75rem 3.5rem;
  align-items: center;
  padding: 3.25rem 0 3.5rem;
  background: var(--blue-deep);
}
.p95-anniversary-hero__content .eyebrow { grid-area: eyebrow; align-self: end; margin: 0; padding-left: 1rem; border-left: 4px solid var(--orange); color: #fff; text-transform: none; }
.p95-anniversary-hero__content h1 { max-width: 10ch; grid-area: title; align-self: start; margin: 0; color: #fff; font-size: 3.35rem; line-height: .98; }
.p95-anniversary-hero__lead { max-width: 31rem; grid-area: lead; margin: 0; color: #f1f4fa; font-size: 1.08rem; }
.p95-anniversary-hero__date { width: 100%; grid-area: date; margin: 0; padding-top: 1rem; border-top: 2px solid var(--orange); color: #fff; font-size: 1rem; font-weight: 720; line-height: 1.55; }

.p89-event-details { padding-block: 6.5rem; border-bottom: 1px solid var(--line); background: var(--surface); }
.p89-event-details__inner { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); gap: 5rem; align-items: start; }
.p89-event-details__intro > * { margin-left: 0 !important; margin-right: 0 !important; }
.p89-event-details__intro h2 { max-width: 12ch; margin-bottom: 1.35rem; color: var(--blue-deep); font-size: 3.05rem; line-height: 1.04; }
.p89-event-details__intro > p:last-child { max-width: 31rem; margin-bottom: 0; color: var(--muted); }
.p89-event-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem 2.5rem; }
.p89-event-fact { min-width: 0; padding: 1.5rem 0 0; border-top: 3px solid var(--blue-deep); }
.p89-event-fact__label { margin: 0 0 .75rem; color: var(--blue); font-size: .75rem; font-weight: 760; text-transform: uppercase; }
.p89-event-fact__value { margin: 0; color: var(--blue-deep); font-size: 1.22rem; font-weight: 720; line-height: 1.35; }
.p95-photo-note { padding-block: 2.25rem; border-bottom: 1px solid var(--line); background: #eef2f7; }
.p95-photo-note__inner { display: grid; grid-template-columns: minmax(10rem,.35fr) minmax(0,1.65fr); gap: 2rem; align-items: center; }
.p95-photo-note__inner .eyebrow,
.p95-photo-note__inner p { margin: 0; }
.p95-photo-note__inner > p:last-child { max-width: 54rem; color: var(--muted); }

.p95-anniversary-gallery { padding-block: 6.5rem; background: var(--paper); }
.p95-anniversary-gallery__intro { display: grid; grid-template-columns: minmax(18rem,.7fr) minmax(0,1.3fr); gap: 5rem; align-items: end; margin-bottom: 3rem; }
.p95-anniversary-gallery__intro > * { margin-left: 0 !important; margin-right: 0 !important; }
.p95-anniversary-gallery__intro h2 { max-width: 14ch; margin: 0; color: var(--blue-deep); font-size: 3rem; line-height: 1.04; }
.p95-anniversary-gallery__intro > p { max-width: 42rem; margin-bottom: .15rem; color: var(--muted); }
.p95-anniversary-gallery__grid { display: grid; min-height: 35rem; grid-template-columns: minmax(0,1.62fr) minmax(18rem,.78fr); grid-template-rows: repeat(2,minmax(0,1fr)); gap: 1rem; }
.p95-anniversary-gallery__image { position: relative; min-height: 0; margin: 0; overflow: hidden; background: #dfe5eb; }
.p95-anniversary-gallery__image--lead { grid-row: 1 / 3; }
.p95-anniversary-gallery__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 280ms ease; }
.p95-anniversary-gallery__image--lead img { object-position: center 46%; }
.p95-anniversary-gallery__image figcaption { position: absolute; right: 0; bottom: 0; left: 0; margin: 0; padding: 2.4rem 1.25rem 1rem; background: linear-gradient(180deg,rgba(7,15,31,0),rgba(7,15,31,.78)); color: #fff; font-size: .86rem; font-weight: 680; }
@media (hover:hover) and (pointer:fine) {
  .p95-anniversary-gallery__image:hover img { transform: scale(1.025); }
}

.p91-anniversary-registration { margin-top: 2.5rem !important; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.p91-anniversary-registration p { margin: 0; }
.p91-anniversary-registration p + p { margin-top: .45rem; color: var(--blue-deep); font-size: 1.08rem; font-weight: 680; }
.p91-anniversary-registration.p92-anniversary-registration--placeholder p:last-child { max-width: 58rem; padding: 1rem 1.15rem; border-left: 3px solid var(--orange-action); background: #fff1ec; color: var(--ink); }
.p91-anniversary-recap__inner { align-items: stretch; }
.p91-anniversary-recap__image { min-height: 28rem; margin: 0; overflow: hidden; background: var(--surface-soft); }
.p91-anniversary-recap__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.p91-anniversary-recap__placeholder { display: grid; min-height: 28rem; grid-template-columns: auto 1fr; grid-template-rows: auto auto; gap: 0 1.5rem; align-content: center; align-items: center; padding: 4rem; background: var(--blue-deep); color: #fff; }
.p91-anniversary-recap__placeholder span { grid-row: 1 / 3; font-size: 8.5rem; font-weight: 820; line-height: .78; }
.p91-anniversary-recap__placeholder strong { align-self: end; font-size: 1.65rem; line-height: 1.05; }
.p91-anniversary-recap__placeholder small { align-self: start; margin-top: .75rem; padding-top: .75rem; border-top: 2px solid var(--orange); color: #dfe6f5; font-size: .82rem; font-weight: 680; }
.p91-anniversary-recap__facts { display: grid; gap: 0; margin: 2rem 0 0; }
.p91-anniversary-recap__facts div { display: grid; grid-template-columns: minmax(7rem,.42fr) minmax(0,1fr); gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--line); }
.p91-anniversary-recap__facts dt { color: var(--blue); font-size: .72rem; font-weight: 760; text-transform: uppercase; }
.p91-anniversary-recap__facts dd { margin: 0; color: var(--blue-deep); font-weight: 690; }

.p89-anniversary-location { background: var(--blue-deep); color: #fff; }
.p89-anniversary-location__inner { display: grid; min-height: 34rem; grid-template-columns: minmax(0,1.25fr) minmax(22rem,.75fr); align-items: stretch; }
.p89-anniversary-location__image { min-height: 34rem; margin: 0; overflow: hidden; background: #0c1830; }
.p89-anniversary-location__image img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.p89-anniversary-location__copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 4.25rem 0 4.25rem 4rem; }
.p89-anniversary-location__copy h2 { max-width: none; margin: 0 0 1.25rem; color: #fff; font-size: 3rem; line-height: 1.04; }
.p89-anniversary-location__copy > p:not(.eyebrow) { color: #dfe6f5; }
.p89-anniversary-location__address { margin: 1.5rem 0 1.75rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.28); color: #fff !important; font-size: 1.12rem; font-weight: 700; line-height: 1.5; }
.p89-anniversary-location__copy .wp-block-buttons { margin: 0; }

@media (max-width: 1100px) {
  .p89-anniversary-strip__inner { grid-template-columns: minmax(0,54%) minmax(18rem,46%); }
  .p97-anniversary-strip__content { grid-template-columns: minmax(15rem,.8fr) minmax(0,1.2fr); gap: 1.5rem; padding-block: 2rem; padding-right: 2.5rem; }
  .p89-anniversary-mark__number { font-size: 5.75rem; }
  .p89-anniversary-strip__copy h2 { font-size: 1.9rem; }
  .p95-anniversary-hero__inner { width: 100%; }
  .p95-anniversary-hero__image { aspect-ratio: 16 / 9; }
  .p95-anniversary-hero__content {
    width: min(calc(100% - var(--gutter)),var(--max));
    margin-inline: auto;
    grid-template-areas:
      "eyebrow lead"
      "title lead"
      "date date";
    grid-template-columns: minmax(16rem,.78fr) minmax(20rem,1.22fr);
    gap: .75rem 3rem;
    padding: 3.5rem 0 4rem;
  }
  .p95-anniversary-hero__date { margin-top: 1rem; }
  .p89-event-details__inner { grid-template-columns: minmax(0,1fr); gap: 3rem; }
  .p89-event-details__intro h2 { max-width: 16ch; }
  .p95-anniversary-gallery__intro { gap: 3rem; }
  .p91-anniversary-recap__image,
  .p91-anniversary-recap__placeholder { min-height: 0; aspect-ratio: 16 / 8; }
  .p89-anniversary-location__inner { grid-template-columns: minmax(0,1fr) minmax(20rem,.78fr); }
  .p89-anniversary-location__copy { padding-left: 3rem; }
}

@media (max-width: 60rem) and (min-width: 37.501rem) {
  .p97-anniversary-strip__content { grid-template-columns: minmax(14rem,.8fr) minmax(0,1.2fr); gap: 1rem; padding-block: 2rem; padding-right: 2rem; }
  .p89-anniversary-mark { gap: .75rem; }
  .p89-anniversary-mark__number { font-size: 4.5rem; }
  .p89-anniversary-mark__label { font-size: .86rem; }
  .p89-anniversary-strip__copy h2 { font-size: 1.72rem; }
  .p89-anniversary-strip__details { font-size: .9rem; }
}

@media (max-width: 48rem) {
  .p89-anniversary-strip__inner { min-height: 0; grid-template-columns: minmax(0,1fr); }
  .p97-anniversary-strip__content { padding: 2.75rem var(--gutter); }
  .p89-anniversary-strip__image { min-height: 0; aspect-ratio: 16 / 8.5; }

  .p95-anniversary-hero__image { aspect-ratio: 3 / 2; }
  .p95-anniversary-hero__content { display: flex; width: min(calc(100% - 2rem),76rem); margin-inline: auto; flex-direction: column; align-items: stretch; padding: 3.5rem 0 4rem; }
  .p95-anniversary-hero__content .eyebrow { align-self: stretch; margin-bottom: 1rem; }
  .p95-anniversary-hero__content h1 { max-width: 12ch; font-size: 2.7rem; }
  .p95-anniversary-hero__lead { margin-top: 1.5rem; font-size: 1.05rem; }
  .p95-anniversary-hero__date { margin-top: 1.75rem; }

  .p89-event-details { padding-block: 4rem; }
  .p89-event-details__inner { gap: 2.5rem; }
  .p89-event-details__intro h2 { font-size: 2.25rem; }
  .p89-event-facts { grid-template-columns: minmax(0,1fr); gap: 0; }
  .p89-event-fact { padding: 1.35rem 0; border-top-width: 1px; }
  .p89-event-fact:first-child { border-top-width: 3px; }
  .p95-photo-note { padding-block: 2rem; }
  .p95-photo-note__inner { grid-template-columns: minmax(0,1fr); gap: .65rem; }
  .p95-anniversary-gallery { padding-block: 4rem; }
  .p95-anniversary-gallery__intro { grid-template-columns: minmax(0,1fr); gap: 1.25rem; margin-bottom: 2rem; }
  .p95-anniversary-gallery__intro h2 { font-size: 2.35rem; }
  .p95-anniversary-gallery__grid { min-height: 0; grid-template-columns: minmax(0,1fr); grid-template-rows: auto; gap: .75rem; }
  .p95-anniversary-gallery__image,
  .p95-anniversary-gallery__image--lead { grid-row: auto; aspect-ratio: 16 / 10; }
  .p95-anniversary-gallery__image:not(.p95-anniversary-gallery__image--lead) { aspect-ratio: 16 / 9; }
  .p91-anniversary-recap__image,
  .p91-anniversary-recap__placeholder { aspect-ratio: 4 / 3; }
  .p91-anniversary-recap__placeholder { grid-template-columns: auto 1fr; padding: 2rem; }
  .p91-anniversary-recap__placeholder span { font-size: 5.5rem; }
  .p91-anniversary-recap__placeholder strong { font-size: 1.25rem; }

  .p89-anniversary-location__inner { width: 100%; min-height: 0; grid-template-columns: minmax(0,1fr); }
  .p89-anniversary-location__image { min-height: 0; aspect-ratio: 4 / 3; }
  .p89-anniversary-location__copy { width: min(calc(100% - 2rem),76rem); margin-inline: auto; padding: 3.75rem 0 4rem; }
  .p89-anniversary-location__copy h2 { font-size: 2.35rem; }
  .p89-anniversary-location__copy .wp-block-button,
  .p89-anniversary-location__copy .wp-block-button__link { width: 100%; }
}

@media (max-width: 37.5rem) {
  .p89-anniversary-strip__inner { width: 100%; min-height: 0; grid-template-columns: minmax(0,1fr); gap: 0; }
  .p97-anniversary-strip__content { width: min(100%,76rem); grid-template-columns: minmax(0,1fr); gap: 1.75rem; margin-inline: auto; padding: 2.75rem 1rem 3rem; }
  .p89-anniversary-mark { justify-content: flex-start; padding: 0; }
  .p89-anniversary-mark__number { font-size: 5.25rem; }
  .p89-anniversary-strip__copy h2 { max-width: 18ch; }
  .p89-anniversary-strip__image { min-height: 0; aspect-ratio: 3 / 2; }
}

@media (max-width: 30rem) {
  .p91-anniversary-recap__facts div { grid-template-columns: minmax(0,1fr); gap: .25rem; }
}

@media (max-width: 22rem) {
  .p89-anniversary-mark__number { font-size: 4.5rem; }
  .p89-anniversary-mark__label { font-size: .9rem; white-space: normal; }
  .p89-anniversary-strip__copy h2 { font-size: 1.7rem; }
  .p95-anniversary-hero__content h1 { font-size: 2.3rem; }
  .p89-event-details__intro h2,
  .p89-anniversary-location__copy h2 { font-size: 2rem; }
}
