/*
Theme Name: BoyLorenz Theme
Theme URI: https://de.wordpress.org/themes/twentytwentyfive/
Description: Child Theme von Twenty Twenty-Five
Author: Lorenz Brunke
Author URI: thinkhamburg.com
Template: twentytwentyfive
Version: 1.0.0
*/

/* ========================================================================== */
/* Design Tokens (CSS Variables)                                          */
/* ========================================================================== */

:root {
  /* Spacing */
  --page-padding: 100px;
  --header-footer-padding: 40px;

  /* Spacers */
  --spacer-sm: 100px;
  --spacer-md: 200px;
  --spacer-lg: 300px;
}

/* ========================================================================== */
/* Layout: Page Padding & Full-Width Handling                             */
/* ========================================================================== */

/* Default page content padding */
.is-layout-constrained {
  padding-inline: var(--page-padding);
}

/* Make alignfull flush to viewport edges */
.is-layout-constrained > .alignfull {
  margin-inline: calc(var(--page-padding) * -1);
}

/* Header & Footer inner padding */
.header-inner,
.footer-inner {
  padding-inline: var(--header-footer-padding);
}

/* ========================================================================== */
/* Utilities: Spacers                                                     */
/* ========================================================================== */

.spacer-small  { height: var(--spacer-sm) !important; }
.spacer-medium { height: var(--spacer-md) !important; }
.spacer-large  { height: var(--spacer-lg) !important; }

/* ========================================================================== */
/* Responsive                                                             */
/* ========================================================================== */

/* Mobile */
@media (max-width: 678px) {
  :root {
    --page-padding: 20px;
    --header-footer-padding: 20px;
    --nav-close-top: 87px;
    --nav-close-top-offset: 0px;

    --spacer-sm: 50px;
    --spacer-md: 100px;
    --spacer-lg: 150px;
  }
}

/* Tablet */
@media (min-width: 679px) and (max-width: 1024px) {
  :root {
    --page-padding: 40px;
    --header-footer-padding: 40px;
  }
}

/* ========================================================================== */
/* Masonry Layout: Query Loop (Frontend + Editor)                              */
/* ========================================================================== */

:root{
  --masonry-gap-desktop: 70px;
  --masonry-gap-tablet: 40px;
  --masonry-gap-mobile: 30px;

  --masonry-row-gap-desktop: 70px;
  --masonry-row-gap-tablet: 40px;
  --masonry-row-gap-mobile: 30px;
}

/* -------------------------------------------------------------------------- */
/* Base (applies to all masonry wrappers)                                      */
/* -------------------------------------------------------------------------- */

:is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post-template,
.editor-styles-wrapper :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post-template{
  display: block !important;
  column-gap: var(--masonry-gap-desktop);
  gap: var(--masonry-row-gap-desktop) var(--masonry-gap-desktop);
  padding: 0 0 var(--masonry-padding-bottom-desktop) 0;
  margin: 0;
}

:is(.all-projects-masonry, .explore-masonry, .projects-masonry),
.editor-styles-wrapper :is(.all-projects-masonry, .explore-masonry, .projects-masonry){
  padding-bottom: var(--masonry-padding-bottom-desktop);
}

:is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post,
.editor-styles-wrapper :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post{
  break-inside: avoid;
  margin: 0 0 var(--masonry-row-gap-desktop);
}

/* Remove top margin on the first child inside each masonry item */
:is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post > *:first-child,
.editor-styles-wrapper :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post > *:first-child{
  margin-top: 0 !important;
}

/* -------------------------------------------------------------------------- */
/* Variants                                                                    */
/* -------------------------------------------------------------------------- */

/* All Projects */
.all-projects-masonry .wp-block-post-template,
.editor-styles-wrapper .all-projects-masonry .wp-block-post-template{
  column-count: 3;
}


/* Explore */
.explore-masonry .wp-block-post-template,
.editor-styles-wrapper .explore-masonry .wp-block-post-template{
  column-count: 4;
}

/* Selected Projects */
.projects-masonry .wp-block-post-template,
.editor-styles-wrapper .projects-masonry .wp-block-post-template{
  column-count: 2;
}


/* -------------------------------------------------------------------------- */
/* Responsive                                                                  */
/* -------------------------------------------------------------------------- */

@media (min-width: 679px) and (max-width: 1024px){
  :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post-template,
  .editor-styles-wrapper :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post-template{
    column-gap: var(--masonry-gap-tablet) !important;
    gap: var(--masonry-row-gap-tablet) var(--masonry-gap-tablet) !important;
    padding: 0 0 var(--masonry-padding-bottom-tablet) 0 !important;
  }

  :is(.all-projects-masonry, .explore-masonry, .projects-masonry),
  .editor-styles-wrapper :is(.all-projects-masonry, .explore-masonry, .projects-masonry){
    padding-bottom: var(--masonry-padding-bottom-tablet) !important;
  }

  :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post,
  .editor-styles-wrapper :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post{
    margin-bottom: var(--masonry-row-gap-tablet);
  }
}

@media (max-width: 768px){
  :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post-template,
  .editor-styles-wrapper :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post-template{
    column-gap: var(--masonry-gap-mobile) !important;
    gap: var(--masonry-row-gap-mobile) var(--masonry-gap-mobile) !important;
    padding: 0 0 var(--masonry-padding-bottom-mobile) 0 !important;
  }

  :is(.all-projects-masonry, .explore-masonry, .projects-masonry),
  .editor-styles-wrapper :is(.all-projects-masonry, .explore-masonry, .projects-masonry){
    padding-bottom: var(--masonry-padding-bottom-mobile) !important;
  }

  :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post,
  .editor-styles-wrapper :is(.all-projects-masonry, .explore-masonry, .projects-masonry) .wp-block-post{
    margin-bottom: var(--masonry-row-gap-mobile);
  }

  .all-projects-masonry .wp-block-post-template,
  .editor-styles-wrapper .all-projects-masonry .wp-block-post-template{
    column-count: 2;
  }

  .explore-masonry .wp-block-post-template,
  .editor-styles-wrapper .explore-masonry .wp-block-post-template{
    column-count: 2;
  }

  .projects-masonry .wp-block-post-template,
  .editor-styles-wrapper .projects-masonry .wp-block-post-template{
    column-count: 1;
  }

  :is(.all-projects-masonry, .explore-masonry, .projects-masonry)
  .wp-block-post-template > .wp-block-post:last-child{
    margin-bottom: 0 !important;
  }
}

