/* T09 – neue Kontextbilder; der Hero und seine T08-Ebenen bleiben unverändert. */
.about-photo img {
  inset: 0; width: 100%; height: 100%; transform: none;
  object-fit: cover; object-position: 70% 40%; mix-blend-mode: normal;
  -webkit-mask-image: linear-gradient(to top, transparent, #000 45%), linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(to top, transparent, #000 45%), linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
}
.final-cta .final-photo img {
  object-fit: cover; object-position: 45% 50%; mix-blend-mode: normal;
  -webkit-mask-image: none; mask-image: none;
}
@media (max-width: 960px) {
  .final-cta .final-photo img { object-fit: cover; object-position: 50% 8%; }
}

/* Foto/Overlay werden separat beschnitten; Logo und freigestellte Person liegen davor. */
.voices { --voice-overlay: rgba(10,10,10,.70); }
.voices-grid {
  display: grid; grid-template-columns: minmax(0,1fr); gap: 40px;
  margin: 72px 0 0; padding: 0; overflow: visible;
  scroll-snap-type: none;
}
.voice-card {
  display: grid; grid-template-columns: minmax(0,3fr) minmax(0,2fr);
  align-items: center; width: 100%; max-width: none;
  padding: 32px; background: #F4EFE8; border-radius: 20px;
  overflow: visible;
}
.voice-content { padding: 32px 64px 32px 24px; min-width: 0; }
.voice-content h3 { font: 500 44px/1.1 var(--serif); margin: 0 0 12px; }
.voice-content .voice-role { font: 400 12px/1.8 var(--sans); color: #5b534a; margin: 0; }
.voice-content blockquote { font: 400 13px/1.9 var(--sans); color: #5b534a; margin: 36px 0 0; flex: initial; }
.voice-image-field { position: relative; height: 360px; min-width: 0; isolation: isolate; }
.voice-image-background { position: absolute; inset: 0; overflow: hidden; border-radius: 14px; z-index: 0; }
.voice-image-background img { width: 100%; height: 100%; display: block; object-fit: cover; }
.voice-image-background::after { content: ''; position: absolute; inset: 0; background: var(--voice-overlay); }
.voice-logo { position: absolute; top: 18px; left: 18px; z-index: 1; background: #F4EFE8; color: #554336; border-radius: 8px; padding: 14px 16px; font: 500 11px/1 var(--sans); letter-spacing: .12em; }
.voice-person-image { position: absolute; bottom: 0; left: 48%; transform: translateX(-50%); height: calc(100% + 56px); width: auto; max-width: 100%; object-fit: contain; object-position: center bottom; z-index: 2; }
.voice-card:nth-child(2) { grid-template-columns: minmax(0,2fr) minmax(0,3fr); }
.voice-card:nth-child(2) .voice-image-field { grid-column: 1; grid-row: 1; }
.voice-card:nth-child(2) .voice-content { grid-column: 2; grid-row: 1; padding: 32px 24px 32px 64px; }
.voice-card:nth-child(2) .voice-person-image { left: 52%; }
@media (max-width: 760px) {
  .voices-grid { gap: 72px; margin: 76px 0 0; }
  .voice-card, .voice-card:nth-child(2) { grid-template-columns: minmax(0,1fr); padding: 20px; }
  .voice-card .voice-image-field, .voice-card:nth-child(2) .voice-image-field { grid-column: 1; grid-row: 1; height: 320px; }
  .voice-card .voice-content, .voice-card:nth-child(2) .voice-content { grid-column: 1; grid-row: 2; padding: 32px 4px 12px; }
  .voice-content h3 { font-size: 36px; }
  .voice-content blockquote { margin-top: 26px; }
  .voice-person-image { max-width: 100%; }
}

/* Glasiges Gold mit gerader Mittelkante; bestehende Maße und Außenschatten. */
.button, .outline-button { position: relative; overflow: hidden; isolation: isolate; --shine-delay: 0s; }
.button {
  background-color: var(--gold);
  background-image: linear-gradient(to bottom, rgba(255,255,255,.34) 0%, rgba(255,255,255,.12) 49.5%, rgba(0,0,0,.06) 50.5%, rgba(0,0,0,.14) 100%);
  box-shadow: 0 0 30px #b99a7b15, inset 0 1px 0 #ffffff80, inset 0 -1px 0 #0000002e;
}
.button:hover { background-color: var(--hover); background-image: linear-gradient(to bottom, #ffffff57, #ffffff1f 49.5%, #0000000f 50.5%, #00000024); box-shadow: 0 0 42px #b99a7b33, inset 0 1px 0 #ffffff80, inset 0 -1px 0 #0000002e; }
.button:active { background-color: var(--active); }
.outline-button { box-shadow: inset 0 1px 0 #ffffff80; }
.button > *, .outline-button > * { position: relative; z-index: 2; }
.button::before, .button::after, .outline-button::before, .outline-button::after {
  content: ''; position: absolute; top: -50%; left: -30%; width: 24%; height: 200%; z-index: 1;
  pointer-events: none; background: linear-gradient(to right, transparent, rgba(255,255,255,.35), transparent);
  transform: translateX(0) skewX(-20deg);
}
.outline-button::before, .outline-button::after { background: linear-gradient(to right, transparent, #b99a7b55 35%, #ffffffaa 50%, #b99a7b55 65%, transparent); }
.button::before, .outline-button::before { animation: t09-shine 6s linear var(--shine-delay) infinite; }
.button::after, .outline-button::after { opacity: 0; }
.button:hover::before, .outline-button:hover::before { opacity: 0; }
.button:hover::after, .outline-button:hover::after { opacity: 1; animation: t09-hover-shine .9s linear both; }
.primary-cta { --shine-delay: 1.2s; }
.service-card:nth-child(1) .outline-button { --shine-delay: .6s; }
.service-card:nth-child(2) .outline-button { --shine-delay: 2.2s; }
.service-card:nth-child(3) .outline-button { --shine-delay: 3.4s; }
#contact-form .button { --shine-delay: 2.8s; }
.dialog-done { --shine-delay: .4s; }
@keyframes t09-shine {
  0% { transform: translateX(0) skewX(-20deg); }
  15%,100% { transform: translateX(600%) skewX(-20deg); }
}
@keyframes t09-hover-shine {
  from { transform: translateX(0) skewX(-20deg); }
  to { transform: translateX(600%) skewX(-20deg); }
}
@media (prefers-reduced-motion: reduce) {
  .button::before, .button::after, .outline-button::before, .outline-button::after { animation: none !important; display: none; }
}
