/* Feinwerk: white surfaces and the existing brand green. */
:root { --feinwerk-paper:#FFFFFF; --feinwerk-ink:#013027; }
body, body.elementor-page { background-color:var(--feinwerk-paper) !important; color:var(--feinwerk-ink) !important; }
/* Match the existing text face before rendering; avoid fetching unused theme Inter. */
body.elementor-page { font-family:'Avenir Next-regular.','Avenir Next',Avenir,sans-serif; }
.elementor { --e-global-color-primary:#013027; --e-global-color-secondary:#013027; --e-global-color-text:#013027; --e-global-color-accent:#013027; }
.elementor .e-con, .elementor .elementor-section, .elementor .elementor-widget-wrap { background-color:transparent !important; }
.elementor .elementor-heading-title,
.elementor .elementor-widget-text-editor,
.elementor .elementor-widget-text-editor *,
.elementor .elementor-widget-heading a,
.elementor .elementor-icon-list-text,
.elementor .elementor-widget-html,
.elementor .elementor-widget-html p,
.elementor .elementor-widget-html a,
.elementor .elementor-widget-html span,
.elementor .elementor-widget-html h1,
.elementor .elementor-widget-html h2,
.elementor .elementor-widget-html h3,
.elementor .open-status,
.elementor .cpy-year,
.elementor .review-text,
.elementor .review-author,
.elementor .stars { color:var(--feinwerk-ink) !important; }
.elementor .review-item { background:var(--feinwerk-paper) !important; color:var(--feinwerk-ink) !important; border:1px solid #01302726; }
.elementor .elementor-button { background:var(--feinwerk-ink) !important; color:var(--feinwerk-paper) !important; border-color:var(--feinwerk-ink) !important; }
.elementor .elementor-button * { color:var(--feinwerk-paper) !important; }
.elementor .elementor-button:hover { background:#17483D !important; }
.elementor .elementor-widget-html { --menu-bg:#FFFFFF; --menu-fg:#013027; --fab-color:#013027; --fab-icon:#FFFFFF; }
#offcanvas { background:var(--feinwerk-paper) !important; color:var(--feinwerk-ink) !important; }
#offcanvas a, #offcanvas button { color:var(--feinwerk-ink) !important; }
.elementor .fab-contact a, .elementor .fab-contact button, .elementor .fab-contact button * { color:var(--feinwerk-paper) !important; }
.elementor input:not([type=submit]), .elementor textarea, .elementor select { background:var(--feinwerk-paper); color:var(--feinwerk-ink); border-color:#01302766; }
.elementor label { color:var(--feinwerk-ink) !important; }

/* Social icons remain visible on the white footer. */
.elementor .elementor-widget-social-icons .elementor-social-icon {
  background-color: transparent !important;
  color: #013027 !important;
}
.elementor .elementor-widget-social-icons .elementor-social-icon i {
  color: #013027 !important;
}
.elementor .elementor-widget-social-icons .elementor-social-icon svg {
  fill: #013027 !important;
}

/* Slideshow heroes use a centred crop and zoom origin. */
.elementor-element-7369850 .elementor-background-slideshow__slide__image {
  background-position: center center !important;
  transform-origin: center center !important;
}
/* Phone hero crops keep the person or working detail within the narrow frame. */
@media(max-width:767px) {
  body .elementor-1190 .elementor-element-7369850 .elementor-background-slideshow__slide__image {
    background-position:45% center !important;
    transform-origin:45% center !important;
  }
  body .elementor-1866 .elementor-element-7369850 { background-position:58% center !important; }
  body .elementor-1917 .elementor-element-7369850 { background-position:76% center !important; }
  body .elementor-2140 .elementor-element-7369850 { background-position:56% center !important; }
  /* Move the partner photograph fully left within its phone frame. */
  body .elementor-2616 .elementor-element-7369850 { background-position:right center !important; }
}

/* Keep the explicitly requested phone transitions despite Elementor's global
   reduced-motion reset; other reduced-motion behaviour stays in place. */
@media(max-width:767px) and (prefers-reduced-motion:reduce) {
  body #offcanvas { transition-duration:1.35s !important; }
  body .feinwerk-menu-toggle .menue span {
    transition:transform .45s cubic-bezier(.4,0,.2,1) !important;
  }
  body .elementor-element-7369850 .elementor-ken-burns {
    transition-duration:10s !important;
  }
  body .elementor-element-7369850 .elementor-ken-burns--active {
    transition-duration:20s !important;
  }
}

/* Transparente Kopfzeile auch beim Hochscrollen. */
.site-header,
.site-header.is-elevated {
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Weißer Schriftzug und Startseiten-Claim ohne Kontur. */
.elementor .site-header a.logo,
.elementor .elementor-element-48a8b33 .elementor-heading-title {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF;
  -webkit-text-stroke: 0;
  paint-order: stroke fill;
}

/* Logo bleibt am Seitenanfang; nur der Menüknopf bleibt im Sichtbereich. */
.site-header,
.site-header.is-hidden,
.site-header.is-elevated {
  position: absolute !important;
  transform: none !important;
  transition: none !important;
}
.site-header .mm-trigger {
  position: fixed !important;
  top: 32px;
  right: 30px;
}

/* Logo unabhängig vom fixierten Menü links ausrichten. */
.site-header .header-inner {
  justify-content: flex-start !important;
}
.site-header a.logo {
  margin-left: 0 !important;
  margin-right: auto !important;
}
.elementor-widget-html:has(.site-header) {
  width: 100% !important;
  align-self: stretch;
}

/* Revisionen: Ausschnitt nahe dem unteren Bildrand. */
.elementor .elementor-element-8ab1ee5 {
  background-position: center 65% !important;
}

/* Unser Service: Inhaltsbereiche linksbündig, Fußbereich ausgenommen. */
.elementor-1866 > :not(.elementor-element-8ccc6ad):not(.elementor-element-a878d84):not(.elementor-element-36ee33e):not(.elementor-element-5c52cb6):not(.elementor-element-fwfooter) :is(.elementor-widget-heading, .elementor-widget-text-editor) {
  width: 100% !important;
  align-self: stretch !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: left !important;
}
.elementor-1866 > :not(.elementor-element-8ccc6ad):not(.elementor-element-a878d84):not(.elementor-element-36ee33e):not(.elementor-element-5c52cb6):not(.elementor-element-fwfooter) :is(.elementor-heading-title, .elementor-widget-text-editor p) {
  text-align: left !important;
}
/* Alle Texte im unteren Bereich wieder mittig, ursprüngliche Breiten erhalten. */
.elementor-1866 > :is(.elementor-element-8ccc6ad, .elementor-element-a878d84, .elementor-element-36ee33e) :is(.elementor-widget-heading, .elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor p, .cpy-year) {
  text-align: center !important;
}

/* Instagram-Überschrift auf der Serviceseite zentrieren. */
.elementor.elementor-1866 .elementor-element-0e0a5be,
.elementor.elementor-1866 .elementor-element-0e0a5be .elementor-heading-title {
  text-align: center !important;
}

/* Weiße Beschriftung auf grünen Formular-Buttons. */
.elementor .ff-btn-submit,
.elementor .ff-btn-submit * {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* An- und Verkauf: Bildausschnitt etwas tiefer wählen. */
.elementor .elementor-element-76559f8 {
  background-position: center center !important;
}

/* An- und Verkauf: etwas mehr vom Motiv zeigen. */
.elementor .elementor-element-76559f8 {
  background-size: 90% auto !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
}

/* Motiv leicht nach unten versetzen. */
.elementor .elementor-element-76559f8 {
  background-position: center calc(50% + 12px) !important;
}

/* FAQ-Fragen ohne Schrift- oder Schlagschatten auf allen Bildschirmgrößen. */
.elementor .e-n-accordion-item-title,
.elementor .e-n-accordion-item-title * {
  text-shadow: none !important;
  filter: none !important;
}

/* Externe Empfehlung als Link erkennbar machen. */
.elementor a[href="https://www.antikuhrmeister.de/"] {
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

/* Kontakt: Feinwerk 47 als Schwarzweiß-Hintergrund. */
.elementor.elementor-1358 .elementor-element-7369850 {
  background-color: #FFFFFF !important;
  background-blend-mode: luminosity;
}
.elementor-1358 .elementor-element-7369850 .elementor-background-slideshow__slide__image {
  filter: grayscale(1);
}

/* Versand: Feinwerk 46 in Schwarzweiß; Schrift und Bedienelemente behalten ihre Farben. */
.elementor.elementor-1898 .elementor-element-7369850 {
  background-color: #FFFFFF !important;
  background-blend-mode: luminosity;
}
@media(max-width:767px) {
  .elementor.elementor-1898 .elementor-element-7369850 {
    /* Feinwerk 46 is 2560×1707; the wordmark F starts at x≈881.
       Anchor that letter 2mm from the edge without exposing empty space in landscape. */
    background-position-x:clamp(min(0px,calc(100vw - 149.97svh)),calc(2mm - 51.6svh),0px) !important;
    background-position-y:center !important;
  }
}

/* Öffnungsstatus auf grünem Hintergrund gut lesbar. */
.elementor .elementor-widget-html .open-status,
.elementor .elementor-widget-html .open-status * {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Öffnungsstatus ohne farbige Hintergrundfläche. */
.elementor .elementor-widget-html .open-status {
  background: transparent !important;
  box-shadow: none !important;
}

/* Öffnungsstatus: grüne Schrift auf transparentem Hintergrund. */
.elementor .elementor-widget-html .open-status,
.elementor .elementor-widget-html .open-status * {
  color: #013027 !important;
  -webkit-text-fill-color: #013027 !important;
}

/* Auch die umgebende Status-Widgetfläche transparent halten. */
.elementor .elementor-widget-html:has(.open-status),
.elementor .elementor-widget-html:has(.open-status) > .elementor-widget-container {
  background: transparent !important;
  box-shadow: none !important;
}

/* An- und Verkauf: neues Motiv in Schwarzweiß. */
.elementor.elementor-1190 .elementor-element-76559f8 {
  background-color: #FFFFFF !important;
  background-blend-mode: luminosity;
}

/* An- und Verkauf wie die übrigen Servicekacheln vollständig ausfüllen. */
.elementor .elementor-element-76559f8 {
  background-size: cover !important;
  background-position: center center !important;
}

/* An- und Verkauf: Ausschnitt leicht nach links. */
.elementor .elementor-element-76559f8 {
  background-position: 40% center !important;
}

/* Kartenhintergrund der Startseite: Rand-Bedienelemente aus dem Ausschnitt nehmen. */
.elementor-1190 .elementor-element-8ccc6ad {
  background-size: max(120vw, 180vh) auto !important;
  background-position: center center !important;
}

/* Neue Standortkarte ohne den zusätzlichen Zoom der alten Aufnahme. */
.elementor .elementor-element-8ccc6ad {
  background-size: cover !important;
  background-position: center center !important;
}

/* Kontaktfeld über der Karte: milchig weiß für gut lesbare Angaben. */
.elementor .elementor-element-8ccc6ad .elementor-element-e7c485e {
  background: rgba(255, 255, 255, 0.85) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

/* Ein sichtbarer Schalter zum Öffnen und Schließen des Menüs. */
body .feinwerk-menu-toggle {
  position: fixed !important;
  top: 24px !important;
  right: 10px !important;
  width: 64px;
  height: 72px;
  z-index: 12000;
  background: transparent;
  border: 0;
  color: #013027;
}
body .feinwerk-menu-toggle .menue {
  margin: 0;
  color: #013027 !important;
  transform: rotate(90deg);
  transition: transform .3s ease;
}
body .feinwerk-menu-toggle[aria-expanded="true"] .menue {
  transform: rotate(0deg);
}
#offcanvas .mm-close { display: none !important; }
/* Keep the scrim visible until the full fade has finished. The original
   visibility transition cut off the longer opacity animation mid-fade. */
body .mm-overlay {
  pointer-events:none;
  transition:opacity 1.35s cubic-bezier(.2,.8,.2,1), visibility 0s linear 1.35s !important;
}
body .mm-overlay.is-open {
  pointer-events:auto;
  transition-delay:0s,0s !important;
}
@media (prefers-reduced-motion: reduce) {
  body .feinwerk-menu-toggle .menue { transition: none; }
}

/* Geschlossen: einzelne aufrechte Buchstaben untereinander. */
body .feinwerk-menu-toggle .menue {
  writing-mode: vertical-rl;
  text-orientation: upright;
  transform: none;
}
body .feinwerk-menu-toggle[aria-expanded="true"] .menue {
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  transform: none;
}

/* Einzelne Buchstaben gleiten zwischen vertikaler und horizontaler Position. */
body .feinwerk-menu-toggle {
  right: 2px !important;
  height: 96px;
}
body .feinwerk-menu-toggle .menue,
body .feinwerk-menu-toggle[aria-expanded="true"] .menue {
  position: relative;
  display: block;
  width: 64px;
  height: 96px;
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  transform: none;
}
body .feinwerk-menu-toggle .menue span {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 16px;
  height: 24px;
  line-height: 24px;
  text-align: center;
  transform: translate(24px, calc(var(--letter-index) * 24px));
  transition: transform .45s cubic-bezier(.4, 0, .2, 1);
}
body .feinwerk-menu-toggle[aria-expanded="true"] .menue span {
  transform: translate(calc(var(--letter-index) * 16px), 36px);
}
@media (prefers-reduced-motion: reduce) {
  body .feinwerk-menu-toggle .menue span { transition: none; }
}

/* Natürliche Zeichenbreiten und zusätzlicher Abstand zum rechten Rand. */
body .feinwerk-menu-toggle .menue span {
  width: max-content;
  transform: translate(var(--closed-x, 24px), calc(var(--letter-index) * 24px));
}
body .feinwerk-menu-toggle[aria-expanded="true"] .menue span {
  transform: translate(var(--open-x, 0px), 36px);
}

/* Kein Fokusrahmen nach Mausklick; Tastaturfokus bleibt erkennbar. */
body .feinwerk-menu-toggle:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}
body .feinwerk-menu-toggle:focus-visible {
  outline: 2px solid #013027;
  outline-offset: 2px;
}

/* Menüschalter in jedem Fokuszustand ohne Rahmen. */
body .feinwerk-menu-toggle,
body .feinwerk-menu-toggle:focus,
body .feinwerk-menu-toggle:focus-visible,
body .feinwerk-menu-toggle:active {
  outline: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Senkrechten Menütext mittig im schmalen Randstreifen platzieren. */
body .feinwerk-menu-toggle .menue span {
  transform: translate(calc(var(--closed-x, 24px) + 10px), calc(var(--letter-index) * 24px));
}
body .feinwerk-menu-toggle[aria-expanded="true"] .menue span {
  transform: translate(var(--open-x, 0px), 36px);
}

/* Geöffnetes Menü: Beschriftung etwas weiter vom rechten Rand abrücken. */
body .feinwerk-menu-toggle[aria-expanded="true"] .menue span {
  transform: translate(calc(var(--open-x, 0px) - 12px), 36px);
}

/* Hintergrund 1: stabiler Ausschnitt ohne viewport-fixierten Scrolleffekt. */
.elementor-1190 .elementor-element-d88b5d4,
.elementor-1190 .elementor-element-1ef3d15,
.elementor-1190 .elementor-element-a0d00d7 {
  background-attachment: scroll !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}

/* Die Seite gleitet über das stehende, mittig ausgerichtete Bild. */
.elementor-1190 .elementor-element-d88b5d4,
.elementor-1190 .elementor-element-1ef3d15,
.elementor-1190 .elementor-element-a0d00d7 {
  background-attachment: fixed !important;
  background-position: center center !important;
}

/* Ruhiger Parallax-Effekt: fixierte Bildebene statt background-attachment. */
.elementor-1190 :is(.elementor-element-d88b5d4, .elementor-element-1ef3d15, .elementor-element-a0d00d7) {
  background-image: none !important;
  background-attachment: scroll !important;
  clip-path: inset(0);
  isolation: isolate;
}
.elementor-1190 :is(.elementor-element-d88b5d4, .elementor-element-1ef3d15, .elementor-element-a0d00d7)::after {
  content: "";
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  height: 100lvh;
  background: url('/wp-content/uploads/2025/09/feinwerk-23-startseite.jpg') center center / cover no-repeat;
  pointer-events: none;
  z-index: -1;
  transform: translateZ(0);
  will-change: transform;
}

/* Galerie: bündige Rahmen und gleichmäßige Reihenabstände. */
.elementor-2182 :is(.elementor-element-4cb26036,.elementor-element-d58e654,.elementor-element-7387fa4,.elementor-element-a8a4444,.elementor-element-2f5c088,.elementor-element-d297044,.elementor-element-ec43edc,.elementor-element-0bd3a94,.elementor-element-e98aa7a,.elementor-element-a4e4dc6,.elementor-element-1d64fcd,.elementor-element-9eea57f,.elementor-element-66ad680,.elementor-element-46f147a,.elementor-element-39d30e0,.elementor-element-5e42239) { padding-top:0 !important; padding-bottom:0 !important; margin-top:0 !important; margin-bottom:40px !important; }
.elementor-2182 :is(.elementor-element-4cb26036,.elementor-element-d58e654,.elementor-element-7387fa4,.elementor-element-a8a4444,.elementor-element-2f5c088,.elementor-element-d297044,.elementor-element-ec43edc,.elementor-element-0bd3a94,.elementor-element-e98aa7a,.elementor-element-a4e4dc6,.elementor-element-1d64fcd,.elementor-element-9eea57f,.elementor-element-66ad680,.elementor-element-46f147a,.elementor-element-39d30e0,.elementor-element-5e42239) > .e-con-inner { align-items:stretch !important; padding-top:0 !important; padding-bottom:0 !important; }
.elementor-2182 :is(.elementor-element-4cb26036,.elementor-element-d58e654,.elementor-element-7387fa4,.elementor-element-a8a4444,.elementor-element-2f5c088,.elementor-element-d297044,.elementor-element-ec43edc,.elementor-element-0bd3a94,.elementor-element-e98aa7a,.elementor-element-a4e4dc6,.elementor-element-1d64fcd,.elementor-element-9eea57f,.elementor-element-66ad680,.elementor-element-46f147a,.elementor-element-39d30e0,.elementor-element-5e42239) > .e-con-inner > .e-con:first-child { padding-top:0 !important; padding-bottom:0 !important; justify-content:stretch !important; }
.elementor-2182 :is(.elementor-element-4cb26036,.elementor-element-d58e654,.elementor-element-7387fa4,.elementor-element-a8a4444,.elementor-element-2f5c088,.elementor-element-d297044,.elementor-element-ec43edc,.elementor-element-0bd3a94,.elementor-element-e98aa7a,.elementor-element-a4e4dc6,.elementor-element-1d64fcd,.elementor-element-9eea57f,.elementor-element-66ad680,.elementor-element-46f147a,.elementor-element-39d30e0,.elementor-element-5e42239) > .e-con-inner > .e-con:first-child > .e-con { border:3px solid #013027 !important; margin-top:0 !important; margin-bottom:0 !important; flex:1; width:100%; }
.elementor-2182 :is(.elementor-element-4cb26036,.elementor-element-d58e654,.elementor-element-7387fa4,.elementor-element-a8a4444,.elementor-element-2f5c088,.elementor-element-d297044,.elementor-element-ec43edc,.elementor-element-0bd3a94,.elementor-element-e98aa7a,.elementor-element-a4e4dc6,.elementor-element-1d64fcd,.elementor-element-9eea57f,.elementor-element-66ad680,.elementor-element-46f147a,.elementor-element-39d30e0,.elementor-element-5e42239) > .e-con-inner > .e-con:last-child { border:3px solid #013027 !important; margin:0 !important; align-self:stretch !important; overflow:hidden; }
@media(min-width:768px) {
.elementor-2182 :is(.elementor-element-4cb26036,.elementor-element-d58e654,.elementor-element-7387fa4,.elementor-element-a8a4444,.elementor-element-2f5c088,.elementor-element-d297044,.elementor-element-ec43edc,.elementor-element-0bd3a94,.elementor-element-e98aa7a,.elementor-element-a4e4dc6,.elementor-element-1d64fcd,.elementor-element-9eea57f,.elementor-element-66ad680,.elementor-element-46f147a,.elementor-element-39d30e0,.elementor-element-5e42239) > .e-con-inner > .e-con { min-height:360px !important; }
.elementor-2182 :is(.elementor-element-4cb26036,.elementor-element-d58e654,.elementor-element-7387fa4,.elementor-element-a8a4444,.elementor-element-2f5c088,.elementor-element-d297044,.elementor-element-ec43edc,.elementor-element-0bd3a94,.elementor-element-e98aa7a,.elementor-element-a4e4dc6,.elementor-element-1d64fcd,.elementor-element-9eea57f,.elementor-element-66ad680,.elementor-element-46f147a,.elementor-element-39d30e0,.elementor-element-5e42239) > .e-con-inner > .e-con:last-child::after { content:''; position:absolute; top:0; bottom:0; left:50%; width:3px; transform:translateX(-50%); background:#013027; z-index:3; pointer-events:none; }
}

/* Galerie als ruhiges Raster mit variierenden Bildformaten. */
.elementor-2182 .elementor-element-fwgal02 { width:100%; }
.fw-gallery {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:48px 32px;
  align-items:start;
  max-width:1320px;
  margin:0 auto 100px;
  padding:0 48px;
}
.fw-gallery-item { margin:0; min-width:0; grid-column:span 6; }
.fw-gallery-item:nth-child(6n+3) { grid-column:span 4; }
.fw-gallery-item:nth-child(6n+4) { grid-column:span 8; }
.fw-gallery-item:nth-child(6n+5) { grid-column:span 7; }
.fw-gallery-item:nth-child(6n+6) { grid-column:span 5; }
.fw-gallery-item > a { display:block; border:2px solid #013027; overflow:hidden; }
.fw-gallery-item img { display:block; width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover; }
.fw-gallery-item:nth-child(6n+3) img { aspect-ratio:3 / 4; }
.fw-gallery-item:nth-child(6n+4) img { aspect-ratio:3 / 2; }
.elementor .fw-gallery figcaption {
  margin:12px 0 0; padding:0;
  font-family:'Avenir Next',Avenir,sans-serif;
  font-size:13px; font-weight:400; line-height:1.6;
  text-align:left; color:#013027;
}
@media(max-width:1024px) {
  .fw-gallery { padding:0 30px; gap:32px 24px; }
}
@media(max-width:600px) {
  .fw-gallery { grid-template-columns:1fr; gap:32px; padding:0 24px; margin-bottom:60px; }
  .fw-gallery .fw-gallery-item { grid-column:1; }
  .fw-gallery .fw-gallery-item img { aspect-ratio:auto; }
}

/* Kompaktere Galerie ohne Rahmen. */
.fw-gallery { gap:28px 24px; }
.fw-gallery .fw-gallery-item { grid-column:span 4; }
.fw-gallery .fw-gallery-item:nth-child(8n+4),
.fw-gallery .fw-gallery-item:nth-child(8n+5) { grid-column:span 6; }
.fw-gallery-item > a { border:0; }
.fw-gallery .fw-gallery-item img { aspect-ratio:4 / 3; }
.fw-gallery .fw-gallery-item:nth-child(8n+2) img { aspect-ratio:1 / 1; }
.fw-gallery .fw-gallery-item:nth-child(8n+4) img,
.fw-gallery .fw-gallery-item:nth-child(8n+5) img { aspect-ratio:2 / 1; }
@media(max-width:1024px) {
  .fw-gallery .fw-gallery-item { grid-column:span 6; }
}
@media(max-width:600px) {
  .fw-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 20px; gap:24px 14px; }
  .fw-gallery .fw-gallery-item,
  .fw-gallery .fw-gallery-item:nth-child(8n+4),
  .fw-gallery .fw-gallery-item:nth-child(8n+5) { grid-column:span 1; }
  .fw-gallery .fw-gallery-item img { aspect-ratio:4 / 3; }
}

/* Lockere Bilderwand mit wechselnden Formaten und versetzten Oberkanten. */
@media(min-width:1025px) {
  .fw-gallery { grid-template-columns:repeat(12,minmax(0,1fr)); gap:30px 26px; align-items:start; }
  .fw-gallery .fw-gallery-item { grid-column:span 4; margin-top:0 !important; }
  .fw-gallery .fw-gallery-item:nth-child(9n+1) { grid-column:span 3; margin-top:44px !important; }
  .fw-gallery .fw-gallery-item:nth-child(9n+2) { grid-column:span 5; }
  .fw-gallery .fw-gallery-item:nth-child(9n+3) { grid-column:span 4; margin-top:76px !important; }
  .fw-gallery .fw-gallery-item:nth-child(9n+4) { grid-column:span 5; }
  .fw-gallery .fw-gallery-item:nth-child(9n+5) { grid-column:span 3; margin-top:58px !important; }
  .fw-gallery .fw-gallery-item:nth-child(9n+6) { grid-column:span 4; margin-top:18px !important; }
  .fw-gallery .fw-gallery-item:nth-child(9n+7) { grid-column:span 4; margin-top:36px !important; }
  .fw-gallery .fw-gallery-item:nth-child(9n+8) { grid-column:span 3; }
  .fw-gallery .fw-gallery-item:nth-child(9n+9) { grid-column:span 5; margin-top:62px !important; }
  .fw-gallery .fw-gallery-item:nth-child(9n+1) img { aspect-ratio:3 / 4; }
  .fw-gallery .fw-gallery-item:nth-child(9n+2) img { aspect-ratio:4 / 3; }
  .fw-gallery .fw-gallery-item:nth-child(9n+3) img { aspect-ratio:3 / 2; }
  .fw-gallery .fw-gallery-item:nth-child(9n+4) img { aspect-ratio:3 / 2; }
  .fw-gallery .fw-gallery-item:nth-child(9n+5) img { aspect-ratio:1 / 1; }
  .fw-gallery .fw-gallery-item:nth-child(9n+6) img { aspect-ratio:4 / 5; }
  .fw-gallery .fw-gallery-item:nth-child(9n+7) img { aspect-ratio:4 / 3; }
  .fw-gallery .fw-gallery-item:nth-child(9n+8) img { aspect-ratio:3 / 4; }
  .fw-gallery .fw-gallery-item:nth-child(9n+9) img { aspect-ratio:16 / 9; }
}
@media(max-width:1024px) {
  .fw-gallery .fw-gallery-item:nth-child(even) { margin-top:28px !important; }
  .fw-gallery .fw-gallery-item:nth-child(4n+1) img { aspect-ratio:3 / 4; }
  .fw-gallery .fw-gallery-item:nth-child(4n+2) img { aspect-ratio:4 / 3; }
  .fw-gallery .fw-gallery-item:nth-child(4n+3) img { aspect-ratio:1 / 1; }
  .fw-gallery .fw-gallery-item:nth-child(4n+4) img { aspect-ratio:4 / 5; }
}

/* Freie Bilderwand: individuelle Platzierung ohne gemeinsame Reihen. */
.fw-gallery.fw-free-gallery {
  display:block;
  position:relative;
  width:calc(100% - 80px);
  max-width:1320px;
  padding:0;
  margin:0 auto 90px;
}
.fw-gallery.fw-free-gallery .fw-gallery-item {
  position:absolute;
  margin:0 !important;
}
.fw-gallery.fw-free-gallery .fw-gallery-item img {
  aspect-ratio:auto !important;
  height:auto;
  width:100%;
}
@media(max-width:600px) {
 .fw-gallery.fw-free-gallery { width:calc(100% - 40px); }
}

/* Modulare Bilderwand: kleine Formate ergänzen sich zu großen Flächen. */
.fw-gallery.fw-modular-gallery {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:240px;
  grid-auto-flow:row dense;
  gap:26px;
  max-width:1260px;
  padding:0 40px;
  align-items:stretch;
}
.fw-gallery.fw-modular-gallery .fw-gallery-item {
  margin:0 !important;
  min-height:0;
  grid-column:span 1;
  grid-row:span 1;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.fw-gallery.fw-modular-gallery .fw-gallery-item:nth-child(12n+1),
.fw-gallery.fw-modular-gallery .fw-gallery-item:nth-child(12n+8) {
  grid-column:span 2;
  grid-row:span 2;
}
.fw-gallery.fw-modular-gallery .fw-gallery-item:nth-child(12n+6),
.fw-gallery.fw-modular-gallery .fw-gallery-item:nth-child(12n+11) {
  grid-column:span 2;
}
.fw-gallery.fw-modular-gallery .fw-gallery-item > a {
  flex:1;
  min-height:0;
  display:block;
  overflow:hidden;
  border:0;
}
.fw-gallery.fw-modular-gallery .fw-gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:auto !important;
}
.elementor .fw-gallery.fw-modular-gallery figcaption {
  flex:0 0 42px;
  margin:0;
  font-size:12px;
  line-height:1.4;
  text-align:left;
}
@media(min-width:1500px) {
 .fw-gallery.fw-modular-gallery { grid-auto-rows:270px; }
}
@media(max-width:900px) {
 .fw-gallery.fw-modular-gallery { grid-auto-rows:190px; gap:20px; padding:0 24px; }
}
@media(max-width:600px) {
 .fw-gallery.fw-modular-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:190px; gap:20px 14px; padding:0 20px; }
 .elementor .fw-gallery.fw-modular-gallery figcaption { flex-basis:58px; }
}

/* Große Motive abwechselnd links und rechts platzieren. */
@media(min-width:601px) {
  .fw-gallery.fw-modular-gallery .fw-gallery-item:nth-child(12n+1) {
    grid-column:1 / span 2;
  }
  .fw-gallery.fw-modular-gallery .fw-gallery-item:nth-child(12n+8) {
    grid-column:3 / span 2;
  }
}

/* Überschriften durch Größe statt Fettschrift hervorheben. */
.elementor .elementor-heading-title,
.elementor .elementor-heading-title strong,
.elementor .elementor-heading-title b,
.elementor .eael-contact-form-title {
  font-family: 'Avenir Next-regular.', 'Avenir Next', Avenir, sans-serif !important;
  font-weight: 400 !important;
}

/* Große Seitentitel auf den Startbildern weiterhin fett. */
.elementor .elementor-element-7369850 .elementor-heading-title,
.elementor .elementor-element-7369850 .elementor-heading-title strong,
.elementor .elementor-element-7369850 .elementor-heading-title b {
  font-family: 'Avenir Next-bold', 'Avenir Next', Avenir, sans-serif !important;
  font-weight: 700 !important;
}

/* Überschriften im Inhalt halbfett; Bildtitel bleiben kräftig. */
.elementor .elementor-heading-title,
.elementor .elementor-heading-title strong,
.elementor .elementor-heading-title b,
.elementor .eael-contact-form-title {
  font-family: 'Avenir Next', Avenir, sans-serif !important;
  font-weight: 600 !important;
}
.elementor .elementor-element-7369850 .elementor-heading-title {
  font-family: 'Avenir Next-bold', 'Avenir Next', Avenir, sans-serif !important;
  font-weight: 700 !important;
}

/* Aufarbeitungen: Abstand nach den Überschriften von Punkt 2 und 4. */
.elementor-1866 .elementor-element-5b3b47e p:first-child,
.elementor-1866 .elementor-element-53500a2 p:first-child {
  margin-bottom: 1em !important;
}

/* Aufarbeitungen: gleicher Abstand bei Punkt 6. */
.elementor-1866 .elementor-element-1d700d0 p:first-child {
  margin-bottom: 1em !important;
}

/* Seitentitel in den Startbildern halbfett. */
.elementor .elementor-element-7369850 .elementor-heading-title,
.elementor .elementor-element-7369850 .elementor-heading-title strong,
.elementor .elementor-element-7369850 .elementor-heading-title b {
  font-family: 'Avenir Next', Avenir, sans-serif !important;
  font-weight: 600 !important;
}

/* Galerie: Feinwerk 34 auch auf mobilen Geräten. */
.elementor-2182 .elementor-element.elementor-element-7369850 {
  background-image: url('/wp-content/uploads/2025/10/Feinwerk-34-scaled.jpg') !important;
}


/* Galerie-Seitentitel in Feinwerk-Grün. */
.elementor-2182 .elementor-element-7369850 .elementor-heading-title {
  color: #013027 !important;
  -webkit-text-fill-color: #013027 !important;
}

body.elementor-page-2182 .elementor .elementor-element-7369850 .elementor-heading-title,
body.elementor-page-2182 .elementor .elementor-element-7369850 .elementor-heading-title * {
  color: #013027 !important;
  -webkit-text-fill-color: #013027 !important;
}

/* Gewünschter exakter Grünton für den Galerie-Titel. */
body.elementor-page-2182 .elementor .elementor-element-7369850 .elementor-heading-title,
body.elementor-page-2182 .elementor .elementor-element-7369850 .elementor-heading-title * {
  color: #1C4438FF !important;
  -webkit-text-fill-color: #1C4438FF !important;
}

/* Unterüberschriften der Leistungsbereiche in normaler Schriftstärke. */
.elementor-1866 .elementor-element-3be49d0 .elementor-heading-title,
.elementor-1866 .elementor-element-9f9ff5f .elementor-heading-title,
.elementor-1866 .elementor-element-08bb5e4 .elementor-heading-title {
  font-weight: 400 !important;
}

/* Leistungsüberschriften und Aufzählungstitel ohne Fettschrift. */
.elementor-1866 .elementor-element-f731ad0 .elementor-heading-title,
.elementor-1866 .elementor-element-a0ee6d9 .elementor-heading-title,
.elementor-1866 .elementor-element-71c3cef .elementor-heading-title,
.elementor-1866 .elementor-widget-text-editor strong,
.elementor-1866 .elementor-widget-text-editor b {
  font-family: 'Avenir Next-regular.', 'Avenir Next', Avenir, sans-serif !important;
  font-weight: 400 !important;
}

/* Gemeinsamer Fußbereich füllt jede Seite aus. */
.elementor .elementor-element-fwfooter, .elementor .elementor-element-fwfootercode { width:100%; padding:0; margin:0; }
.elementor-2612 .elementor-element-8ccc6ad :is(p,.elementor-heading-title) { text-align:left !important; }

/* Contact page: form and FAQ share the same horizontal content edges. */
body .elementor.elementor-1358 .elementor-element.elementor-element-85ccaae { padding-inline:0; }
body .elementor.elementor-1358 .elementor-element.elementor-element-d7253fb,
body .elementor.elementor-1358 .elementor-element.elementor-element-9476e0b {
 padding-inline:300px; width:100%; max-width:none;
}
body .elementor.elementor-1358 .elementor-element.elementor-element-9476e0b > .e-con-inner { width:100%; max-width:none; }
body .elementor.elementor-1358 .elementor-element.elementor-element-2148117,
body .elementor.elementor-1358 .elementor-element.elementor-element-2148117 > .elementor-widget-container { padding-inline:0; width:100%; }
body .elementor.elementor-1358 .elementor-element-2148117 .e-n-accordion-item-title { padding-inline:0; }
@media(max-width:767px) {
 body .elementor.elementor-1358 .elementor-element.elementor-element-d7253fb,
 body .elementor.elementor-1358 .elementor-element.elementor-element-9476e0b { padding-inline:30px; }
}

/* Center each question together with its arrow beneath the FAQ heading. */
body .elementor.elementor-1358 .elementor-element-2148117 .e-n-accordion-item-title {
 display:flex; flex-direction:row; justify-content:center; align-items:center;
 padding-left:0 !important; padding-right:0 !important; column-gap:10px;
}
body .elementor.elementor-1358 .elementor-element-2148117 .e-n-accordion-item-title-icon {
 order:-1; flex:0 0 15px; width:15px; min-width:15px; margin:0; padding:0; justify-content:flex-start;
}
body .elementor.elementor-1358 .elementor-element-2148117 .e-n-accordion-item-title-header {
 flex:0 1 auto; min-width:0; justify-content:center; text-align:center;
}
body .elementor.elementor-1358 .elementor-element-2148117 .elementor-widget-text-editor {
 text-align:center;
}

/* Feinwerk green for selected form checkboxes. */
body .fluentform input[type="checkbox"] {
 accent-color:#1C4438 !important;
}

/* Space between the service-selection label and its checkboxes. */
body .fluentform .ff-el-group:has(input[type="checkbox"]) > .ff-el-input--label {
 margin-bottom:20px !important;
}

/* Compact team photograph with its heading and link underneath. */
body .elementor.elementor-1190 .elementor-element.elementor-element-8f84429 {
 width:85%; max-width:1200px; margin-inline:auto; align-self:center;
}
body .elementor.elementor-1190 .elementor-element-fwteam62 { width:100%; }
body .elementor.elementor-1190 .elementor-element-fwteam62 img { width:100%; height:auto; }
body .elementor.elementor-1190 .elementor-element-8f84429 .elementor-element-85c3571 { align-self:flex-end; }
@media(max-width:767px) {
 body .elementor.elementor-1190 .elementor-element.elementor-element-8f84429 { width:100%; }
}

/* Service and work previews use the same frame as the team section. */
body .elementor.elementor-1190 .elementor-element.elementor-element-d0a73e1,
body .elementor.elementor-1190 .elementor-element.elementor-element-b7d6ba8 {
 width:85%; max-width:1200px; margin-inline:auto; align-self:center;
 padding-inline:40px; min-height:0;
}
body .elementor.elementor-1190 :is(.elementor-element-9e1d883,.elementor-element-1cfd693,.elementor-element-58a5d4f,.elementor-element-fbded8f) {
 width:100%; max-width:none; padding-inline:0; margin-inline:0;
}
body .elementor.elementor-1190 :is(.elementor-element-163b548,.elementor-element-782031d) {
 align-self:flex-end; margin-inline:0;
}
@media(max-width:767px) {
 body .elementor.elementor-1190 .elementor-element.elementor-element-d0a73e1,
 body .elementor.elementor-1190 .elementor-element.elementor-element-b7d6ba8 { width:100%; padding-inline:20px; }
}

/* Keep both halves of the square before/after photographs visible. */
body .elementor.elementor-1190 .elementor-element.fw-work-photo {
 aspect-ratio:1; min-height:0; flex-shrink:0;
}
/* Gallery link aligned to the left edge of its section. */
body .elementor.elementor-1190 .elementor-element.elementor-element-782031d {
 align-self:flex-start !important; text-align:left !important;
}
body .elementor.elementor-1190 .elementor-element-782031d .elementor-button-wrapper { text-align:left !important; }

/* Center the vertical menu in the margin beside the homepage image frame. */
body.elementor-page-1190 .feinwerk-menu-toggle:not([aria-expanded="true"]) {
 right:var(--menu-gutter-right, 2px) !important;
}

/* Wellness shares the homepage's content frame. */
body .elementor.elementor-1190 .elementor-element.elementor-element-85ccaae {
 width:85%; max-width:1200px; margin-inline:auto; align-self:center;
 padding-inline:40px; min-height:0;
}
body .elementor.elementor-1190 .elementor-element-85ccaae > .elementor-element-d7253fb {
 padding-left:0;
}
body .elementor.elementor-1190 .elementor-element-85ccaae > .elementor-element-6258442 {
 padding-right:0; margin-right:0;
}
@media(max-width:767px) {
 body .elementor.elementor-1190 .elementor-element.elementor-element-85ccaae {
  width:100%; padding-inline:20px;
 }
 body .elementor.elementor-1190 .elementor-element.elementor-element-b6c00d9 {
  --min-height:360px; min-height:360px; height:360px;
 }
}

/* Remove the extra outer inset inside the Wellness columns. */
body .elementor.elementor-1190 .elementor-element.elementor-element-85ccaae .elementor-element.elementor-element-6258442 {
 padding-left:0 !important; padding-right:0 !important;
}
body .elementor.elementor-1190 .elementor-element.elementor-element-85ccaae .elementor-element.elementor-element-d7253fb {
 padding-left:50px !important; padding-right:0 !important;
}
@media(max-width:767px) {
 body .elementor.elementor-1190 .elementor-element.elementor-element-85ccaae .elementor-element.elementor-element-d7253fb { padding-left:0 !important; }
}

/* Menu contrast follows the surface behind it. */
body .feinwerk-menu-toggle,
body .feinwerk-menu-toggle .menue,
body .feinwerk-menu-toggle .menue span {
 color:var(--fw-menu-ink,#1C4438) !important;
 -webkit-text-fill-color:var(--fw-menu-ink,#1C4438) !important;
}

/* Two identical glyph layers allow the background edge to cut through a letter. */
body .feinwerk-menu-toggle .menue span {
 color:#1C4438 !important; -webkit-text-fill-color:#1C4438 !important;
}
body .feinwerk-menu-toggle .menue span::after {
 content:attr(data-letter); position:absolute; inset:0;
 font:inherit; line-height:inherit; text-align:inherit;
 color:#fff !important; -webkit-text-fill-color:#fff !important;
 clip-path:var(--fw-white-clip,inset(100%)); pointer-events:none;
}

/* Closing image and reviews follow the same edges as the team photograph. */
body .elementor.elementor-1190 .elementor-element.elementor-element-4b83c89,
body .elementor.elementor-1190 .elementor-element.elementor-element-ee9142b {
 width:calc(min(85%, 1200px) - 80px); max-width:none; margin-inline:auto; align-self:center;
}
body .elementor.elementor-1190 .elementor-element.elementor-element-4014677 {
 width:85%; max-width:1200px; margin-inline:auto; padding-inline:40px; align-self:center;
}
body .elementor.elementor-1190 .elementor-element-4014677 .elementor-widget-html,
body .elementor.elementor-1190 .elementor-element-4014677 .review-swiper {
 width:100%; max-width:none; margin-inline:0;
}
body .elementor.elementor-1190 .elementor-element.elementor-element-d83de73 { margin-right:0; max-width:100%; }
@media(max-width:767px) {
 body .elementor.elementor-1190 .elementor-element.elementor-element-ee9142b { width:calc(100% - 40px); }
 body .elementor.elementor-1190 .elementor-element.elementor-element-4014677 { width:100%; padding-inline:20px; }
 body .elementor.elementor-1190 .elementor-element.elementor-element-77e7a79 { width:100%; max-width:100%; margin-inline:0; padding-inline:0; }
}

/* Full-width closing background; only its text follows the content frame. */
body .elementor.elementor-1190 .elementor-element.elementor-element-4b83c89,
body .elementor.elementor-1190 .elementor-element.elementor-element-ee9142b {
 width:100%; max-width:none; margin-inline:0;
}
body .elementor.elementor-1190 .elementor-element.elementor-element-d83de73 {
 margin-right:calc((100% - min(85%, 1200px)) / 2 + 40px);
 padding-right:0;
}
@media(max-width:767px) {
 body .elementor.elementor-1190 .elementor-element.elementor-element-77e7a79 {
  width:calc(100% - 40px); margin-inline:auto;
 }
}

/* Keep the open label on the same anchor as the vertical menu. */
body.elementor-page-1190 .feinwerk-menu-toggle[aria-expanded="true"] {
 right:var(--menu-gutter-right, 2px) !important;
}
body .feinwerk-menu-toggle[aria-expanded="true"] .menue span {
 transform:translate(calc(var(--open-x, 0px) - 24px), 36px);
}

/* Both arrangements share the midpoint between e and n (42px, 48px). */
body .feinwerk-menu-toggle[aria-expanded="true"] .menue span {
 transform:translate(var(--open-x, 0px), 36px);
}

/* The visible menu toggle replaces the separate close-button header. */
body #offcanvas .mm-head { padding:0; height:0; min-height:0; }

/* Soft white backing for the closing contact message. */
body .elementor.elementor-1190 .elementor-element.elementor-element-d83de73,
body .elementor.elementor-1190 .elementor-element.elementor-element-77e7a79 {
 background:rgba(255,255,255,.82) !important;
 padding:30px !important;
 border:0; box-shadow:none;
}

/* Keep the short refinishing caption on one line within its own card. */
body .elementor.elementor-1190 .elementor-element.elementor-element-a21cb13 {
 width:100%; padding-inline:0 !important; container-type:inline-size;
}
body .elementor.elementor-1190 .elementor-element-a21cb13 p {
 white-space:nowrap; font-size:min(14px,5.1cqi) !important;
}

/* Phone homepage: centre content headings and calls to action within each section. */
@media(max-width:767px) {
 body .elementor.elementor-1190 > :is(.elementor-element-85ccaae,.elementor-element-d0a73e1,.elementor-element-b7d6ba8,.elementor-element-8f84429,.elementor-element-ee9142b) :is(.elementor-widget-heading,.elementor-widget-button) {
  width:100%; max-width:100%; margin-inline:0; align-self:center !important;
  text-align:center !important;
 }
 body .elementor.elementor-1190 > :is(.elementor-element-85ccaae,.elementor-element-d0a73e1,.elementor-element-b7d6ba8,.elementor-element-8f84429,.elementor-element-ee9142b) :is(.elementor-heading-title,.elementor-button-wrapper) {
  text-align:center !important;
 }
 body .elementor.elementor-1190 :is(.elementor-element-f731ad0,.elementor-element-e739255,.elementor-element-9ef6d66,.elementor-element-063a47f) .elementor-heading-title {
  font-size:clamp(24px,7.5vw,36px) !important;
  line-height:1.2 !important;
  white-space:nowrap;
 }
 body .elementor.elementor-1190 :is(.elementor-element-f731ad0,.elementor-element-e739255,.elementor-element-9ef6d66,.elementor-element-063a47f) .elementor-heading-title br {
  display:none;
 }
 /* Stacked services use their actual text height and a consistent, smaller gap. */
 body .elementor.elementor-1190 .elementor-element.elementor-element-58a5d4f {
  row-gap:40px;
 }
 body .elementor.elementor-1190 :is(.elementor-element.elementor-element-22e07b7,.elementor-element.elementor-element-ec619b2) {
  min-height:0; padding-bottom:16px;
 }
 body .elementor.elementor-1190 :is(.elementor-element-22e07b7,.elementor-element-ec619b2) p:last-child {
  margin-bottom:0;
 }
 /* On stacked cards, the final caption does not need the desktop equal-height space. */
 body .elementor.elementor-1190 .elementor-element.elementor-element-53e5a4f {
  min-height:0; padding-bottom:0;
 }
 body .elementor.elementor-1190 .elementor-element-0bb3add p { margin-bottom:0; }
 body .elementor.elementor-1190 .elementor-element.elementor-element-163b548 { margin-top:0; }
 /* Keep stacked work examples compact and the gallery button close to the last caption. */
 body .elementor.elementor-1190 .elementor-element.elementor-element-fbded8f { row-gap:24px; }
 body .elementor.elementor-1190 :is(.elementor-element.elementor-element-d35acba,.elementor-element.elementor-element-380f06e,.elementor-element.elementor-element-a53cc2d) {
  min-height:0; padding-bottom:0;
 }
 body .elementor.elementor-1190 .elementor-element-fbded8f .elementor-widget-text-editor p:last-child { margin-bottom:0; }
 body .elementor.elementor-1190 .elementor-element.elementor-element-782031d { margin-top:0; }
 /* Reveal the existing desktop backdrops in narrow strips between phone sections. */
 body .elementor.elementor-1190 > :is(.elementor-element-d88b5d4,.elementor-element-1ef3d15,.elementor-element-a0d00d7) {
  --min-height:64px;
  display:flex !important; min-height:64px; height:64px;
  padding:0; margin:0;
 }
 body .elementor.elementor-1190 > :is(.elementor-element-d88b5d4,.elementor-element-1ef3d15,.elementor-element-a0d00d7) > .e-con-inner {
  min-height:0; padding:0;
 }
 body .elementor.elementor-1190 .elementor-element.elementor-element-77e7a79 {
  margin-block:64px;
 }
}

/* Gallery heading and photographs share the site's content frame. */
body .elementor.elementor-2182 .elementor-element.elementor-element-e3a9725,
body .elementor.elementor-2182 .elementor-element.elementor-element-fwgal01 {
 width:85%; max-width:1200px; margin-inline:auto; padding-inline:40px; align-self:center;
}
body .elementor.elementor-2182 .elementor-element-e3a9725 .e-con-inner {
 width:100%; max-width:none; padding-inline:0;
}
body .elementor.elementor-2182 .elementor-element-4e004e7,
body .elementor.elementor-2182 .elementor-element-4e004e7 .elementor-heading-title { text-align:left !important; width:100%; }
body .elementor.elementor-2182 .fw-gallery.fw-modular-gallery { width:100%; max-width:none; margin-inline:0; padding-inline:0; }
body .elementor.elementor-2182 .elementor-element-fwgal02 { width:100%; padding-inline:0; }
@media(max-width:767px) {
 body .elementor.elementor-2182 .elementor-element.elementor-element-e3a9725,
 body .elementor.elementor-2182 .elementor-element.elementor-element-fwgal01 { width:100%; padding-inline:20px; }
}

/* Finish the gallery with one wide image instead of an empty right-hand field. */
@media(min-width:601px) {
 body .elementor.elementor-2182 .fw-gallery.fw-modular-gallery .fw-gallery-item:last-child {
  grid-column:1 / -1; grid-row:span 2;
 }
}

/* Same menu anchor on every page, both open and closed. */
body .feinwerk-menu-toggle,
body .feinwerk-menu-toggle[aria-expanded="true"],
body .feinwerk-menu-toggle:not([aria-expanded="true"]) {
 right:var(--menu-gutter-right,2px) !important;
}

/* Vertical wordmark mirrors the right-hand menu's edge distance. */
body a.fw-vertical-logo {
 position:absolute; top:24px; left:var(--fw-control-edge,44px); transform:translateX(-50%);
 display:flex; flex-direction:column; align-items:center; gap:0;
 z-index:10000; width:32px; text-decoration:none;
 font-family:'JuliusSansOne',sans-serif !important; font-size:32px; font-weight:400;
 line-height:36px; color:#1C4438 !important;
}
body a.fw-vertical-logo span {
 position:relative; display:block; width:32px; height:36px;
 font-family:'JuliusSansOne',sans-serif !important; font-size:32px; font-weight:400; line-height:36px; text-align:center;
 color:#1C4438 !important; -webkit-text-fill-color:#1C4438 !important;
}
body a.fw-vertical-logo span::after {
 content:attr(data-letter); position:absolute; inset:0; font:inherit; line-height:inherit; text-align:inherit;
 color:white; -webkit-text-fill-color:white;
 clip-path:var(--fw-white-clip,inset(100%)); pointer-events:none;
}

/* Keep the larger vertical wordmark visible while scrolling. */
body a.fw-vertical-logo {
 position:fixed; width:36px; font-size:36px; line-height:40px;
}
body a.fw-vertical-logo span {
 width:36px; height:40px; font-size:36px; line-height:40px;
}

/* Remove native button padding so the calculated letter centre is exact. */
body .feinwerk-menu-toggle {
 padding:0 !important; margin:0 !important; box-sizing:border-box;
 width:64px !important; min-width:64px; border:0 !important;
}
body .feinwerk-menu-toggle .menue {
 margin:0 !important; padding:0 !important; width:64px;
}

/* Horizontal wordmark collapses into the original Feinwerk emblem. */
body a.fw-vertical-logo {
 left:calc(var(--fw-control-edge,44px) - 36px); transform:none;
 display:flex; flex-direction:row; align-items:flex-start;
 width:max-content; height:72px; padding:0 0 0 26px; box-sizing:border-box;
}
body a.fw-vertical-logo .fw-brand-letter {
 width:auto; height:44px; line-height:44px; flex:0 0 auto;
 font-size:36px; position:relative; top:14px;
}
body .fw-brand-emblem { position:absolute; inset:0 auto auto 0; width:72px; height:72px; pointer-events:none; }
/* Only the visible emblem accepts clicks after the wordmark has disappeared. */
body a.fw-vertical-logo.fw-brand-compact { pointer-events:none; }
body a.fw-vertical-logo.fw-brand-compact .fw-brand-emblem { pointer-events:auto; }
body .fw-brand-emblem i { position:absolute; inset:0; opacity:0; background:#1C4438; mask:url('/wp-content/mu-plugins/feinwerk-design/brand-logo.png') center/contain no-repeat; }
body .fw-brand-emblem i::after { content:''; position:absolute; inset:0; background:#fff; clip-path:var(--fw-white-clip,inset(100%)); }
body .fw-brand-emblem .fw-brand-f { clip-path:inset(26% 34% 24% 36%); }
@media(max-width:767px){body a.fw-vertical-logo .fw-brand-letter {font-size:28px;}}

/* Composite the moving logo pieces without relaying out the page. */
body a.fw-vertical-logo .fw-brand-letter { will-change:transform,opacity; backface-visibility:hidden; }
body .fw-brand-emblem i { will-change:opacity; backface-visibility:hidden; }

/* Slightly larger horizontal brand lettering. */
body a.fw-vertical-logo .fw-brand-letter {
 font-size:40px; height:48px; line-height:48px; top:12px;
}
@media(max-width:767px) {
 body a.fw-vertical-logo .fw-brand-letter { font-size:30px; }
}

/* Larger opening wordmark; compact emblem stays the same size. */
body a.fw-vertical-logo .fw-brand-letter {
 font-size:44px; height:52px; line-height:52px; top:10px;
}
@media(max-width:767px) {
 body a.fw-vertical-logo .fw-brand-letter { font-size:32px; }
}

/* More prominent horizontal wordmark. */
body a.fw-vertical-logo .fw-brand-letter {
 font-size:50px; height:58px; line-height:58px; top:7px;
}
@media(max-width:767px) {
 body a.fw-vertical-logo .fw-brand-letter { font-size:35px; }
}

/* Align the hero slogan with the visible left edge of the wordmark. */
body .elementor.elementor-1190 .elementor-element.elementor-element-8c06917 {
 padding-left:var(--fw-wordmark-left,calc(var(--fw-control-edge,44px) - 10px)) !important;
 margin-left:0 !important; width:100%; max-width:none;
}
body .elementor.elementor-1190 .elementor-element.elementor-element-48a8b33 {
 margin-left:0 !important; padding-left:0 !important; text-align:left;
}
body .fw-brand-emblem i { mask-size:100% 100%; }

/* Fixed vertical slogan mirrors the floating contact control. */
body .elementor.elementor-1190 .elementor-element-48a8b33[hidden] { display:none !important; }
body .fw-side-slogan {
 position:fixed; left:var(--fw-control-edge,44px); bottom:calc(env(safe-area-inset-bottom,0px) + 24px);
 transform:translateX(-50%); z-index:9998;
 display:flex; flex-direction:column; align-items:center; gap:14px;
 font-family:'Avenir Next-regular.',Avenir,sans-serif; font-size:16px; font-weight:400; line-height:19px;
 pointer-events:none;
}
body .fw-side-slogan .fw-slogan-line { display:flex; flex-direction:column; align-items:center; }
body .fw-side-slogan span { position:relative; display:block; width:18px; height:19px; text-align:center; color:#1C4438; }
body .fw-side-slogan span::after {
 content:attr(data-letter); position:absolute; inset:0; font:inherit; text-align:inherit;
 color:white; clip-path:var(--fw-white-clip,inset(100%));
}
@media(max-width:767px) {
 body .fw-side-slogan {font-size:12px; line-height:14px; gap:10px;}
 body .fw-side-slogan span {height:14px;width:14px;}
}

/* Larger, more closely stacked slogan letters. */
body .fw-side-slogan { font-size:18px; line-height:18px; }
body .fw-side-slogan span { width:20px; height:16px; }
@media(max-width:767px) {
 body .fw-side-slogan { font-size:14px; line-height:14px; }
 body .fw-side-slogan span { width:16px; height:12px; }
}

/* Double the vertical slogan size, retaining its compact proportions. */
body .fw-side-slogan { font-size:36px; line-height:36px; }
body .fw-side-slogan span { width:40px; height:32px; }
@media(max-width:767px) {
 body .fw-side-slogan { font-size:28px; line-height:28px; }
 body .fw-side-slogan span { width:32px; height:24px; }
}

/* Refine vertical slogan size and spacing. */
body .fw-side-slogan { font-size:32px; line-height:34px; gap:30px; }
body .fw-side-slogan span { width:38px; height:34px; }
@media(max-width:767px) {
 body .fw-side-slogan { font-size:25px; line-height:27px; gap:24px; }
 body .fw-side-slogan span { width:30px; height:26px; }
}

/* Background contrast changes immediately, without colour interpolation. */
body .fw-side-slogan span::after,
body .fw-vertical-logo .fw-brand-letter::after,
body .fw-brand-emblem i::after,
body .feinwerk-menu-toggle .menue span::after,
body .fab-contact .fw-contact-contrast { transition:none !important; }

/* Horizontal lower-left slogan scales down with the compact logo. */
body .fw-side-slogan {
 left:var(--fw-wordmark-left,24px); bottom:24px;
 transform:none; transform-origin:left bottom;
 align-items:flex-start; gap:5px; font-size:32px; line-height:38px;
 will-change:transform;
}
body .fw-side-slogan .fw-slogan-line { flex-direction:row; align-items:baseline; }
body .fw-side-slogan span { width:auto; height:38px; text-align:left; }
@media(max-width:767px) {
 body .fw-side-slogan { font-size:25px; line-height:30px; }
 body .fw-side-slogan span { width:auto; height:30px; }
}

/* Prominent slogan over the start image, compact in the side margin afterwards. */
body .fw-side-slogan { font-size:50px; line-height:58px; gap:5px; }
body .fw-side-slogan span { height:58px; }
@media(max-width:767px) {
 body .fw-side-slogan { font-size:34px; line-height:40px; }
 body .fw-side-slogan span { height:40px; }
}

/* Larger menu lettering with a tighter vertical stack and shared pivot. */
body .feinwerk-menu-toggle .menue span {
 font-size:26px !important; height:26px; line-height:26px;
 transform:translate(calc(var(--closed-x,24px) + 10px), calc(5px + var(--letter-index) * 20px));
}
body .feinwerk-menu-toggle[aria-expanded="true"] .menue span {
 transform:translate(var(--open-x,0px),35px);
}

/* Slightly more room above the vertical menu's umlaut. */
body .feinwerk-menu-toggle:not([aria-expanded="true"]) .menue span:last-child {
 transform:translate(calc(var(--closed-x,24px) + 10px),68px);
}

/* All hero headings use the shared scroll-responsive title. */
body .elementor .elementor-element-7369850 .elementor-element-48a8b33[hidden] { display:none !important; }
/* Above the menu scrim (10990), below the white menu panel (11000). */
body .fw-side-slogan { z-index:10995; }
body .fw-side-slogan.fw-over-start-image span {
 color:#FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important;
}
body .fw-side-slogan.fw-over-start-image span::after {
 color:#FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important;
}

/* About page content follows the shared frame; hero and background stay full width. */
body .elementor.elementor-2236 > .elementor-element:not(.elementor-element-61faaa0):not(.elementor-element-7369850):not(.elementor-element-f963c79):not(.elementor-element-fwfooter) {
 width:85%; max-width:1200px; margin-inline:auto; padding-inline:40px !important; align-self:center;
}
body .elementor.elementor-2236 > .elementor-element:not(.elementor-element-61faaa0):not(.elementor-element-7369850):not(.elementor-element-f963c79):not(.elementor-element-fwfooter) > .e-con {
 padding-left:0 !important; padding-right:0 !important;
}
@media(max-width:767px) {
 body .elementor.elementor-2236 > .elementor-element:not(.elementor-element-61faaa0):not(.elementor-element-7369850):not(.elementor-element-f963c79):not(.elementor-element-fwfooter) {
  width:100%; padding-inline:20px !important;
 }
}

/* About introduction: a centred name with its smaller claim on the next line. */
body .elementor.elementor-2236 .elementor-element-85ccaae .elementor-element.elementor-element-f731ad0 {
 width:100%; max-width:100%; align-self:center;
}
body .elementor.elementor-2236 .elementor-element-85ccaae .elementor-element-f731ad0 .elementor-heading-title {
 text-align:center !important;
}
body .elementor.elementor-2236 .elementor-element-85ccaae .elementor-element-f731ad0 :is(.fw-about-name,.fw-about-claim) {
 display:block; line-height:1.25;
}
body .elementor.elementor-2236 .elementor-element-85ccaae .elementor-element-f731ad0 .elementor-heading-title .fw-about-name {
 font-family:'JuliusSansOne',sans-serif !important; font-weight:100 !important;
}
body .elementor.elementor-2236 .elementor-element-85ccaae .elementor-element-f731ad0 .elementor-heading-title .fw-about-claim {
 font-family:'Avenir Next-regular.',Avenir,sans-serif !important;
 font-weight:400 !important; font-size:.7em; margin-top:.3em;
}
@media(max-width:767px) {
 body .elementor.elementor-2236 .elementor-element-85ccaae .elementor-element-f731ad0 .elementor-heading-title .fw-about-claim {
  font-size:clamp(14px,4.1vw,19px);
 }
}

/* Comfortable reading width and distinct paragraphs beneath the about heading. */
body .elementor.elementor-2236 .elementor-element.elementor-element-9743a77 {
 width:100%; max-width:68ch; margin-inline:auto; align-self:center;
 text-align:center; line-height:1.6;
}
body .elementor.elementor-2236 .elementor-element-9743a77 p {
 margin:0 0 1.15em; text-align:center; text-wrap:pretty;
}
body .elementor.elementor-2236 .elementor-element-9743a77 p:last-child { margin-bottom:0; }

/* Hands behind Feinwerk: photograph left, introduction right. */
body .elementor.elementor-2236 .fw-hands-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:center; }
body .elementor.elementor-2236 .fw-hands-section .elementor-element-fwhandsimg { width:100%; }
body .elementor.elementor-2236 .fw-hands-section .elementor-element-fwhandsimg img { width:100%; height:auto; display:block; }
body .elementor.elementor-2236 .elementor-element-fwhandstxt,
body .elementor.elementor-2236 .elementor-element-fwhandstxt .e-con,
body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-widget { width:100%; max-width:none; margin-inline:0; padding-inline:0 !important; }
body .elementor.elementor-2236 .elementor-element-fwhandstxt :is(.elementor-heading-title,p) { text-align:left !important; }
@media(max-width:767px) {
 body .elementor.elementor-2236 .fw-hands-section { grid-template-columns:minmax(0,1fr); gap:24px; }
}

/* Larger photograph, more separation, and top-aligned introduction. */
body .elementor.elementor-2236 .fw-hands-section {
 grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:64px; align-items:start;
}
body .elementor.elementor-2236 .elementor-element-fwhandstxt,
body .elementor.elementor-2236 .elementor-element-fwhandstxt .e-con {
 align-self:start; justify-content:flex-start; padding-top:0 !important; margin-top:0 !important; min-height:0;
}
body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-widget-heading,
body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-heading-title {
 margin-top:0 !important; padding-top:0 !important;
}
@media(max-width:767px) {
 body .elementor.elementor-2236 .fw-hands-section { grid-template-columns:minmax(0,1fr); gap:24px; }
}

/* Elementor's boxed inner wrapper must share the image/text grid. */
body .elementor.elementor-2236 .elementor-element.elementor-element-656b16b.fw-hands-section {
 display:grid !important; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) !important;
 column-gap:64px !important; align-items:start !important;
}
body .elementor.elementor-2236 .fw-hands-section > .e-con-inner { display:contents !important; }
body .elementor.elementor-2236 .fw-hands-section .elementor-element-fwhandsimg,
body .elementor.elementor-2236 .fw-hands-section .elementor-element-fwhandstxt {
 width:100% !important; min-width:0; max-width:none; align-self:start !important;
}
body .elementor.elementor-2236 .elementor-element-fwhandstxt .e-con-inner {
 padding:0 !important; margin:0 !important; width:100%; justify-content:flex-start !important;
}
@media(max-width:767px) {
 body .elementor.elementor-2236 .elementor-element.elementor-element-656b16b.fw-hands-section {
  grid-template-columns:minmax(0,1fr) !important; gap:40px !important;
 }
 /* Keep the heading attached to its copy, with more space above the text group. */
 body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-element-7b6aa73 {
  gap:14px;
 }
 body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-element-f7461dd {
  margin-bottom:0 !important;
 }
 body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-element-d72adab p:first-child {
  margin-top:0;
 }
}

/* Enlarge the wordmark; the emblem follows its measured F proportionally. */
body a.fw-vertical-logo .fw-brand-letter {
 font-size:56px; height:64px; line-height:64px; top:4px;
}
@media(max-width:767px) {
 body a.fw-vertical-logo .fw-brand-letter { font-size:39px; }
 /* A soft contour shadow keeps the corner controls clear over photographs. */
 body a.fw-vertical-logo,
 body .feinwerk-menu-toggle { filter:drop-shadow(0 1px 2px rgba(0,0,0,.2)); }
 body .fab-contact .fab-toggle { box-shadow:0 2px 8px rgba(0,0,0,.18); }
}

/* White first paint until the actual background contrast has been calculated. */
html:not(.fw-contrast-ready) body .site-header a.logo,
html:not(.fw-contrast-ready) body .mm-trigger,
html:not(.fw-contrast-ready) body .mm-trigger .menue,
html:not(.fw-contrast-ready) body .feinwerk-menu-toggle .menue span,
html:not(.fw-contrast-ready) body .fw-vertical-logo .fw-brand-letter,
html:not(.fw-contrast-ready) body .fw-side-slogan span {
 color:#fff !important; -webkit-text-fill-color:#fff !important;
}
html:not(.fw-contrast-ready) body .fw-brand-emblem i { background:#fff !important; }
html:not(.fw-contrast-ready) body.elementor-page-2182 .fw-side-slogan span {
 color:#FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important;
}

/* Photo links enlarge gently instead of receiving a coloured overlay. */
body .elementor.elementor-1190 :is(.elementor-element-8ab1ee5,.elementor-element-8e34018,.elementor-element-76559f8,.elementor-element-71435a8,.elementor-element-35acf1f,.elementor-element-ebd6745),
body .elementor.elementor-1190 :is(.elementor-element-8ab1ee5,.elementor-element-8e34018,.elementor-element-76559f8,.elementor-element-71435a8,.elementor-element-35acf1f,.elementor-element-ebd6745):hover { --overlay-opacity:0 !important; }
@media(hover:hover) and (pointer:fine) {
 body .elementor.elementor-1190 :is(.elementor-element-8ab1ee5,.elementor-element-8e34018,.elementor-element-76559f8,.elementor-element-71435a8,.elementor-element-35acf1f,.elementor-element-ebd6745),
 body .elementor.elementor-1190 .elementor-element-fwteam62 a,
 body .feinwerk-menu-toggle { scale:1; transition:scale .25s ease; }
 body .elementor.elementor-1190 :is(.elementor-element-8ab1ee5,.elementor-element-8e34018,.elementor-element-76559f8,.elementor-element-71435a8,.elementor-element-35acf1f,.elementor-element-ebd6745):hover,
 body .elementor.elementor-1190 .elementor-element-fwteam62 a:hover { scale:1.04; z-index:2; }
 body .feinwerk-menu-toggle { transform-origin:42px 48px; }
 body .feinwerk-menu-toggle:hover { scale:1.1; }
}
@media(prefers-reduced-motion:reduce) {
 body .feinwerk-menu-toggle,
 body .elementor.elementor-1190 :is(.elementor-element-8ab1ee5,.elementor-element-8e34018,.elementor-element-76559f8,.elementor-element-71435a8,.elementor-element-35acf1f,.elementor-element-ebd6745) { transition:none; }
}

/* The full wordmark stays white; only the compact emblem changes colour. */
body a.fw-vertical-logo .fw-brand-letter {
 color:#fff !important; -webkit-text-fill-color:#fff !important;
}
body a.fw-vertical-logo .fw-brand-letter::after { content:none !important; }

/* Side navigation grows around each word's centre without moving other entries. */
body #offcanvas .mm-link {
 display:inline-block; transform-origin:center;
 transition:scale .2s ease; opacity:1;
}
@media(hover:hover) and (pointer:fine) {
 body #offcanvas .mm-link:hover { scale:1.08; opacity:1; }
}
body #offcanvas .mm-link:focus-visible { scale:1.08; }
@media(prefers-reduced-motion:reduce) {
 body #offcanvas .mm-link { transition:none; }
}

/* Give the revision question the card width so “Takt?” stays on its first line. */
body .elementor-1190 .elementor-element.elementor-element-ac8d172 {
 width:100%; padding-inline:8px;
}

/* Team photo is static; the dedicated about link carries the hover effect. */
body .elementor-1190 .elementor-element-fwteam62 img { transform:none !important; scale:1 !important; }
body .elementor-1190 .elementor-element-85c3571 .elementor-button {
 transition:scale .2s ease;
}
@media(hover:hover) and (pointer:fine) {
 body .elementor-1190 .elementor-element-85c3571 .elementor-button:hover { scale:1.08; }
}
@media(prefers-reduced-motion:reduce) {
 body .elementor-1190 .elementor-element-85c3571 .elementor-button { transition:none; }
}

/* Matching hover growth for the service and gallery links. */
body .elementor-1190 :is(.elementor-element-163b548,.elementor-element-782031d) .elementor-button {
 transition:scale .2s ease;
}
@media(hover:hover) and (pointer:fine) {
 body .elementor-1190 :is(.elementor-element-163b548,.elementor-element-782031d) .elementor-button:hover { scale:1.08; }
}
@media(prefers-reduced-motion:reduce) {
 body .elementor-1190 :is(.elementor-element-163b548,.elementor-element-782031d) .elementor-button { transition:none; }
}

/* Partner cards follow the home service section's frame and typography. */
body .elementor .elementor-element.fw-partners-section {
 width:85%; max-width:1200px; margin:0 auto; padding:80px 40px;
}
.fw-partner-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; }
.fw-partner-card { text-align:center; min-width:0; }
.fw-partner-image { display:flex; align-items:center; justify-content:center; height:320px; background:white; }
.fw-partner-image img { width:100%; height:100%; object-fit:contain; transition:scale .2s ease; }
body .fw-partner-card h2 { font-family:'Avenir Next-regular.',Avenir,sans-serif; font-size:26px; font-weight:400; color:#1C4438; margin:24px 0; }
body .fw-partner-button { display:inline-block; background:#1C4438; color:white; border-radius:0; padding:14px 24px; font-family:'Avenir Next-regular.',Avenir,sans-serif; font-size:16px; font-weight:400; transition:scale .2s ease; }
@media(hover:hover) and (pointer:fine) {
 .fw-partner-image:hover img { scale:1.04; }
 body .fw-partner-button:hover { scale:1.08; background:#1C4438; color:white; }
}
@media(max-width:767px) {
 body .elementor .elementor-element.fw-partners-section { width:100%; padding:50px 20px; }
 .fw-partner-grid { grid-template-columns:1fr; gap:50px; }
 .fw-partner-image { height:250px; }
}
@media(prefers-reduced-motion:reduce) { .fw-partner-image img,body .fw-partner-button { transition:none; } }

/* More restrained partner logos, with the logo itself retaining the website link. */
.fw-partner-image { height:250px; }
.fw-partner-image img { width:80%; height:80%; }
body .fw-partner-button { display:none; }
@media(max-width:767px) { .fw-partner-image { height:210px; } }

body .fw-partner-card h2 { margin-bottom:6px; }
body .fw-partner-card .fw-partner-city {
 margin:0; font-family:'Avenir Next-regular.',Avenir,sans-serif;
 font-size:16px; font-weight:400; line-height:1.5; color:#1C4438; text-align:center;
}

/* About hero photograph in black and white; keep interface colours intact. */
body .elementor-2236 .elementor-element-7369850 > .elementor-background-slideshow {
 filter:grayscale(1);
}
/* Show the workbenches without the foreground chair back in the phone crop. */
@media(max-width:767px) {
 body .elementor-2236 .elementor-element-7369850 .elementor-background-slideshow__slide__image {
  background-position:53% center !important;
  transform-origin:53% center !important;
 }
}

/* The text determines the desktop row height; crop the photograph to match. */
@media(min-width:768px) {
 body .elementor.elementor-2236 .fw-hands-section .elementor-element-fwhandsimg {
  position:relative; align-self:stretch !important; min-height:0; margin:0;
 }
 body .elementor.elementor-2236 .fw-hands-section .elementor-element-fwhandsimg img {
  position:absolute; inset:0; width:100%; height:100%; max-height:none;
  object-fit:cover; object-position:center bottom;
 }
 body .elementor.elementor-2236 .elementor-element-fwhandstxt { padding-bottom:0 !important; }
 body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-widget-text-editor:last-child,
 body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-widget-text-editor:last-child p:last-child { margin-bottom:0 !important; }
}

/* Shorter phone crop keeps the hands and watch visible at the bottom of the photo. */
@media(max-width:767px) {
 body .elementor.elementor-2236 .fw-hands-section .elementor-element-fwhandsimg img {
  height:auto; aspect-ratio:1; max-height:420px;
  object-fit:cover; object-position:center bottom;
 }
}

/* Use available width: Safari's browser bars can make a tall tablet window
   report a landscape viewport. Both need the same broad, shorter photograph. */
@media(min-width:768px) and (max-width:1100px) {
 body .elementor.elementor-2236 .elementor-element.elementor-element-656b16b.fw-hands-section {
  grid-template-columns:minmax(0,1fr) !important; gap:40px !important;
 }
 body .elementor.elementor-2236 .fw-hands-section .elementor-element-fwhandsimg {
  align-self:start !important; overflow:hidden;
 }
 body .elementor.elementor-2236 .fw-hands-section .elementor-element-fwhandsimg img {
  position:static; height:auto; aspect-ratio:3/2; max-height:480px;
  object-fit:cover; object-position:center bottom;
  /* Move the photograph inside its unchanged frame. A little overscan keeps
     the left edge filled while the subject moves to the right. */
  transform:translateX(1cm) scale(1.16); transform-origin:center bottom;
 }
 body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-element-7b6aa73 {
  gap:16px;
 }
 body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-element-f7461dd {
  margin-bottom:0 !important;
 }
 body .elementor.elementor-2236 .elementor-element-fwhandstxt .elementor-element-d72adab p:first-child {
  margin-top:0;
 }
}

/* Paired portraits, separated from the introduction above. */
body .elementor.elementor-2236 .elementor-element.fw-portraits-section {
 width:85%; max-width:1200px; margin:80px auto 0; padding:0 40px 80px;
}
.fw-portrait-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
.fw-portrait-grid img { display:block; width:100%; height:100%; aspect-ratio:3/4; object-fit:cover; object-position:center; }
@media(max-width:767px) {
 body .elementor.elementor-2236 .elementor-element.fw-portraits-section { width:100%; margin-top:48px; padding:0 20px 48px; }
 .fw-portrait-grid { gap:20px; }
}

/* Eight portraits arranged as 3 / 3 / 2 in the existing order. */
.fw-portrait-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }

/* Centre the final pair while retaining the same portrait width and gap. */
.fw-portrait-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
.fw-portrait-grid > img { grid-column:span 2; }
.fw-portrait-grid > img:nth-child(7) { grid-column:2 / span 2; }
.fw-portrait-grid > img:nth-child(8) { grid-column:4 / span 2; }

/* First portrait reveals the biography over a softened photograph. */
.fw-portrait-grid > .fw-portrait-profile { grid-column:span 2; }
.fw-portrait-profile { position:relative; min-width:0; overflow:hidden; background:white; }
/* The photo stays in normal flow, so Elementor reserves the full card height
   even when the reverse face and its text are positioned over the photo. */
.fw-portrait-turn,.fw-portrait-front { display:block; position:relative; width:100%; }
.fw-portrait-back { display:block; position:absolute; inset:0; }
.fw-portrait-profile img { height:auto; aspect-ratio:3/4; transition:opacity .3s ease; }
.fw-portrait-bio {
 position:absolute; inset:0; padding:var(--fw-bio-padding,16px); overflow-y:auto;
 color:#1C4438; background:rgba(255,255,255,.86);
 opacity:0; visibility:hidden; transition:opacity .3s ease,visibility .3s;
 font-family:'Avenir Next-regular.',Avenir,sans-serif; font-size:var(--fw-bio-size,13px); line-height:1.38; text-align:left;
}
body .fw-portrait-bio h3 { font:inherit; font-size:1.35em; line-height:1.2; margin:0 0 .65em; color:inherit; }
.fw-portrait-bio p { margin:0 0 .65em; }
.fw-portrait-bio p:last-child { margin-bottom:0; }
@media(min-width:768px) and (hover:hover) and (pointer:fine) {
 .fw-portrait-profile:hover .fw-portrait-bio,
 .fw-portrait-profile:focus .fw-portrait-bio,
 .fw-portrait-profile:focus-within .fw-portrait-bio { opacity:1; visibility:visible; }
}
.fw-portrait-profile:focus-visible { outline:2px solid #1C4438; outline-offset:4px; }
@media(prefers-reduced-motion:reduce) { .fw-portrait-bio,.fw-portrait-profile img { transition:none; } }

/* Preserve the centred last row when portraits include biography wrappers. */
.fw-portrait-grid > .fw-portrait-profile:nth-child(7) { grid-column:2 / span 2; }
.fw-portrait-grid > .fw-portrait-profile:nth-child(8) { grid-column:4 / span 2; }

/* All existing contact sections use the contact page's container geometry. */
body .elementor[class] .elementor-element.elementor-element-18b5cd2 {
 width:100% !important; max-width:none !important; padding-inline:0 !important;
 margin-inline:auto;
}
body .elementor[class] .elementor-element.elementor-element-2b8dfcd {
 padding:40px 40px 20px !important;
 width:85%; max-width:1200px; margin-inline:auto; align-self:center;
}
@media(max-width:767px) {
 body .elementor[class] .elementor-element.elementor-element-2b8dfcd { width:100%; max-width:none; padding:30px !important; }
}

/* A single editable contact template, without page-specific frame overrides. */
body .elementor[class] .elementor-element.elementor-element-fwcontact {
 width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; display:block;
}
body .elementor-element-fwcontactcode { width:100%; }
body .fw-shared-contact .eael-contact-form,
body .fw-shared-contact .eael-contact-form :is(h1,h2,h3,h4,p,label,input,textarea,select,button,span) {
 font-family:'Avenir Next-regular.',Avenir,sans-serif !important; font-weight:400 !important;
}

/* Consistent action hover: retain colours, only enlarge the control. */
body .elementor .elementor-button,
body .elementor .elementor-button:hover,
body .elementor .elementor-button:focus,
body .fluentform .ff-btn-submit,
body .fluentform .ff-btn-submit:hover,
body .fluentform .ff-btn-submit:focus {
 background:var(--feinwerk-ink) !important; color:#fff !important;
 border-color:var(--feinwerk-ink) !important; opacity:1 !important; filter:none !important;
}
body :is(.elementor-button,.ff-btn-submit,.mm-link,.mm-social,.elementor-social-icon) {
 transition:scale .2s ease;
}
@media(hover:hover) and (pointer:fine) {
 body :is(.elementor-button,.ff-btn-submit,.mm-link,.mm-social,.elementor-social-icon):hover {
  scale:1.08; opacity:1 !important; filter:none !important;
 }
}
@media(prefers-reduced-motion:reduce) {
 body :is(.elementor-button,.ff-btn-submit,.mm-link,.mm-social,.elementor-social-icon) { transition:none; }
}

/* Submit and “Mehr dazu” share the same flat button styling. */
body .elementor .elementor-element-163b548 .elementor-button,
body .elementor .fluentform .ff-btn-submit,
body .elementor .fluentform .ff-btn-submit:hover,
body .elementor .fluentform .ff-btn-submit:focus {
 font-family:'Avenir Next-regular.',Avenir,sans-serif !important;
 font-size:15px !important; font-weight:400 !important; line-height:1 !important;
 letter-spacing:normal !important; text-transform:uppercase;
 padding:12px 24px !important; border:0 !important; border-radius:0 !important;
 box-shadow:none !important; text-shadow:none !important;
}

body .fw-partner-card .fw-partner-description {
 font-family:'Avenir Next-regular.',Avenir,sans-serif; font-size:16px;
 font-weight:400; line-height:1.5; color:#1C4438; text-align:center; margin:0 0 6px;
}

/* Shipping instructions: uniform hanging list indents and section spacing. */
body .elementor-1898 :is(.elementor-element-852c51b,.elementor-element-ca872ef,.elementor-element-06d25a5) {
 width:100%; margin:28px 0 12px; padding:0; text-align:left;
}
body .elementor-1898 :is(.elementor-element-d6199ea,.elementor-element-993e97b,.elementor-element-2755130) {
 width:100%; margin:0; padding:0; text-align:left;
}
body .elementor-1898 .fw-shipping-list { list-style:none; margin:0; padding:0; }
body .elementor-1898 .fw-shipping-list li {
 position:relative; padding-left:1.1em; margin:0 0 .55em; line-height:1.6; text-align:left;
}
body .elementor-1898 .fw-shipping-list li::before { content:'–'; position:absolute; left:0; top:0; }
body .elementor-1898 .fw-shipping-list li:last-child { margin-bottom:0; }

/* The introductory copy belongs exclusively to the contact page. */
body:not(.elementor-page-1358) .elementor-2630 :is(.elementor-element-f731ad0,.elementor-element-ecbe9d9) {
 display:none !important;
}

/* Minimal modal gallery: native top layer blocks the page controls underneath. */
body dialog.fw-gallery-viewer {
 position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none;
 margin:0; padding:0; border:0; background:transparent; color:#fff; overflow:hidden;
}
.fw-gallery-viewer::backdrop { background:rgba(0,0,0,.8); }
.fw-gallery-viewer .fw-viewer-count {
 position:absolute; top:22px; left:24px; font-family:'Avenir Next-regular.',Avenir,sans-serif;
 font-size:16px; line-height:1.5; color:#fff;
}
.fw-viewer-stage { width:100%; height:100%; display:flex; align-items:center; justify-content:center; gap:12px; padding:64px 12px 36px; box-sizing:border-box; }
.fw-viewer-image { display:block; width:auto; height:auto; max-width:calc(100% - 144px); max-height:100%; object-fit:contain; }
body .fw-gallery-viewer .fw-viewer-arrow {
 display:flex; align-items:center; justify-content:center; flex:0 0 56px; width:56px; height:72px;
 padding:0; border:0; border-radius:0; background:transparent !important; color:#fff;
 box-shadow:none; cursor:pointer; transition:scale .2s ease;
}
.fw-viewer-arrow span { display:block; width:15px; height:15px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); }
.fw-viewer-prev span { transform:rotate(-135deg); }
body .fw-gallery-viewer .fw-viewer-arrow:disabled { visibility:hidden; pointer-events:none; }
body .fw-gallery-viewer .fw-viewer-arrow:hover { scale:1.1; }
.fw-viewer-arrow:focus-visible { outline:1px solid #fff; outline-offset:0; }
body.fw-gallery-viewing :is(.feinwerk-menu-toggle,.fw-vertical-logo,.fw-brand-emblem,.fab-contact) { pointer-events:none !important; }
@media(max-width:767px) {
 .fw-viewer-stage { gap:0; padding:60px 0 24px; }
 body .fw-gallery-viewer .fw-viewer-arrow { flex-basis:44px; width:44px; }
 .fw-viewer-image { max-width:calc(100% - 88px); }
}
@media(prefers-reduced-motion:reduce) { body .fw-gallery-viewer .fw-viewer-arrow { transition:none; } }

/* Captions belong to the expanded image, leaving the gallery purely visual. */
body .fw-gallery figcaption { display:none !important; }
.fw-viewer-stage { gap:32px; padding-bottom:76px; }
.fw-viewer-image { max-width:calc(100% - 200px); }
body .fw-gallery-viewer .fw-viewer-arrow,
body .fw-gallery-viewer .fw-viewer-arrow:focus,
body .fw-gallery-viewer .fw-viewer-arrow:focus-visible { outline:none !important; border:0 !important; box-shadow:none !important; }
.fw-gallery-viewer .fw-viewer-caption {
 position:absolute; color:white; font-family:'Avenir Next-regular.',Avenir,sans-serif;
 font-size:14px; line-height:1.5; text-align:center;
}
@media(max-width:767px) {
 .fw-viewer-stage { gap:8px; padding-bottom:96px; }
 .fw-viewer-image { max-width:calc(100% - 104px); }
 .fw-gallery-viewer .fw-viewer-caption { font-size:12px; }
 .fw-gallery-viewer .fw-viewer-count { left:12px; font-size:12px; }
}

/* Colour the complete glyph over photos, including descenders outside its line box. */
body .fw-side-slogan span.fw-letter-all-white {
 color:#fff !important; -webkit-text-fill-color:#fff !important;
}
body .fw-side-slogan span.fw-letter-all-white::after { visibility:hidden; }

/* Shared, readable typography for legal pages, isolated from header/form/footer. */
body .elementor .elementor-element.fw-legal-section {
 width:85%; max-width:1200px; margin-inline:auto; padding:72px 40px; min-height:0;
}
body .fw-legal-section > .e-con-inner { width:100%; max-width:none; padding:0; }
body .elementor .elementor-element.fw-legal-copy {
 width:100%; max-width:900px; margin-inline:auto; padding:0 !important;
 display:flex; flex-direction:column; align-items:stretch; gap:0;
}
body .fw-legal-copy > .e-con-inner { width:100%; padding:0; gap:0; }
body .fw-legal-copy .elementor-widget { width:100%; padding:0; margin:0 0 16px; }
body .fw-legal-copy .elementor-widget-text-editor,
body .fw-legal-copy .elementor-widget-text-editor :is(p,li) {
 font-family:'Avenir Next-regular.',Avenir,sans-serif !important; font-size:17px !important;
 line-height:1.7 !important; font-weight:400 !important; text-align:left !important; overflow-wrap:break-word;
}
body .fw-legal-copy p { margin:0 0 12px; }
body .fw-legal-copy p:last-child { margin-bottom:0; }
body .fw-legal-copy .elementor-widget-heading { margin:28px 0 14px; }
body .fw-legal-copy .elementor-heading-title {
 font-size:24px !important; font-weight:400 !important; line-height:1.35 !important; text-align:left !important;
 overflow-wrap:anywhere; hyphens:auto;
}
body .fw-legal-copy .elementor-element-f731ad0 { margin:0 0 32px; }
body .fw-legal-copy .elementor-element-f731ad0 .elementor-heading-title { font-size:38px !important; }
body .fw-legal-copy ul { padding-left:1.2em; margin:0; }
body .fw-legal-copy li { padding-left:.3em; margin-bottom:8px; }
body .fw-legal-copy .fw-legal-numbered p:first-child { padding-left:1.5em; text-indent:-1.5em; }
body .fw-legal-copy .fw-legal-subheading { margin-top:22px; margin-bottom:10px; }
body .fw-legal-copy .fw-legal-subheading p { font-size:21px !important; line-height:1.4 !important; }
@media(max-width:767px) {
 body .elementor .elementor-element.fw-legal-section { width:100%; padding:40px 24px; }
 body .fw-legal-copy .elementor-element-f731ad0 .elementor-heading-title { font-size:28px !important; }
 body .fw-legal-copy .elementor-heading-title { font-size:21px !important; }
 body .fw-legal-copy .elementor-widget-text-editor,
 body .fw-legal-copy .elementor-widget-text-editor :is(p,li) { font-size:16px !important; }
}

/* Legal copy: override Elementor's per-widget spacing consistently. */
body .elementor .fw-legal-copy .elementor-widget {
  margin: 0 0 18px !important;
}
body .elementor .fw-legal-copy .elementor-widget-heading {
  margin: 30px 0 16px !important;
}
body .elementor .fw-legal-copy .elementor-element-f731ad0 {
  margin: 0 0 34px !important;
}
body .elementor .fw-legal-copy .fw-legal-subheading {
  margin: 28px 0 12px !important;
}
body .elementor .fw-legal-copy .fw-legal-subheading.elementor-widget-text-editor p {
  font-size: 21px !important;
  line-height: 1.4 !important;
}
body.elementor-page-1917 .fw-legal-copy :is(.elementor-element-0383a74,.elementor-element-f8edbb8,.elementor-element-401dbbc,.elementor-element-f1cd0a0,.elementor-element-023b3f2) {
  margin: 28px 0 12px !important;
}
body.elementor-page-1917 .fw-legal-copy :is(.elementor-element-0383a74,.elementor-element-f8edbb8,.elementor-element-401dbbc,.elementor-element-f1cd0a0,.elementor-element-023b3f2) p {
  font-size: 21px !important;
  line-height: 1.4 !important;
}

/* Privacy and terms lists use the same dash markers as shipping. */
body :is(.elementor-2140,.elementor-1906) .fw-legal-copy ul {
  list-style:none;
  margin:0;
  padding:0;
}
body :is(.elementor-2140,.elementor-1906) .fw-legal-copy ul > li {
  position:relative;
  padding-left:1.1em;
  margin:0 0 .55em;
}
body :is(.elementor-2140,.elementor-1906) .fw-legal-copy ul > li::before {
  content:'–';
  position:absolute;
  left:0;
  top:0;
}
body :is(.elementor-2140,.elementor-1906) .fw-legal-copy ul > li:last-child {
  margin-bottom:0;
}

/* Navigation entries match the menu trigger lettering. */
body #offcanvas .mm-link {
  font-size:26px !important;
}

/* Hide numeric steppers on the shared contact form's telephone field. */
body .fluentform input[name="numeric_field"]::-webkit-inner-spin-button,
body .fluentform input[name="numeric_field"]::-webkit-outer-spin-button {
  -webkit-appearance:none;
  margin:0;
}
body .fluentform input[name="numeric_field"] {
  -moz-appearance:textfield;
  appearance:textfield;
}

/* Readable field names throughout the shared contact form. */
body .elementor-2630 .fluentform .ff-el-form-control::placeholder {
  color:#1C4438 !important;
  opacity:1 !important;
}

/* Larger, readable field names and entered text in the shared form. */
body .elementor-2630 .fluentform .ff-el-form-control {
  font-size:18px !important;
  line-height:1.5 !important;
}
body .elementor-2630 .fluentform .ff-el-form-control::placeholder {
  font-size:18px !important;
}

/* Centre the contact icons as one evenly spaced group. */
body .elementor-2630 .elementor-element.elementor-element-53f7bc8 {
  width:100%;
  margin-inline:0 !important;
  padding-inline:0 !important;
}
body .elementor-2630 .elementor-element-53f7bc8 .elementor-social-icons-wrapper {
  display:flex;
  flex-wrap:nowrap !important;
  justify-content:center;
  align-items:center;
  gap:clamp(4px,calc((100% - 280px)/4),72px);
  margin:0 !important;
  width:100%;
}
body .elementor-2630 .elementor-element-53f7bc8 .elementor-grid-item {
  display:flex;
  justify-content:center;
  align-items:center;
  flex:0 1 56px;
  min-width:0;
  margin:0 !important;
}
body .elementor-2630 .elementor-element-53f7bc8 .elementor-social-icon {
  max-width:100%;
}

/* Give the form and icon row the same centre axis. */
body .elementor-2630 .elementor-element.elementor-element-016da49 {
  width:100% !important;
  max-width:100% !important;
  align-self:stretch;
}
body .elementor-2630 .elementor-element-016da49 > .elementor-widget-container,
body .elementor-2630 .elementor-element-016da49 .eael-contact-form {
  width:100%;
  max-width:100%;
}

/* Override Fluent Forms' own transition so submit scales smoothly both ways. */
body .elementor .fluentform .ff-btn-submit {
  scale:1;
  transition:scale .2s ease !important;
}
@media(hover:hover) and (pointer:fine) {
  body .elementor .fluentform .ff-btn-submit:hover { scale:1.08; }
}
@media(prefers-reduced-motion:reduce) {
  body .elementor .fluentform .ff-btn-submit { transition:none !important; }
}

/* Service and referral choices share centred controls and two balanced columns. */
body .elementor-2630 .fluentform .ff-el-form-check-label {
  display:flex !important;
  align-items:center;
  gap:9px;
}
body .elementor-2630 .fluentform .ff-el-form-check-label input:is([type="checkbox"],[type="radio"]) {
  position:static !important;
  margin:0 !important;
  flex-shrink:0;
  vertical-align:middle;
  accent-color:#1C4438;
}
body .elementor-2630 .fw-referral-options { width:max-content; max-width:100%; margin-left:auto; }
@media(max-width:767px) {
  body .elementor-2630 .fw-referral-options { width:100%; margin-left:0; }
}

/* Identical stacked checkbox groups for services and referral sources. */
body .elementor-2630 .fluentform :is(.fw-service-options,.fw-referral-options) {
  width:100%;
  max-width:100%;
  margin:0 0 24px;
}
body .elementor-2630 .fluentform :is(.fw-service-options,.fw-referral-options) .ff-el-input--label {
  margin-bottom:20px;
}
body .elementor-2630 .fluentform :is(.fw-service-options,.fw-referral-options) .ff-el-form-check {
  margin:0 0 10px;
}

#haeufige-fragen { scroll-margin-top:32px; }

/* Centre the navigation in the complete white panel at every screen size.
   Auto margins collapse on short screens, leaving all links scrollable. */
body #offcanvas { --link-size:26px; grid-template-rows:0 minmax(0,1fr) auto; }
body #offcanvas .mm-nav {
  position:absolute; inset:0;
  display:flex; flex-direction:column; min-height:0; align-items:center;
  padding:112px 24px !important;
  padding-left:max(24px,env(safe-area-inset-left)) !important;
  padding-right:max(24px,env(safe-area-inset-right)) !important;
}
body #offcanvas .mm-list { margin-block:auto; flex-shrink:0; text-align:center; }
body #offcanvas .mm-footer { grid-row:3; }
body #offcanvas .mm-link {
  font-size:26px !important;
  line-height:26px !important;
  font-weight:400 !important;
}

/* Tablet layouts must not inherit the wide desktop's fixed text insets. */
@media(min-width:768px) and (max-width:1024px) {
 body .elementor[class] .elementor-element.elementor-element-2b8dfcd { padding:40px 40px 30px !important; }
 body .elementor.elementor-1358 .elementor-element.elementor-element-9476e0b { padding-inline:98px; }
 body .elementor-1190 .elementor-element-d0a73e1 .elementor-widget-text-editor { padding-inline:8px !important; }
}
/* Two columns leave room for complete, readable biographies on smaller screens. */
@media(min-width:768px) and (max-width:1279px) {
 .fw-portrait-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
 .fw-portrait-grid > .fw-portrait-profile,
 .fw-portrait-grid > .fw-portrait-profile:nth-child(7),
 .fw-portrait-grid > .fw-portrait-profile:nth-child(8) { grid-column:auto; }
}
@media(max-width:767px) {
 body .elementor .elementor-element.elementor-element-7369850 { min-height:100svh; }
 .fw-portrait-grid { grid-template-columns:1fr; gap:28px; }
 .fw-portrait-grid > .fw-portrait-profile,
 .fw-portrait-grid > .fw-portrait-profile:nth-child(7),
 .fw-portrait-grid > .fw-portrait-profile:nth-child(8) { grid-column:auto; }
}
@media(max-width:767px), (hover:none), (pointer:coarse) {
 .fw-portrait-profile {
  cursor:pointer; -webkit-tap-highlight-color:transparent;
  perspective:1100px; perspective-origin:50% 50%; overflow:visible; background:transparent;
 }
 .fw-portrait-turn {
  transform-style:preserve-3d; -webkit-transform-style:preserve-3d;
  transform-origin:50% 50%; transform:rotateY(0deg);
  /* A deliberate tap turns the card, including on phones with reduced motion. */
  transition:transform .65s cubic-bezier(.4,0,.2,1) !important;
 }
 .fw-portrait-front,.fw-portrait-back {
  backface-visibility:hidden; -webkit-backface-visibility:hidden;
  /* Safari can composite scrolling text through a hidden 3D back face.
     Switch visibility edge-on: this easing reaches 90deg after 35% of .65s. */
  transition:visibility 0s linear .2275s !important;
 }
 .fw-portrait-front { transform:rotateY(0deg); visibility:visible; }
 .fw-portrait-back { transform:rotateY(180deg); visibility:hidden; pointer-events:none; background:#fff; }
 .fw-portrait-profile .fw-portrait-bio {
  position:absolute; inset:0; overflow-y:auto; overscroll-behavior:contain;
  touch-action:pan-y pinch-zoom;
  opacity:1; visibility:inherit; background:#fff;
  transition:none;
 }
 .fw-portrait-profile.fw-profile-open .fw-portrait-turn { transform:rotateY(-180deg); }
 .fw-portrait-profile.fw-profile-open .fw-portrait-front { visibility:hidden; pointer-events:none; }
 .fw-portrait-profile.fw-profile-open .fw-portrait-back { visibility:visible; pointer-events:auto; }
}

/* A full-width phone menu leaves room for titles and the rotated toggle. */
@media(max-width:767px) {
 body #offcanvas { width:100% !important; max-width:100vw !important; }
 body:has(.feinwerk-menu-toggle[aria-expanded="true"]) .fw-vertical-logo,
 body:has(.feinwerk-menu-toggle[aria-expanded="true"]) .fw-side-slogan { visibility:hidden; }
}

@media(hover:none) and (pointer:coarse) {
 .fw-gallery-item > a, .fw-gallery-viewer { -webkit-tap-highlight-color:transparent; }
 .fw-gallery-viewer .fw-viewer-stage { touch-action:pan-y pinch-zoom; }
 body .fw-gallery-viewer .fw-viewer-arrow { display:none; }
 body .fw-gallery-viewer .fw-viewer-stage { gap:0; padding-inline:20px; }
 body .fw-gallery-viewer .fw-viewer-image { max-width:100%; user-select:none; -webkit-user-drag:none; }
}
@media(max-width:767px) {
 html body #offcanvas { left:0 !important; right:0 !important; width:100vw !important; max-width:none !important; }
}