/* ========================================================================== */
/* Slideshow: Hero Media                                                       */
/* ========================================================================== */

/* Base */
.hero-slideshow-image,
.hero-slideshow-video{
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-slideshow-image img,
img.hero-slideshow-image,
.hero-slideshow-video video{
  width: 100vw;
  height: 100vh;
  padding: var(--hero-slideshow-padding);
  object-fit: contain;
  object-position: center center;
  display: block;
  margin: 0 auto;
}

/* -------------------------------------------------------------------------- */
/* Viewport                                                                      */
/* -------------------------------------------------------------------------- */

/* Small Viewport height */
.hero-slideshow-container {
  height: 100svh;
}

/* -------------------------------------------------------------------------- */
/* Tokens                                                                      */
/* -------------------------------------------------------------------------- */

:root{
  --hero-slideshow-padding: 100px 200px;
}

@media (max-width: 678px){
  :root{
    --hero-slideshow-padding: clamp(120px, 18vh, 200px) 40px;
  }

  .hero-slideshow-image.is-portrait,
  .hero-slideshow-image.is-tall-portrait,
  img.hero-slideshow-image.is-portrait,
  img.hero-slideshow-image.is-tall-portrait{
    --hero-slideshow-padding: clamp(160px, 26vh, 0px) 60px;
  }
}


/* ========================================================================== */
/* Buttons: Project Button Collapse                                            */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Button Style: Outline (global tweak)                                        */
/* -------------------------------------------------------------------------- */

.wp-block-button.is-style-outline .wp-block-button__link{
  background: transparent;
  position: relative;
  transition: box-shadow 0.3s ease;
  box-shadow: inset 0 0 0 1px black;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover{
  box-shadow: inset 0 0 0 2px black;
}

/* -------------------------------------------------------------------------- */
/* Button Group Variant: "button-collapse"                                     */
/* -------------------------------------------------------------------------- */

:root{
  --btn-collapse-font-size: 12px;
  --btn-collapse-font-weight: 600;
  --btn-collapse-letter-spacing: 1.1px;

  --btn-collapse-height: 34px;
  --btn-collapse-height-mobile: 44px;

  --btn-collapse-pad-x: 21px;
  --btn-collapse-pad-top: 6px;
  --btn-collapse-pad-bottom: 3px;

  --btn-collapse-pad-top-mobile: 11px;
  --btn-collapse-pad-bottom-mobile: 9px;
}

/* Desktop (default) */
.wp-block-buttons.button-collapse .wp-block-button__link{
  /* Typography */
  font-size: var(--btn-collapse-font-size) !important;
  font-weight: var(--btn-collapse-font-weight) !important;
  letter-spacing: var(--btn-collapse-letter-spacing) !important;
  text-transform: uppercase !important;
  white-space: nowrap;

  /* Sizing */
  height: var(--btn-collapse-height) !important;
  width: auto !important;

  /* Spacing */
  padding-left: var(--btn-collapse-pad-x) !important;
  padding-right: var(--btn-collapse-pad-x) !important;
  padding-top: var(--btn-collapse-pad-top) !important;
  padding-bottom: var(--btn-collapse-pad-bottom) !important;

  /* Layout */
  box-sizing: border-box !important;
  text-align: center;
}

/* Prevent underline on hover (override global link rule) */
.wp-block-buttons.button-collapse .wp-block-button__link:hover{
  text-decoration: none !important;
}

/* Mobile */
@media (max-width: 678px){
  .wp-block-buttons.button-collapse,
  .wp-block-buttons.button-collapse .wp-block-button{
    width: 100%;
  }

  .wp-block-buttons.button-collapse .wp-block-button__link{
    height: var(--btn-collapse-height-mobile) !important;

    width: 100% !important;
    display: block;

    padding-top: var(--btn-collapse-pad-top-mobile) !important;
    padding-bottom: var(--btn-collapse-pad-bottom-mobile) !important;
  }
}

/* ========================================================================== */
/* Buttons: Button More                                                       */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --btn-more-font-size: 12px;
  --btn-more-font-weight: 600;
  --btn-more-letter-spacing: 1.1px;

  --btn-more-height: 34px;

  --btn-more-pad-x: 21px;
  --btn-more-pad-top: 6px;
  --btn-more-pad-bottom: 3px;
}

/* -------------------------------------------------------------------------- */
/* Desktop (default)                                                          */
/* -------------------------------------------------------------------------- */

.wp-block-buttons.button-more .wp-block-button__link{
  /* Typography */
  font-size: var(--btn-more-font-size) !important;
  font-weight: var(--btn-more-font-weight) !important;
  letter-spacing: var(--btn-more-letter-spacing) !important;
  text-transform: uppercase !important;
  white-space: nowrap;
  text-decoration: none!important;

  /* Sizing */
  height: var(--btn-more-height) !important;
  width: auto !important;

  /* Spacing */
  padding-left: var(--btn-more-pad-x) !important;
  padding-right: var(--btn-more-pad-x) !important;
  padding-top: var(--btn-more-pad-top) !important;
  padding-bottom: var(--btn-more-pad-bottom) !important;

  /* Layout */
  box-sizing: border-box !important;
  text-align: center;
}

/* Prevent underline on hover (override global link rule) */
.wp-block-buttons.button-more .wp-block-button__link:hover{
  text-decoration: none !important;
}

/* ========================================================================== */
/* Typography: Headings (Mobile)                                               */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --h1-size-mobile: 28px;
  --h1-line-mobile: 1.2;

  --h2-size-mobile: 22px;
  --h2-line-mobile: 1.3;

  --h3-size-mobile: 20px;
  --h3-line-mobile: 1.3;

  --h4-size-mobile: 16px;
  --h4-line-mobile: 1.1;

  --h5-size-mobile: 14px;
  --h5-line-mobile: 1.4;

  --h6-size-mobile: 10px;
  --h6-line-mobile: 1.5;
}

/* -------------------------------------------------------------------------- */
/* Mobile Overrides                                                           */
/* -------------------------------------------------------------------------- */

@media (max-width: 678px){
  h1{
    font-size: var(--h1-size-mobile);
    line-height: var(--h1-line-mobile);
  }

  h2{
    font-size: var(--h2-size-mobile);
    line-height: var(--h2-line-mobile);
  }

  h3{
    font-size: var(--h3-size-mobile);
    line-height: var(--h3-line-mobile);
  }

  h4{
    font-size: var(--h4-size-mobile);
    line-height: var(--h4-line-mobile);
  }

  h5{
    font-size: var(--h5-size-mobile);
    line-height: var(--h5-line-mobile);
  }

  h6{
    font-size: var(--h6-size-mobile);
    line-height: var(--h6-line-mobile);
  }
}

/* ========================================================================== */
/* Interactions: Custom Cursors                                                */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --cursor-select: url('/wp-content/uploads/2025/05/curser-select-color.svg') 22 22, auto;

 --cursor-prev: url('/wp-content/uploads/2026/01/curser-prev.svg') 60 20, auto;
--cursor-next: url('/wp-content/uploads/2026/01/curser-next.svg') 60 20, auto;

  --cursor-prev-sm: url('/wp-content/uploads/2026/01/curser-prev-small.svg') 15 5, auto;
  --cursor-next-sm: url('/wp-content/uploads/2026/01/curser-next-small.svg') 15 5, auto;
}

/* -------------------------------------------------------------------------- */
/* Base                                                                       */
/* -------------------------------------------------------------------------- */

.boylorenz-logo{
  cursor: pointer;
}

/* Apply select cursor on linked media */
a:hover :is(img, video){
  cursor: var(--cursor-select);
}

/* -------------------------------------------------------------------------- */
/* Directional Cursors                                                        */
/* -------------------------------------------------------------------------- */

.cursor-left,
.cursor-left *{
  cursor: var(--cursor-prev);
}

.cursor-right,
.cursor-right *{
  cursor: var(--cursor-next);
}

.cursor-left-small,
.cursor-left-small *{
  cursor: var(--cursor-prev-sm);
}

.cursor-right-small,
.cursor-right-small *{
  cursor: var(--cursor-next-sm);
}

/* ========================================================================== */
/* Components: Post Description Collapse                                       */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --text-collapse-max-height: 10em;
  --text-collapse-line-height: 1.5rem;

  --text-collapse-fade-height: 4em;
  --text-collapse-fade-color-start: rgba(255, 255, 255, 0);
  --text-collapse-fade-color-end: #ffffff;

  --text-collapse-transition-height: 0.5s ease;
  --text-collapse-transition-fade: 0.2s ease-out;
  --text-collapse-transition-fade-expanded: 0.5s ease-out;
}

/* -------------------------------------------------------------------------- */
/* Component                                                                  */
/* -------------------------------------------------------------------------- */

/* Text container with collapse behaviour */
.text-collapse{
  position: relative;
  overflow: hidden;
  max-height: var(--text-collapse-max-height);
  line-height: var(--text-collapse-line-height);
  transition: max-height var(--text-collapse-transition-height);
}

/* Gradient mask */
.text-collapse::after{
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: var(--text-collapse-fade-height);
  background: linear-gradient(
    to bottom,
    var(--text-collapse-fade-color-start) 0%,
    var(--text-collapse-fade-color-end) 100%
  );
  pointer-events: none;
  opacity: 1;
  transition: opacity var(--text-collapse-transition-fade);
  z-index: 1;
}

/* Expanded state */
.text-collapse.text-expanded{
  max-height: none;
}

/* Hide gradient when expanded */
.text-collapse.expanded::after{
  opacity: 0;
  transition: opacity var(--text-collapse-transition-fade-expanded);
}

/* -------------------------------------------------------------------------- */
/* Related Controls                                                           */
/* -------------------------------------------------------------------------- */

/* Keep collapse button visually stable */
.button-collapse .wp-block-button__link{
  margin-top: 1em;
  display: block;
  transition: none;
  text-decoration: none !important;
}

/* ========================================================================== */
/* Components: Map Text Overlay                                                */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --map-overlay-offset: 40px;
  --map-overlay-z: 100;

  --map-mobile-text-max-width: 75%;
  --map-mobile-spacing-top: 40px;
}

/* -------------------------------------------------------------------------- */
/* Component                                                                  */
/* -------------------------------------------------------------------------- */

/* Map wrapper */
.map-container{
  position: relative;
  padding: 0 !important;
  margin: 0 !important;
}

/* Overlay text (desktop) */
.map-text{
  position: absolute;
  z-index: var(--map-overlay-z);
  bottom: var(--map-overlay-offset);
  right: var(--map-overlay-offset);
}

/* -------------------------------------------------------------------------- */
/* Responsive                                                                 */
/* -------------------------------------------------------------------------- */

@media (max-width: 768px){
  .map-text{
    position: static;
    max-width: var(--map-mobile-text-max-width);
  }


  .wp-block-group .map-container{
    display: flex;
    flex-direction: column;
    margin-top: var(--map-mobile-spacing-top) !important;
  }
}

/* ========================================================================== */
/* Navigation: Custom Menu (Block Navigation)                                  */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --nav-font-family: 'Khand';
  --nav-font-size: 37px;
  --nav-font-size-mobile: 27px;
  --nav-font-weight: 600;

  --nav-offset: 70px;
  --nav-offset-mobile: 20px;

  --nav-overlay-z: 100000;
  --nav-close-z: 10001;

  --nav-overlay-blur: 12px;
  --nav-overlay-bg: rgba(255, 255, 255, 0.6);

  --nav-close-top: 30px;
  --nav-close-icon-size: 22px;
  --nav-close-top-offset: 0px;

  /* Overlay logo */
  --nav-overlay-logo-size: 120px;
  --nav-overlay-logo-size-mobile: 80px;

  /* Optional: logo sizing inside responsive content */
  --nav-overlay-logo-width: 33vw;
}

/* -------------------------------------------------------------------------- */
/* Typography + Hover                                                         */
/* -------------------------------------------------------------------------- */

.wp-block-navigation-item__label{
  font-family: var(--nav-font-family);
  font-size: var(--nav-font-size);
  font-weight: var(--nav-font-weight);
  text-transform: none;
}

@media (max-width: 678px){
  .wp-block-navigation-item__label{
    font-size: var(--nav-font-size-mobile);
  }
}

.wp-block-navigation__responsive-container-content a{
  text-decoration: none !important;
}

.wp-block-navigation__responsive-container-content a:hover{
  text-decoration: none !important;
}

.wp-block-navigation-item__label:hover{
  text-decoration: line-through;
}

/* -------------------------------------------------------------------------- */
/* Menu Overlay Container                                                     */
/* -------------------------------------------------------------------------- */

.wp-block-navigation__responsive-container.is-menu-open{
  background-color: inherit;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;

  overflow: auto;
  height: 100dvh;

  backdrop-filter: blur(var(--nav-overlay-blur));
  background-color: var(--nav-overlay-bg) !important;

  z-index: var(--nav-overlay-z);
  /* Fade only; keep close icon fixed */
  animation: overlay-menu__fade-in-opacity .4s ease-out forwards;

  padding: 0 !important;
}

/* -------------------------------------------------------------------------- */
/* Navigation Container Position                                              */
/* -------------------------------------------------------------------------- */

.wp-block-navigation__container{
  right: var(--nav-offset);
  bottom: var(--nav-offset);
}

@media (max-width: 678px){
  .wp-block-navigation__container{
    right: var(--nav-offset-mobile);
    bottom: var(--nav-offset-mobile);
  }
}

/* Animate menu list, not the close button or overlay logo */
.wp-block-navigation__responsive-container.is-menu-open
.wp-block-navigation__container{
  animation: overlay-menu__fade-in-animation .4s ease-out forwards;
}

@keyframes overlay-menu__fade-in-opacity{
  from { opacity: 0; }
  to { opacity: 1; }
}

/* -------------------------------------------------------------------------- */
/* Close Button                                                               */
/* -------------------------------------------------------------------------- */

.wp-block-navigation__responsive-container-close{
  position: fixed;
  top: calc(var(--nav-close-top) + var(--nav-close-top-offset) + 4px);
  right: calc(var(--header-footer-padding) + 1px);
  z-index: var(--nav-close-z);

  background: none;
  border: none;
  cursor: pointer;
}

@media (max-width: 678px){
  .wp-block-navigation__responsive-container-close{
    top: calc(var(--nav-close-top) + var(--nav-close-top-offset) + 4px);
    right: 21px;
  }
}

.wp-block-navigation__responsive-container-close svg{
  width: var(--nav-close-icon-size);
  height: var(--nav-close-icon-size);
  fill: rgb(0, 0, 0);
}

/* -------------------------------------------------------------------------- */
/* Header Logo Behaviour                                                      */
/* -------------------------------------------------------------------------- */

header .site-logo{
  transition: opacity 0.3s ease;
}

/* -------------------------------------------------------------------------- */
/* Overlay Logo                                                               */
/* -------------------------------------------------------------------------- */

.menu-overlay-logo-link{
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 9999;
  display: none;
  pointer-events: auto;
  cursor: pointer;
}

.menu-overlay-logo{
  width: var(--nav-overlay-logo-size);
  max-width: 100%;
  height: auto;
  pointer-events: auto;
  display: block;
  cursor: pointer;
}

.menu-overlay-logo-link:hover .menu-overlay-logo{
  cursor: pointer;
}

@media (max-width: 678px){
  .menu-overlay-logo{
    width: var(--nav-overlay-logo-size-mobile);
  }
}

/* If the logo is placed inside the responsive container content */
.wp-block-navigation__responsive-container-content img.menu-overlay-logo{
  width: var(--nav-overlay-logo-width) !important;
  max-width: 100% !important;
}

/* Only show when menu is open */
.wp-block-navigation__responsive-container.is-menu-open .menu-overlay-logo-link{
  display: block;
}

/* ========================================================================== */
/* RSFV: Video Defaults + Cover Block Behaviour                                */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* RSFV Defaults (normal display / Query Loop)                                 */
/* -------------------------------------------------------------------------- */

.rsfv-shortcode-wrapper{
  width: 100%;
  height: 100%;
}

.rsfv-has-video :is(video.rsfv-video, iframe.rsfv-video){
  width: 100%;
  height: auto;
  object-fit: contain !important;
  aspect-ratio: unset !important;
}

/* -------------------------------------------------------------------------- */
/* RSFV in Cover Block (behave like cover background)                          */
/* -------------------------------------------------------------------------- */

.wp-block-cover:has(.rsfv-video){
  position: relative;
  overflow: hidden;
}

.wp-block-cover:has(.rsfv-video) :is(.rsfv-shortcode-wrapper, .rsfv-video-wrapper){
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
}

.wp-block-cover:has(.rsfv-video) video.rsfv-video{
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important; /* overrides contain!important from defaults */
  object-position: center !important;
  display: block;
}

/* Keep cover inner content above the video */
.wp-block-cover:has(.rsfv-video) .wp-block-cover__inner-container{
  position: relative;
  z-index: 1;
}

/* ========================================================================== */
/* Clients: Title List + Hover Tooltip                                         */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  /* Tooltip */
  --client-tooltip-width: 100%;
  --client-tooltip-height: 150px;
  --client-tooltip-padding: 0 20px 0 20px;
  --client-tooltip-bg: linear-gradient(to bottom, transparent 0%, #ffffff 100%);
  --client-tooltip-border: 0px solid #e5e5e5;
  --client-tooltip-z: 100;
  --client-tooltip-z-mobile: 9999;
  --client-tooltip-font-family: 'Khand', sans-serif;
  --client-tooltip-font-size: 40px;
  --client-tooltip-font-weight: 600;
  --client-tooltip-text-color: #000000;
  --client-tooltip-mobile-offset: 0px;

  /* Titles layout */
  --client-titles-gap-x: 10px;
  --client-titles-gap-y-mobile: 10px;

  /* Titles font sizes (ONLY used on mobile override) */
  --client-title-font-size-mobile: 16px;

  /* Logos loop */
  --client-logos-mobile-hide-from: 11; /* hide items 11+ on mobile */
}

/* -------------------------------------------------------------------------- */
/* Layout: Title Pattern                                                      */
/* -------------------------------------------------------------------------- */

.post-pattern{
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0 var(--client-titles-gap-x);
}

/* -------------------------------------------------------------------------- */
/* Titles: Hover/Active States                                                */
/* -------------------------------------------------------------------------- */

.wp-block-post-title{
  background: transparent;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.wp-block-post-title.visible,
.client-title--active{
  color: #000000 !important;
}

li.clients:hover{
  color: #000000 !important;
}

/* -------------------------------------------------------------------------- */
/* Comma                                                                      */
/* -------------------------------------------------------------------------- */

@media (min-width: 769px){

  /* DISABLE all old commas */
  .post-pattern > li::after,
  .post-pattern > li.clients::after,
  .post-pattern > .wp-block-post-title::after{
    content: "" !important;
  }

  /* SINGLE comma – directly attached to the XL title */
  .post-pattern > li.clients .has-x-large-font-size::after{
    content: ",";
    display: inline;

    /* exactly your title styling */
    color: rgb(163, 163, 163);
    font-style: normal;
    font-weight: 300;
    line-height: 1.2;
    text-transform: capitalize;
    margin: 0;
    cursor: pointer;

    /* safely inherit XL typography */
    font-size: inherit;
    font-family: inherit;
    letter-spacing: inherit;
  }

  /* last item without comma */
  .post-pattern > li.clients:last-of-type .has-x-large-font-size::after{
    content: "";
  }
}

/* -------------------------------------------------------------------------- */
/* Tooltip                                                                    */
/* -------------------------------------------------------------------------- */

.client-title-tooltip{
  position: absolute;
  width: var(--client-tooltip-width);
  height: var(--client-tooltip-height);
  padding: var(--client-tooltip-padding);
  box-sizing: border-box;

  background: var(--client-tooltip-bg);
  border: var(--client-tooltip-border);

  display: none; /* toggled via JS */
  justify-content: center;
  align-items: center;

  overflow: hidden;
  pointer-events: none;
  z-index: var(--client-tooltip-z);
}

.client-title-tooltip.visible{
  display: flex;
}

.client-title-tooltip img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  margin: 0;
}

.client-title-tooltip.no-image{
  font-family: var(--client-tooltip-font-family);
  font-size: var(--client-tooltip-font-size);
  font-weight: var(--client-tooltip-font-weight);
  text-transform: uppercase;
  color: var(--client-tooltip-text-color);
  text-align: center;
}

.client-title-tooltip.no-image span{
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1;
}

/* IMPORTANT: keep mobile-tooltip fixed ONLY on mobile */
@media (max-width: 768px){
  .client-title-tooltip.mobile-tooltip{
    position: fixed;
    bottom: var(--client-tooltip-mobile-offset);
    right: var(--client-tooltip-mobile-offset);
    z-index: var(--client-tooltip-z-mobile);
  }
}
@media (min-width: 769px){
  .client-title-tooltip.mobile-tooltip{
    position: absolute; /* desktop hover behavior stays as before */
    bottom: auto;
    right: auto;
    z-index: var(--client-tooltip-z);
  }
}
/* ========================================================================== */
/* Clients: Title List + Hover Tooltip                                         */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  /* Tooltip */
  --client-tooltip-width: 100%;
  --client-tooltip-height: 150px;
  --client-tooltip-padding: 0 20px 0 20px;
  --client-tooltip-bg: linear-gradient(to bottom, transparent 0%, #ffffff 100%);
  --client-tooltip-border: 0px solid #e5e5e5;
  --client-tooltip-z: 100;
  --client-tooltip-z-mobile: 9999;
  --client-tooltip-font-family: 'Khand', sans-serif;
  --client-tooltip-font-size: 30px;
  --client-tooltip-font-weight: 600;
  --client-tooltip-text-color: #000000;
  --client-tooltip-mobile-offset: 0px;

  /* Titles layout */
  --client-titles-gap-x: 10px;
  --client-titles-gap-y-mobile: 10px;

  /* Titles font sizes (ONLY used on mobile override) */
  --client-title-font-size-mobile: 16px;

  /* Logos loop */
  --client-logos-mobile-hide-from: 11; /* hide items 11+ on mobile */
}

/* -------------------------------------------------------------------------- */
/* Layout: Title Pattern                                                      */
/* -------------------------------------------------------------------------- */

.post-pattern{
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0 var(--client-titles-gap-x);
}

/* -------------------------------------------------------------------------- */
/* Titles: Hover/Active States                                                */
/* -------------------------------------------------------------------------- */

.wp-block-post-title{
  background: transparent;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.wp-block-post-title.visible,
.client-title--active{
  color: #000000 !important;
}

li.clients:hover{
  color: #000000 !important;
}

/* -------------------------------------------------------------------------- */
/* Comma                                                                      */
/* -------------------------------------------------------------------------- */

@media (min-width: 769px){

  /* DISABLE all old commas */
  .post-pattern > li::after,
  .post-pattern > li.clients::after,
  .post-pattern > .wp-block-post-title::after{
    content: "" !important;
  }

  /* SINGLE comma – directly attached to the XL title */
  .post-pattern > li.clients .has-x-large-font-size::after{
    content: ",";
    display: inline;

    /* exactly your title styling */
    color: rgb(163, 163, 163);
    font-style: normal;
    font-weight: 300;
    line-height: 1.2;
    text-transform: capitalize;
    margin: 0;
    cursor: pointer;

    /* safely inherit XL typography */
    font-size: inherit;
    font-family: inherit;
    letter-spacing: inherit;
  }

  /* last item without comma */
  .post-pattern > li.clients:last-of-type .has-x-large-font-size::after{
    content: "";
  }
}

/* -------------------------------------------------------------------------- */
/* Tooltip                                                                    */
/* -------------------------------------------------------------------------- */

.client-title-tooltip{
  position: absolute;
  width: var(--client-tooltip-width);
  height: var(--client-tooltip-height);
  padding: var(--client-tooltip-padding);
  box-sizing: border-box;

  background: var(--client-tooltip-bg);
  border: var(--client-tooltip-border);

  display: none; /* toggled via JS */
  justify-content: center;
  align-items: center;

  overflow: hidden;
  pointer-events: none;
  z-index: var(--client-tooltip-z);
}

.client-title-tooltip.visible{
  display: flex;
}

.client-title-tooltip img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  margin: 0;
}

.client-title-tooltip.no-image{
  font-family: var(--client-tooltip-font-family);
  font-size: var(--client-tooltip-font-size);
  font-weight: var(--client-tooltip-font-weight);
  text-transform: uppercase;
  color: var(--client-tooltip-text-color);
  text-align: center;
}

.client-title-tooltip.no-image span{
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1;
}

/* IMPORTANT: keep mobile-tooltip fixed ONLY on mobile */
@media (max-width: 768px){
  .client-title-tooltip.mobile-tooltip{
    position: fixed;
    bottom: var(--client-tooltip-mobile-offset);
    right: var(--client-tooltip-mobile-offset);
    z-index: var(--client-tooltip-z-mobile);
  }
}
@media (min-width: 769px){
  .client-title-tooltip.mobile-tooltip{
    position: absolute; /* desktop hover behavior stays as before */
    bottom: auto;
    right: auto;
    z-index: var(--client-tooltip-z);
  }
}

/* -------------------------------------------------------------------------- */
/* Tooltip: Desktop override (requested)                                      */
/* -------------------------------------------------------------------------- */

@media (min-width: 769px){
  .client-title-tooltip{
    position: absolute;
    width: 200px;
    height: 120px;
    padding: --client-tooltip-padding; /* set to var(--client-tooltip-padding) if you want padding on desktop */
    background: rgb(255, 255, 255);
    border: 1px solid #E5E5E5;
  }
}

/* -------------------------------------------------------------------------- */
/* Mobile                                                                     */
/* -------------------------------------------------------------------------- */

@media (max-width: 768px){

  /* keep main menu overlay */
  body:has(.wp-block-navigation__responsive-container.is-menu-open)
  .client-title-tooltip.mobile-tooltip{
    z-index: -1 !important;
  }

  /* keep “under each other” like before */
  .post-pattern{
    flex-direction: column;
    gap: var(--client-titles-gap-y-mobile) 0;
  }

  /* mobile font smaller (do not touch desktop) */
  .client-title,
  .client-title a,
  li.clients,
  li.clients a{
    font-size: var(--client-title-font-size-mobile) !important;
  }

  /* no commas on mobile */
  .post-pattern > li.clients::after{
    content: "" !important;
    margin: 0 !important;
  }
}

/* ========================================================================== */
/* Footer: Info Blocks (Responsive)                                           */
/* ========================================================================== */

/* Hide on Desktop */
.wp-block-group .contact-stack-mobile{
	display: none;
}

@media (max-width: 678px){
  .wp-block-group .contact-stack, .wp-block-group .follow-stack, .wp-block-group .legal-stack{
  	display: none;
  }
}

@media (max-width: 768px){
.wp-block-group .contact-stack-mobile{
	display: block;
  }
}



/* ========================================================================== */
/* Blog: Category Tags (Post Terms Block)                                     */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --tag-gap-row: 5px;
  --tag-gap-col: 5px;

  --tag-font-family: 'Khand', sans-serif;
  --tag-font-size: 9px;
  --tag-font-weight: 600;
  --tag-letter-spacing: 1px;

  --tag-pad: 4px 8px 2px 10px;
  --tag-radius: 30px;

  --tag-color: #ffffff;
  --tag-border: #ffffff;

  --tag-custom-color: #7f7f7f;
  --tag-custom-hover-color: #000000;
}

/* -------------------------------------------------------------------------- */
/* Layout                                                                     */
/* -------------------------------------------------------------------------- */

.wp-block-post-terms{
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end; /* right aligned */
  align-items: flex-start;
  gap: var(--tag-gap-row) var(--tag-gap-col);
}

/* -------------------------------------------------------------------------- */
/* Base Tag Style (Category terms)                                            */
/* -------------------------------------------------------------------------- */

.taxonomy-category.wp-block-post-terms a{
  z-index: 100;
  font-family: var(--tag-font-family);
  font-size: var(--tag-font-size);
  font-weight: var(--tag-font-weight);
  letter-spacing: var(--tag-letter-spacing);
  text-transform: uppercase;
  text-decoration: none!important;

  padding: var(--tag-pad);
  border-radius: var(--tag-radius);

  background: transparent;
  color: var(--tag-color);
  border: 1px solid var(--tag-border);

  text-decoration: none;

  /* -------------------------------------------------- */
  /* Deactivation Interaction                          */
  /* -------------------------------------------------- */
  pointer-events: none;
  cursor: default;
  user-select: none;
}

/* -------------------------------------------------------------------------- */
/* Variant: "custom-category"                                                 */
/* -------------------------------------------------------------------------- */

.taxonomy-category.wp-block-post-terms.custom-category a{
  color: var(--tag-custom-color);
  border-color: var(--tag-custom-color);
}

/* -------------------------------------------------------------------------- */
/* Hover / Focus vollständig neutralisiert                                    */
/* -------------------------------------------------------------------------- */

.taxonomy-category.wp-block-post-terms a:hover,
.taxonomy-category.wp-block-post-terms a:focus,
.taxonomy-category.wp-block-post-terms a:focus-visible,
.taxonomy-category.wp-block-post-terms a:active{
  color: inherit;
  border-color: inherit;
  outline: none;
  box-shadow: none;
}

/* -------------------------------------------------------------------------- */
/* Rmove block span /                                                         */
/* -------------------------------------------------------------------------- */


.wp-block-post-terms .wp-block-post-terms__separator{
  display: none !important;
}


/* ========================================================================== */
/* Blog: Category Filter (Categories List)                                    */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --filter-gap: 10px;

  --filter-font-family: 'Khand', sans-serif;
  --filter-font-weight: 600;
  --filter-letter-spacing: 1px;

  --filter-font-size: 28px;
  --filter-font-size-mobile: 16px;

  --filter-color: #cecece;
  --filter-color-active: #000000;

  --filter-separator-color: #cecece;
}

/* -------------------------------------------------------------------------- */
/* Layout                                                                     */
/* -------------------------------------------------------------------------- */

.wp-block-categories-list{
  display: flex;
  flex-wrap: wrap;
  gap: var(--filter-gap);
  padding-left: 0;
  list-style: none;
}

.wp-block-categories-list li{
  margin: 0;
  display: inline;
}

/* -------------------------------------------------------------------------- */
/* Separator ("/")                                                            */
/* -------------------------------------------------------------------------- */

.wp-block-categories-list li:not(:last-child)::after{
  content: " /";
  color: var(--filter-separator-color);
  font-family: var(--filter-font-family);
  font-size: var(--filter-font-size);
  font-weight: var(--filter-font-weight);
  text-transform: uppercase;
}

/* -------------------------------------------------------------------------- */
/* Links                                                                      */
/* -------------------------------------------------------------------------- */

.wp-block-categories-list a{
  display: inline-block;
  padding: 0 4px;

  cursor: pointer;
  background: none;
  border: none;

  font-family: var(--filter-font-family);
  font-size: var(--filter-font-size);
  font-weight: var(--filter-font-weight);
  letter-spacing: var(--filter-letter-spacing);
  text-transform: uppercase;

  color: var(--filter-color);
  text-decoration: none!important;

  transition: color 0.2s ease;
}

.wp-block-categories-list a:hover,
.wp-block-categories-list a.active{
  color: var(--filter-color-active);
  text-decoration: none!important;
}

/* -------------------------------------------------------------------------- */
/* Mobile                                                                     */
/* -------------------------------------------------------------------------- */

@media (max-width: 768px){
  .wp-block-categories-list a{
    font-size: var(--filter-font-size-mobile);
  }

  .wp-block-categories-list li:not(:last-child)::after{
    font-size: var(--filter-font-size-mobile);
  }
}

/* ========================================================================== */
/* Header: Fixed Position                                                     */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --header-z: 1000;
}

/* -------------------------------------------------------------------------- */
/* Component                                                                  */
/* -------------------------------------------------------------------------- */

.wp-site-blocks > header{
  position: fixed;
  top: 0;
  inset-inline: 0;
  z-index: var(--header-z);
  pointer-events: auto;
}

/* ========================================================================== */
/* Base: Text Selection                                                       */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --selection-text-color: #000000;
  --selection-bg-color: #66f2c1;
}

/* -------------------------------------------------------------------------- */
/* Selection                                                                  */
/* -------------------------------------------------------------------------- */

::selection{
  color: var(--selection-text-color);
  background: var(--selection-bg-color);
}

/* Firefox */
::-moz-selection{
  color: var(--selection-text-color);
  background: var(--selection-bg-color);
}

/* ========================================================================== */
/* Utilities: Empty Column (Mobile)                                            */
/* ========================================================================== */

@media (max-width: 678px){
  .empty-column{
    display: none;
  }

  .wp-block-column:empty,
  .wp-block-column:not(:has(*)){
    display: none !important;
    min-height: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
    flex-basis: 0 !important;
  }
}

/* ========================================================================== */
/* Cover Block: Responsive Height                                              */
/* ========================================================================== */

@media (max-width: 678px){
  .wp-block-cover{
    min-height: 250px !important;
  }
}

/* ========================================================================== */
/* Base: Links                                                                */
/* ========================================================================== */

a{
  cursor: pointer;
  text-decoration: underline !important;
  text-decoration-color: #CECECE!important;   /* Underline-Farbe */
}

a:hover{
  cursor: pointer;
  text-decoration: underline !important;
  text-decoration-color: #000!important;   /* Underline-Farbe */
}

/* ========================================================================== */
/* Base: Focus Reset                                                          */
/* ========================================================================== */

:where(.wp-site-blocks *:focus){
  outline: none;
}

/* ========================================================================== */
/* Hero: Text (Mobile)                                                        */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

:root{
  --hero-text-max-width-mobile: 100%;
  --hero-text-group-margin-top-mobile: 200px;
  --hero-text-xl-font-size-mobile: 18px;
}

/* -------------------------------------------------------------------------- */
/* Mobile                                                                     */
/* -------------------------------------------------------------------------- */

@media (max-width: 678px){
  .hero-text-stack{
    max-width: var(--hero-text-max-width-mobile) !important;
  }

  .hero-text-group{
    margin-top: var(--hero-text-group-margin-top-mobile) !important;
  }

  .has-x-large-font-size{
    font-size: var(--hero-text-xl-font-size-mobile) !important;
  }

  .home-hero-text-stack {
    padding-top: 60px;
  }
}

/* ========================================================================== */
/* News Naviagtion (Mobile)                                                        */
/* ========================================================================== */


/* No underline */
  .next-post a, .previous-post a{
	text-decoration: none!important;
  }

/* Underline on hover */

  .next-post a:hover, .previous-post a:hover{
	text-decoration: underline!important;
  }

/* Default: hide the divider */
.post-nav .post-divider {
  display: none !important;
}

/* Show divider only when BOTH previous and next links exist */
.post-nav:has(a[rel="prev"]):has(a[rel="next"]) .post-divider {
  display: inline-block !important; /* or block */
}

/* Default: only one button → no gap */
.post-nav {
  gap: 0;
}

/* Both buttons exist → add spacing */
.post-nav:has(a[rel="prev"]):has(a[rel="next"]) {
  gap: 10px;
}

/* -------------------------------------------------------------------------- */
/* Mobile                                                                     */
/* -------------------------------------------------------------------------- */

@media (max-width: 678px){
  .post-nav {
    display: flex;
    justify-content: center;
    text-align: center;
  }

  .next-post, .previous-post, p.post-divider {
	padding-top: 50px;
	font-size: 30px!important;
  }
}

/* ========================================================================== */
/* News link & Hover                                                          */
/* ========================================================================== */

.news-card,
.news-card * {
  cursor: var(--cursor-select) !important;
}

.news-card .wp-block-post-title a{
  text-decoration: none !important;
  text-decoration-color: transparent !important;
}

.news-card a{
  text-decoration: none !important;
  text-decoration-color: transparent !important;
}

/* Hover hole news card */
.news-card:hover .wp-block-post-featured-image img,
.news-card:focus-within .wp-block-post-featured-image img{
  filter: brightness(0.8);
}

/* ========================================================================== */
/* Carousel pagination                                                         */
/* ========================================================================== */


.swiper-pagination {
  display: none;
}

@media (max-width: 678px){
  .swiper-pagination {
    display: block;
    padding-bottom: 10px;
  }

  .swiper-pagination-bullet-active{
    background: #000;
  }

 /* Force size for this carousel instance */
  #cbb-carousel-1-pagination .swiper-pagination-bullet,
  #cbb-carousel-1-pagination .swiper-pagination-bullet__dot{
    width: 7px !important;
    height: 7px !important;
  }
}

/* ========================================================================== */
/* Imprint Viewport                                                           */
/* ========================================================================== */

.imprint-container{
	height: 100svh;
}


/* ========================================================================== */
/* Project dark mode                                                          */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* Tokens                                                                     */
/* -------------------------------------------------------------------------- */

body.is-dark {
  --color-bg: #000000;
  --color-text: #b6b6b6;
  --color-muted: #8c8c8c;
  --color-heading: #ffffff;
  --color-link: #cfcfcf;
  --text-collapse-fade-color-start: rgba(11, 11, 12, 0);
  --text-collapse-fade-color-end: #0b0b0c;
  background-color: var(--color-bg);
  color: var(--color-text);
}

/* -------------------------------------------------------------------------- */
/* Backgrounds                                                                */
/* -------------------------------------------------------------------------- */

body.is-dark,
body.is-dark .wp-site-blocks,
body.is-dark .wp-site-blocks > header,
body.is-dark .wp-site-blocks > footer,
body.is-dark #site-header,
body.is-dark .header-inner,
body.is-dark .footer-inner,
body.is-dark .is-style-default,
body.is-dark .wp-site-blocks > header .wp-block-group,
body.is-dark .wp-site-blocks > header .wp-block-group__inner-container,
body.is-dark .wp-site-blocks > header .wp-block-columns,
body.is-dark .wp-site-blocks > header .wp-block-column,
body.is-dark .wp-site-blocks > header .wp-block-site-logo,
body.is-dark .wp-site-blocks > header .wp-block-navigation{
  background: var(--color-bg) !important;
  background-color: var(--color-bg) !important;
}

/* -------------------------------------------------------------------------- */
/* Typography                                                                 */
/* -------------------------------------------------------------------------- */

body.is-dark h1,
body.is-dark h2,
body.is-dark h3,
body.is-dark h4,
body.is-dark h5,
body.is-dark h6,
body.is-dark .wp-block-post-title a{
  color: var(--color-heading);
}

body.is-dark header,
body.is-dark footer{
  color: var(--color-heading);
}

/* -------------------------------------------------------------------------- */
/* Footer Links                                                               */
/* -------------------------------------------------------------------------- */

body.is-dark footer a{
  color: #606060 !important;
  text-decoration-color: #2A2A2A !important;
}

body.is-dark footer a:hover{
  text-decoration-color: #7F7F7F !important;
}

body.is-dark footer a[href^="tel"]{
  color: #606060 !important;
}

body.is-dark footer p{
  color: #606060 !important;
}

@media (max-width: 678px){
  body.is-dark footer a{
    color: var(--color-link)!important;
    text-decoration-color: #2A2A2A !important;
  }
}

body.is-dark footer .wp-block-separator{
  opacity: 0.4;
}

/* -------------------------------------------------------------------------- */
/* Body Text                                                                  */
/* -------------------------------------------------------------------------- */

body.is-dark p,
body.is-dark li,
body.is-dark .wp-block-post-content,
body.is-dark .wp-block-post-excerpt{
  color: var(--color-text);
}

body.is-dark p.has-custom-boy-lorenz-black-color{
  color: var(--color-heading) !important;
}

body.is-dark .post-pattern .wp-block-post-title,
body.is-dark .post-pattern .wp-block-post-title a{
  color: var(--color-heading) !important;
}

body.is-dark .post-pattern > li.clients,
body.is-dark .post-pattern > li.clients *{
  color: var(--color-heading) !important;
}

body.is-dark .has-contrast-color{
  color: var(--color-heading) !important;
}

/* -------------------------------------------------------------------------- */
/* Links                                                                       */
/* -------------------------------------------------------------------------- */

body.is-dark a{
  color: var(--color-link);
}

body.is-dark a:hover{
  color: var(--color-heading);
}

/* -------------------------------------------------------------------------- */
/* Buttons                                                                    */
/* -------------------------------------------------------------------------- */

body.is-dark .wp-block-buttons.button-collapse .wp-block-button__link{
  color: var(--color-heading) !important;
  background-color: var(--color-bg) !important;
  box-shadow: inset 0 0 0 1px var(--color-heading) !important;
}

body.is-dark .wp-block-buttons.button-collapse .wp-block-button__link:hover{
  box-shadow: inset 0 0 0 2px var(--color-heading) !important;
}

/* -------------------------------------------------------------------------- */
/* Logo + SVGs                                                                */
/* -------------------------------------------------------------------------- */

body.is-dark header svg,
body.is-dark footer svg,
body.is-dark header svg *,
body.is-dark footer svg *{
  fill: currentColor !important;
  stroke: none !important;
  stroke-width: 0 !important;
}

body.is-dark header img[src$=".svg"],
body.is-dark footer img[src$=".svg"],
body.is-dark header .custom-logo-link img,
body.is-dark header .site-logo img,
body.is-dark header .wp-block-site-logo img{
  filter: brightness(0) invert(1) !important;
}

body.is-dark header .safe-svg-inline,
body.is-dark header .safe-svg-inline svg,
body.is-dark header .safe-svg-inline svg *{
  fill: var(--color-heading) !important;
  stroke: #000000 !important;
  stroke-width: 0.75px !important;
  vector-effect: non-scaling-stroke;
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-miterlimit: 1;
}

body.is-dark header .safe-svg-inline svg{
  shape-rendering: geometricPrecision;
}

/* -------------------------------------------------------------------------- */
/* Navigation (Closed + Open)                                                 */
/* -------------------------------------------------------------------------- */

body.is-dark .wp-block-navigation__responsive-container-close svg,
body.is-dark .wp-block-navigation__responsive-container-open,
body.is-dark .wp-block-navigation__responsive-container-open svg{
  color: var(--color-heading) !important;
  fill: var(--color-heading) !important;
  stroke: none !important;
  stroke-width: 0 !important;
}

body.is-dark .wp-block-navigation__responsive-container.is-menu-open{
  color: #000000 !important;
  background-color: var(--nav-overlay-bg) !important;
}

body.is-dark .wp-block-navigation__responsive-container.is-menu-open a,
body.is-dark .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label{
  color: #000000 !important;
  background-color: transparent !important;
}

body.is-dark .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
body.is-dark .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
body.is-dark .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
body.is-dark .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
  background-color: transparent !important;
}

body.is-dark .wp-block-navigation__responsive-container.is-menu-open svg,
body.is-dark .wp-block-navigation__responsive-container.is-menu-open svg *{
  fill: #000000 !important;
  stroke: #000000 !important;
}

body.is-dark .wp-block-navigation__responsive-container.is-menu-open img[src$=".svg"],
body.is-dark .wp-block-navigation__responsive-container.is-menu-open .menu-overlay-logo{
  filter: none !important;
}

/* ========================================================================== */
/* Project Optional Headline                                                  */
/* ========================================================================== */

.project-optional-headline{
  width: 66%;
  max-width: 66%;
  margin-left: 0;
  margin-right: auto;
  margin-inline: 0 auto;
  text-align: left;
}

.is-layout-constrained > .project-optional-headline{
  margin-left: 0 !important;
  margin-right: auto !important;
  margin-inline: 0 auto !important;
}

@media (max-width: 768px){
  .project-optional-headline{
    width: 100%;
    max-width: 100%;
    line-height: 0,1px;
  }
}

/* ========================================================================== */
/* Footer Character Link                                                      */
/* ========================================================================== */

.footer-link {
  cursor: pointer;
}