/* ============ Fonts ============ */

@import url("https://use.typekit.net/eal3ide.css");


/* Demi-bold */
/* font-family: futura-100, sans-serif; */
/* font-weight: 600; */

/* ============ Design Tokens ============ */

:root {

  /* Grid */
  
  --container: 1640px;
  --size-headline: clamp(30px, 1vw + 38px, 70px);
  @media (min-width: 2000px) {
    --size-headline: clamp(35px, 1vw + 40px, 66px);
  }    
  --size-quote: clamp(20px, 1vw + 30px, 50px);
  @media (min-width: 2000px) {  
    --size-quote: clamp(20px, 1vw + 30px, 49px);
  }
  --size-title: clamp(18px, 1vw + 20px, 24px);
  --size-author: clamp(16px, 1vw + 20px, 24px);
  --size-button: clamp(16px, 1vw + 18px, 40px);
  --size-copy: clamp(18px, 1vw + 18px, 20px);
  --size-note: 16px;
  --size-tiny: 16px;

  --font-regular: 'regular', Arial, sans-serif, Helvetica;

  --lineheight-headline: 1.3;
  --lineheight-copy: 1.5;
  --lineheight-note: 1.4;

  --padding: 2rem 0;
  --radius: 16px;
  --slant: 60px;
  --gap: 0;  
  
  --color-text: #000;  
  --color-primary: #FF3A2D;
  --color-accent: #F6F6F6;
  --color-accent-2: #54595F;
  --color-accent-3: #B7B7B7;
  --color-light: #fff;
  --color-dark: #e6e6e6;
}


@media (min-width:1600px) {
    :root {
    --gap: 3rem;  
    --padding: 7rem 0;
    --lineheight-copy: 1.5;
    
    --size-tiny: 14px;
    }
}


/* ============ Base ============ */

button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}details,main{display:block}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}

*,
*::before,
*::after {
  box-sizing: border-box;
}


html {
    scroll-behavior:smooth;
    -webkit-text-size-adjust: 100%;  
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

body {
  font-family: poppins, sans-serif;
  font-weight: 500;
  font-style: normal;  
  background: var(--color-light);
  color: var(--color-text);
  overflow-x: hidden;
}

img {
    width: 100%;
    height: auto;
}

h1,h2,h3,h4,h5,h6 {    
    margin:0;
    font-size: inherit;
    line-height: var(--lineheight-headline);
    font-weight: 300;
    @media (max-width: 600px) {
      hyphens: auto;
    }
}

a { color: var(--color-primary); text-decoration: none;}
a:hover { text-decoration: underline; }

hr {
  border: 0;
  margin: 2rem 0 0 0;
  @media (min-width: 992px) {
    margin: 4.5rem 0 0 0;
  }
}

picture {
  line-height: 0;
}

figure.table {
  margin: 2rem 0;
  table {
    border-collapse: collapse;
    width: 100%;
  }
  th, td {
    border: 0 solid var(--color-accent-3);
    border-width: 0 1px 1px 0;
    padding: .75rem 0 .5rem;
    text-align: center;
  }
  tr:last-of-type td { border-bottom: 0; }
  tr td:last-of-type { border-right: 0; }
}

/* ============ Typography ============ */

.headline {
  font-family: futura-100, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: var(--size-headline);
  text-transform: uppercase;
  color: var(--color-primary);

  &.h15 {
    position: absolute;
    height: 100vh;
    width: 100vw;
    pointer-events: none;
    @media (min-width: 2000px) {
        max-height: 1080px;
        max-width: 2000px;
    }    
    z-index: 1;
    
    .col-lg-6 {
      position: relative;
      height:100vh;   
      h1, .title {
        position: absolute;
        bottom: 10rem;
        padding: .5rem 2rem .4rem 10rem;
        line-height: 1;        
        @media (min-width: 1300px) {
          padding: 1.5rem 4rem 2rem 10rem;
          line-height: var(--lineheight-headline);
        }
        background: rgba(255,255,255,.65);
        translate: -10rem 0;
        font-size: inherit;        
        margin: 0;
        font-family: futura-100, sans-serif;
        span span {
          text-transform: lowercase;
          display: inline;
        }
      }
    }
  }


  &.h20, 
  &.h20w,
  &.h40 {
    padding-top: 3rem;
  }

  span { 
    text-transform: lowercase;
  }
  
  span.sub {
    text-transform: uppercase;
    display: block;
    font-family: futura-100-book, sans-serif;
    font-weight: 300;
    color: var(--color-text);
  }
  
  div, div span {
    text-transform: uppercase;
    line-height: 1.3;
    span { display: block; }      
  }  
  
  &.h30 > * {
    line-height: 1;
  }
  
  &.h35 p.title, &.h40 {
    color: var(--color-text);    
    font-family: futura-100-book, sans-serif;
    font-weight: 400;
    font-size: var(--size-headline);
    margin: 0;
    .sub {
      font-family: futura-100, sans-serif;
      font-weight: 300;
      font-size: var(--size-headline);
      color: var(--color-primary);
      display: inline;
    }
  }  
  
  &.h40 h4 {
    width: 90%;
  }
}

/* Variante unten Vorlage  */
#p0 .headline.h15 .col-lg-6  h1 {
    @media (max-width: 1299px) {
      top: 10rem;
      bottom: auto;
    }
}


#hero + .container.frame-default .h30 h1 {
  margin-top: 3.5rem;
}

.headline.deco {
  span {
    display: block;
    width: 100%;
    height: 2px;
    margin: 1.5rem 0 0;
    @media (min-width: 992px) {
      background: var(--color-primary);
       margin: 2.5rem 0 0;
    }    
  }
}

p {
  font-family: poppins, sans-serif;
  font-weight: 500;
  font-style: normal;  
  font-size: var(--size-copy);
  line-height: var(--lineheight-copy);  
  margin: .5rem 0 1rem 0;
}

.frame-default h2,
.frame-default h3,
p.title {
  font-family: poppins, sans-serif;
  font-weight: 500;
  font-style: normal;  
  color: var(--color-primary);
  font-size: var(--size-title);
  text-transform: uppercase;
  letter-spacing: .01rem;
  .sub { display: block;}
}

h2 { margin-top: 2.75rem }
h3 { margin-top: 4rem }

.frame-default .h20 h3 {
  font-family: futura-100, sans-serif;
  font-weight: 300;
  font-size: inherit;
  letter-spacing: inherit;
  margin: 0;
}

p.title {
  margin: 2.75rem 0 0;
  line-height: 1;
}


p + p.title {
  margin: 2.75rem 0 0;
}

p:not(.title):last-of-type {
  margin-bottom: 0;
}

.frame-default ul {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-top: 1.75rem;
  padding: 0;
  
  &.grid.newsletter {
    gap: 1rem;
    
    a span {
      color: var(--color-text);
    }
    a {
      
      &::after {
        content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMi41IiBoZWlnaHQ9IjI3IiB2aWV3Qm94PSIwIDAgMjIuNSAyNyI+CiAgPHBhdGggaWQ9Imljby1kb3dubG9hZCIgZD0iTTI5LjI1LDE0LjAyN0gyMi44MjNWNC41SDEzLjE3N3Y5LjUyN0g2Ljc1TDE4LDI1LjE0NCwyOS4yNSwxNC4wMjdaTTYuNzUsMjguMzIyVjMxLjVoMjIuNVYyOC4zMjJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNi43NSAtNC41KSIvPgo8L3N2Zz4K");
        float: right;      
      }
    }
    a:hover {
      text-decoration: none;
      span { 
      color: var(--color-primary); 
      
      }
      &::after {
        content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMi41IiBoZWlnaHQ9IjI3IiB2aWV3Qm94PSIwIDAgMjIuNSAyNyI+CiAgPHBhdGggaWQ9Ikljb25faW9uLW1kLWRvd25sb2FkIiBkYXRhLW5hbWU9Ikljb24gaW9uLW1kLWRvd25sb2FkIiBkPSJNMjkuMjUsMTQuMDI3SDIyLjgyM1Y0LjVIMTMuMTc3djkuNTI3SDYuNzVMMTgsMjUuMTQ0LDI5LjI1LDE0LjAyN1pNNi43NSwyOC4zMjJWMzEuNWgyMi41VjI4LjMyMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02Ljc1IC00LjUpIiBmaWxsPSIjZmYzYTJkIi8+Cjwvc3ZnPgo=");
      }
    }
    p {
      color:#54595F;
      margin-top: 1rem;
      margin: .5rem 0 2rem;
    }
    
    @media (min-width: 992px) {
      gap: 5rem 1rem;
      grid-template-columns: repeat(2, [col-start] 1fr);
      li { padding-right: 20%; }
      p {margin: .5rem 0; }
    }
  }
}

.frame-default li {
  font-size: var(--size-copy);
  position: relative;
  list-style-type: none;
  padding-left: 1.5rem;
  line-height: var(--lineheight-copy);
}

.frame-default li::before {
  content: "/";
  position: absolute;
  left: 0;
  color: var(--color-primary);
}

/* ============ Layout: Images ============ */

.hero-image, .hero-image-small, .hero-video {
  height: 100vh;
  overflow:hidden; 
}

.hero-image {
  height: 100vh; 
  display: flex;
  justify-content: center;
  align-items: center;  
  
  @media (max-width: 991px) {
    picture {
      height: 100%;
      width: 100%;    
      object-fit: cover;
    }
  }
  
  img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    @media (min-width: 992px) {
      width: auto;
    }    
    @media (min-width: 2000px) {
      height: 100vh;
    }
  }  
}

.hero-image-small {
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 5.5rem 0 0;
  img {
    height: auto;
    width: 100%;
  }
  @media (min-width: 992px) {
    padding: 0;
    width: 100%;
    height: auto;
  }
}

.button {
  margin-bottom: calc(var(--bs-gutter-x) * 1);
  
  a {
    display: block;
    position: relative;
    line-height: 0;    
  
    span {
      position: absolute;
      z-index: 1;
      bottom: 0;
      left: 0;
      width: 100%;
      padding: 1rem 0 .5rem;
      text-align: center;
      background: rgba(255,255,255,0.85);
      border-bottom: 2px solid var(--color-primary);
      line-height: 1;
      font-family: poppins, sans-serif;
      font-size: var(--size-button);
      font-weight: 400;
      @media (min-width: 500px) {
        font-weight: 300;
      }
      color: var(--color-text);
    -webkit-transition: background .3s ease-out;
            transition: background .3s ease-out;       
    }
    &:hover span {
      color: var(--color-light);
      background: var(--color-primary);      
    }
  }
  
}

/* ============ Layout: SLIDER ============ */

#hero .splide {
  height: 100vh;
  @media (min-width: 2000px) {
      max-height: 1080px;
  }  
}

ul.splide__list {
  gap: 0;
}

li.splide__slide {
  padding: 0;
}

.splide__arrows {
  position: absolute;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  width: 100vw;
  height: 100vh;
  @media (min-width: 2000px) {
      max-height: 1080px;
      max-width: 2000px;
  }  
  opacity: 0;
  @media (min-width: 992px) {
    opacity: 1;
  }
}

.splide__arrow {
  border: 0;
  background: none;
}

.splide__arrow:not([disabled]) {
  cursor: pointer;
}

.splide__arrow--next {
  float: right;
}

.splide__pagination {
  position: absolute;
  bottom: 2rem;
  z-index: 2;
  width: 100%;
  display: flex !important;
  gap: 1rem;
  opacity: 0;
  @media (min-width: 992px) {
    opacity: 1;
  }
  
  button {
    border-radius: 100%;
    height:25px;
    width:25px;
    border-width: 0;
    background: var(--color-light);
    opacity: .65;  
    cursor: pointer;
    &.is-active {
      border-width: 1px;
      border-color: var(--color-primary);
      opacity: 1;
      cursor: default;
    }
  }  
  
}

/* ============ Layout: Container + Grid ============ */

.bg {
  background: var(--color-accent);
  
  .container-image {
    padding: 0;
  }
}

.container-image {
  width: 100%;
  line-height: 0;
  
  @media (min-width: 992px) {
    width: 95%;
    margin-inline: auto;
    padding-inline: .75rem;
  }
  
  @media (min-width: 1680px) {    
    width: min(100%, var(--container));
    margin-inline: auto;
    padding-inline: calc(1.5rem * .5);
  }  
  
}

.row > * {
  padding-right: calc(var(--bs-gutter-x) * 1.3);
   padding-left: calc(var(--bs-gutter-x) * 1.3);
  
  @media (min-width: 992px) {
    padding-right: calc(var(--bs-gutter-x) * .5);
     padding-left: calc(var(--bs-gutter-x) * .5);    
  }
}
  
.row.frame-vita {
  margin: 0;
  background: var(--color-light);
  transform: translateY(-2rem);
  padding: 2rem 0 0;  
    
  @media (min-width: 992px) {
    transform: translateY(-4rem);
    padding: 5rem 0 0;
  }
  
  .col-12 {
    padding-bottom: 2rem;
    p { font-weight: 300; font-size: var(--size-note); }
    p strong { font-weight: 500; }
    p.title {
      color: var(--color-text);
      font-family: futura-100, sans-serif;
      font-weight: 500;
      font-size: var(--size-copy);
      margin-top: 0;
      span { 
        text-transform: lowercase; 
        font-size: var(--size-note);
        display: inline;
        @media (min-width: 992px) {
          display: none;
        }
      }
    }
    
  }
} 

.grid {
  display: grid;
  gap: var(--gap);
  grid-template-columns: 1fr;

  @media (min-width: 993px) {
    grid-template-columns: repeat(12, [col-start] 1fr);
  }
}

.grid.benefits {
  margin: 4rem 0 0;  
  img {
    max-height: 3rem;
  }
  figcaption {
    margin: 1rem 0 0;
    font-size: var(--size-small);
    font-weight: 300;
    text-align:center;
    letter-spacing: .02rem;    
    span {
      text-transform: uppercase;
      font-size: var(--size-copy);
      font-weight: 400;
      display: block;
      margin: 0 0 .5rem;
    }    
  }
  @media (min-width: 992px) {
    grid-template-columns: repeat(2, [col-start] 1fr);
  }
  @media (min-width: 1600px) {
    grid-template-columns: repeat(3, [col-start] 1fr);
  }
}

.grid.images {
  gap: 2rem;
  margin-top: 0;
  text-align: center;
  
  img {
    -webkit-transition: filter .3s ease-out;
            transition: filter .3s ease-out;  
      filter: grayscale(1);
    &:hover {
      filter: grayscale(0);  
    }
  }

  @media (min-width: 550px) {
    grid-template-columns: repeat(2, [col-start] 1fr);
  } 

  @media (min-width: 992px) {
    margin-top: 2.75rem;
    grid-template-columns: repeat(4, [col-start] 1fr);
    
  } 
  @media (min-width: 1900px) { 
    display: flex;
    align-items: center;
    gap: initial;
    justify-content: space-between;    
    
  }   
}

/* Karriere Bildleiste */

#c319 .grid.images {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto auto auto auto;
  grid-template-areas:
    "e e"
    "a c"
    "a d"
    "b b";
  aspect-ratio: auto; 
  gap: 1.25rem;
  
  picture:nth-child(1) { grid-area: a; } /* hoch, 2 Zeilen */
  picture:nth-child(2) { grid-area: b; } /* breit oben */
  picture:nth-child(3) { grid-area: c; } /* klein oben rechts */
  picture:nth-child(4) { grid-area: d; } /* unten links-mitte */
  picture:nth-child(5) { grid-area: e; } /* breit unten */  
  
  picture {
    aspect-ratio: auto;
    @media (min-width: 1200px) {
      display: block;
      overflow: hidden;
    }
  }  
  
  @media (max-width: 1023px) {
    .grid.images picture[style*="a"],
    .grid.images picture:nth-child(1) {
      min-height: 100%;
    }
  }
  
  .image-embed-item {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  
  img { filter: none; }
  
  @media (min-width: 1024px) {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 1.875rem;
    grid-template-areas:
      "a b b c"
      "a d e e";
    aspect-ratio: 807 / 313;  
  }
}

.grid-images {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
  margin-top: 2.75rem;

  @media (min-width: 992px) {
    grid-template-columns: repeat(2, [col-start] 1fr);
  }
  
  @media (min-width: 1200px) {
    grid-template-columns: repeat(3, [col-start] 1fr);
  }   
  
  @media (min-width: 1600px) {
    grid-template-columns: repeat(4, [col-start] 1fr);
  }  

  figure {
    display: block;
    position: relative;
    line-height: 0;
    margin: 0;
  
    figcaption {
      position: absolute;
      z-index: 1;
      bottom: 0;
      left: 0;
      width: 100%;
      padding: 1rem 0 .5rem;
      text-align: center;
      background: rgba(255,255,255,0.85);
      border-bottom: 2px solid var(--color-primary);
      line-height: 1;
      font-family: poppins, sans-serif;
      font-weight: 400;
      font-size: var(--size-note);
      color: var(--color-text);      
    }
    
  }
}

.subpages { 
  a { font-weight: 600; }
  a:hover { text-decoration: none }
  a:hover span:first-of-type { text-decoration: underline }
  span + span {
    display: block;
    font-size: var(--size-note);
    font-weight: 400;
    color: var(--color-accent-2);
    margin: .5rem 0 0;
  }
}

/* ============ Layout: Design ============ */

.skip-link {
    position: absolute;
    inset-block-start: 0;
    inset-inline-start: 0;
    transform: translateY(-100%);
    background: black;
    color: #fff;
    padding: .5rem 1rem;
    z-index: 1000;
    &:focus {
        transform: translateY(0);
    }
}

.visually-hidden {
    position: absolute;
    clip-path: inset(50%);
    width: 1px;
    height: 1px;
    overflow: hidden;
    white-space: nowrap;
}

.frame-default {
  padding: 0 var(--bs-gutter-x,.75rem) 2rem var(--bs-gutter-x,.75rem);
  @media (min-width: 992px) {
    padding-bottom: 4rem;
  }
  .frame-default {
    padding: 0;
  }
}

#c11.bg.frame-default {
  
  padding-top: 7rem;
  .headline {
    margin-bottom: 2rem;
  }
}

header {
  
  position: absolute;
  top:0;
  width: 100%;
  z-index: 10;
  
  background: rgba(255,255,255, 1);
  
  padding: 2rem 0 1.5rem;
  @media (min-width: 992px) {
    padding: 1rem 0 1rem;
    border-top: clamp(1rem, 3vw, 2rem) solid var(--color-accent-2);
    border-bottom: 3px solid var(--color-light);
    background: rgba(255,255,255, .8);
  }
  
  .container {
    @media (min-width: 992px) {
      position: relative;
    }
  }
  
  .nav {
    
    @media (max-width: 991px) {
      position: fixed;
      bottom: 2rem;
      right: 2rem;
      width: 62px;
      height: 62px;
      padding: .9rem;
      border-radius: 100%;
      background: var(--color-light);
      text-align: center;
      -webkit-box-shadow: 0 3px 6px 0 rgba(0,0,0,0.16); 
              box-shadow: 0 3px 6px 0 rgba(0,0,0,0.16);
    }
    
    img {
      max-width: 50px;
    }
  }
  
  .contacts {
    position: relative;
    a + a { 
      margin-left: 2rem;
    }
    
    div {
      position: absolute;
      top:50%;
      transform: translateY(-50%);
    }
    
    a::before {
      content: '';
      background: url('/fileadmin/icons/contact_email.svg') no-repeat;
      width: 30px;
      display: inline-block;
      height: 30px;
      vertical-align: middle;
      margin-right: .75rem;
    }
    
    a[href^="tel"]::before {
      background: url('/fileadmin/icons/contact_phone.svg') no-repeat;
    }
  }
  
  .logo {
    text-align: center;
    @media (min-width: 992px) {
      position: absolute;
      top:50%;
      right: 0;
      transform: translateY(-50%);
    }
    img {
      height: auto;
      width: 211px;
      @media (min-width: 992px) {
        float: right;
      }
    }
  }
  
  .contacts { display: none; }
  @media (min-width: 992px) {
    .contacts { display: block; }
  }  

}

.navigation-frame {
  position: fixed;
  top: 0;
  left:-100vw;
  width: 100vw;
  height: 100vh;
  
  z-index: 100;
	-webkit-transition: all .3s ease-out;
	transition: all .3s ease-out;  
  
  background: #fff;
  @media (min-width: 992px) {
    background: linear-gradient(to right, rgba(255,255,255,1) 0%,rgba(255,255,255,1) 40%,rgba(255,255,255,.5) 40%);
  }
  
  ul, li {
    list-style-type: none;
    margin: 0;
    padding: 0;
  }
  
  a {
    display: block;
    margin: 2.5rem 0;
    font-size: var(--size-title);
  }
  
  .nav-close {
    display: none;
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 62px;
    height: 62px;
    padding: .9rem;
    border-radius: 100%;
    background: var(--color-light);
    text-align: center;

    @media (min-width: 992px) {
        position: static;
        margin: 2rem 0 0 0;
        width: 50%;
        padding: 0;
        text-align: left;

    }

  }
  
  .nav-main {
    margin: 3rem 0 4rem;
    @media (min-width: 500px) {
      margin: 6rem 0;
    }
    @media (min-width: 992px) {
      margin: 6rem 0 10rem;
    }
  }
  
  .nav-meta {
    a {
      font-size: var(--size-copy);
    }
  }
  .nav-socials {
      transform: translateX(-.5rem);
  }

}

body:not(.show-nav) .nav-close {
  opacity: 0;
  pointer-events: none;
}

.show-nav .navigation-frame {
  left:0;
  .nav-close {
    display: block;
  }
}

footer {
  text-align: center;
  position: relative;
  overflow: hidden;
  
  &::before {
    content: '';
    display: block;
    position: absolute;
    top:-10px;
    left:0;
    width: 100%;
    height: 10px;
    -webkit-box-shadow: 0 0 8px 6px rgba(0,0,0,0.08); 
            box-shadow: 0 0 8px 6px rgba(0,0,0,0.08);  
  }
    
  nav {
    padding: 3rem 0 3rem;
    font-family: poppins, sans-serif;
    font-size: 18px;
    line-height: 1;    
    font-weight: 300;  
    color: var(--color-primary);    
  }
  
    a {
      margin: 0 2rem;
    }  
  
  @media (min-width: 992px) {
    a {
      margin: 0 10rem 0 0;
    }
    .socials {
      display: inline-block;
    }
  }
  
  div.legal {
    background: var(--color-accent-2);
    color: var(--color-light);
    font-family: poppins, sans-serif;
    font-weight: 300;  
    font-size: var(--size-note);
    line-height: 1;
    padding: .8rem 0 .4rem;
    span {
      text-transform: uppercase;
    }
  }
  
}

footer, .navigation-frame {
  a[class^="icon-"] {
    width:50px;
    height: 50px;
    display: inline-block;
    margin:0 .1rem 0;
    transform: translateY(1rem);
  }
}

#hero {
  position: relative;
  @media (max-width: 1200px) {
    /* height: 97vh; */
    height: fit-content;
  }
  .claim {
    position: absolute;    
    bottom: 0;
    z-index: 2;
    width: 100%;
    font-family: futura-100, sans-serif;
    font-weight: 200;
    font-size: clamp(18px, 1vw + 20px, 28px);
    color: var(--color-accent-2);
    letter-spacing: .04rem;
    text-align: center;
    background: rgba(255,255,255,.8);
    padding: 1rem;
    @media (max-width: 550px) {
      padding: .5rem 6rem .5rem 1rem;
      font-size: var(--size-button);
    }
  }  
  .buttons {
    position: absolute;
    width: 100%;
    inset-block-start: 60%;
    translate: 0 -60%;    
    display: grid;
    justify-content: center;
    gap: 1rem;
    z-index: 3;
    pointer-events: none;
    text-align: center;
    @media (min-width: 992px) {
      display: flex;
    }   
    .btn {
      display: inline-block;
      vertical-align: middle;
      margin: 2rem 0;
      pointer-events: initial;
      @media (min-width: 992px) {
        margin: 2rem 5rem;
      }
      a {
        display: block;
        height: clamp(110px, 10vh, 120px);
        width: clamp(300px, 20vw, 330px);
        line-height: 1;
        background: rgba(255,255,255,.65);
        text-transform: uppercase;
        font-family: futura-100, sans-serif;
        font-weight: 500;         
        font-size: var(--size-button);
        -webkit-transition: background .3s ease-out;
        transition: background .3s ease-out; 

        &:hover {
          background: var(--color-primary);
          color: var(--color-light);
          text-decoration: none;
        }
        
        span {
          display: block;
          position: relative;
          top: 50%;
          transform: translateY(-60%);
          &.multiline { transform: translateY(-45%); }
          .sub {
            display: block;
            font-size: var(--size-title);
            margin-top: 1rem;
          }
        }
        
      }
    }
    
  }

  .bg {
    position: relative;
    width: 100vw;
    max-height: 100vh;
    overflow: hidden;
    
    @media (min-width: 2000px) {
      background: var(--color-accent);
    }
    
    .video-desktop,
    .video-mobile {
      width: 100%;
      height: 100%;
    }

    video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      pointer-events: none;
    }
    
    .video-desktop { display: none; }

    @media (orientation: landscape) {
      .video-desktop { display: block; }
      .video-mobile { display: none; }
    }   
  }
  
}

.video {
  background: var(--color-text);
  line-height: 0;
  margin: 0 0 2rem;
  position: relative;
  video { 
    width: 100%;
    opacity: .95;
  }
  .video-description {
    position: absolute;
    z-index: 1;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 1rem 0 .5rem;
    text-align: center;
    background: var(--color-primary);
    border-bottom: 2px solid var(--color-primary);
    line-height: 1;
    font-family: poppins, sans-serif;
    font-size: var(--size-title);    
    font-weight: 300;
    color: var(--color-accent);
  }
  iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    border: 0;
  }
}

.ce-uploads {
  a { 
    display: block;
    text-decoration: none;
    &::after {
      content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMi41IiBoZWlnaHQ9IjI3IiB2aWV3Qm94PSIwIDAgMjIuNSAyNyI+CiAgPHBhdGggaWQ9Imljby1kb3dubG9hZCIgZD0iTTI5LjI1LDE0LjAyN0gyMi44MjNWNC41SDEzLjE3N3Y5LjUyN0g2Ljc1TDE4LDI1LjE0NCwyOS4yNSwxNC4wMjdaTTYuNzUsMjguMzIyVjMxLjVoMjIuNVYyOC4zMjJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNi43NSAtNC41KSIvPgo8L3N2Zz4K");
      float: right;      
    }    
  }
  .ce-uploads-fileName {
    font-size: var(--size-copy);
    color: var(--color-text);
  }
  a:hover {
    .ce-uploads-fileName { color: var(--color-primary); }
    &::after {
      content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMi41IiBoZWlnaHQ9IjI3IiB2aWV3Qm94PSIwIDAgMjIuNSAyNyI+CiAgPHBhdGggaWQ9Ikljb25faW9uLW1kLWRvd25sb2FkIiBkYXRhLW5hbWU9Ikljb24gaW9uLW1kLWRvd25sb2FkIiBkPSJNMjkuMjUsMTQuMDI3SDIyLjgyM1Y0LjVIMTMuMTc3djkuNTI3SDYuNzVMMTgsMjUuMTQ0LDI5LjI1LDE0LjAyN1pNNi43NSwyOC4zMjJWMzEuNWgyMi41VjI4LjMyMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02Ljc1IC00LjUpIiBmaWxsPSIjZmYzYTJkIi8+Cjwvc3ZnPgo=");
    }
  }
}

form {
  position: relative;
  background: var(--color-accent);
  padding: 3rem 3rem 5.5rem 3rem;
  margin: 2rem 0 4rem;

  .row > * {
    padding: 0 1rem;
  }

  .form-group {
    position: relative;
    overflow: hidden;
    margin: 0 0 3rem 0;
  }
  
  label:not(.form-check-label) {
    position: absolute;
    left: -100vw;
  }
  label.form-check-label {
    position: relative;
    cursor: pointer;
    input { 
      left: 0;
      appearance: none;
      border: 2px solid var(--color-primary);
      width: 2rem;
      height: 2rem;
      transform: translateY(.4rem);
      position: relative;
    }
    input[type="checkbox"]:checked {
      background: var(--color-primary);
      border-color: var(--color-primary);
    }
    input[type="checkbox"]:checked::after {
      content: "";
      position: absolute;
      left: .5rem;
      top: 0;
      width: .75rem;
      height: 1.5rem;
      border: solid var(--color-light);
      border-width: 0 2px 2px 0;
      transform: rotate(45deg);
    }      
    span {
      display: block;
      padding-left: 3rem;
      transform: translateY(-1.5rem);
      font-size: var(--size-copy);
    }
  }
  
  input, textarea {
    width: 100%;
    border:0;
    padding: .5rem 0 .25rem .75rem;
    &::placeholder {      
      color: var(--color-accent-3);      
      font-family: poppins, sans-serif;
      font-weight: 400;
      font-size: var(--size-note);
    }
  }
  
  textarea {
    min-height: 16rem;
  }
  
  .actions {
    position: absolute;
    bottom:0;
    left:-3rem;
    width: calc(100% + 3rem);
    padding: 2rem 0rem 0 3rem;
    background: var(--color-light);
    
    button {
      background: transparent;
      border: 2px solid var(--color-primary);
      color: var(--color-text);
      line-height: 1;
      padding: .75rem 0 .5rem;
      text-align: center;
      width: 100%;
      font-size: var(--size-copy);
      cursor: pointer;
      -webkit-transition: all .3s ease-out;
      transition: all .3s ease-out;       
      &:hover {
        background: var(--color-primary);
        color: var(--color-light);
      }
    }
  }
  
}


form[id^="newsletter"] {
  margin: 4rem 0 0;
  padding: 0;
  p { 
    font-size: var(--size-copy); 
    margin-bottom:3rem !important;
  }
  
  @media (min-width: 992px) {
    [class*="col-"][class$="-3"] {
      width: 30%;
    }

    [class*="col-"][class$="-4"] {
      width: 36%;
    }
    

    [class*="col-"][class$="-6"] {
      width: 60%;
    }
  }
  
  .actions {
    bottom: auto;
    background: none;
    position: relative;    
  }
}


.quote.frame-default {
  text-align: center;
  padding: 2rem 0 0;
  @media (min-width: 992px) {
    padding: 6rem 0 1.5rem;
  }  
  p.title {
    font-size: var(--size-quote);
    font-family: futura-100-book, sans-serif;
    font-weight: 400;
    color: var(--color-text);
    line-height: 1.7;
    margin-top: 0;
    @media (min-width: 992px) {
      width: 90%;
    }
    span {
      font-size: var(--size-author);
      font-family: poppins, sans-serif;
      text-transform: initial;
      &::before {
        content: '';
        display: block;
        width: 25%;
        @media (min-width: 992px) {
          width: 29%;
        }
        height: 2px;
        background: var(--color-primary);
        margin: 1rem auto;
        line-height: 1;
        @media (min-width: 992px) {
          margin: 2.5rem auto 1.5rem;
        }
      }
    }
  }
  
}

/* Newsletter */

.newsletter-issue {
  p.title {   margin: 2.75rem 0 1.5rem; }
  
  .container-image {
    width: 100%;
    padding: 0;
    margin: 2rem 0 0;
  }
  
  iframe {
    width: 100%;
    height: 449px;
  }  

  .browse {
      display: flex;
      justify-content: space-between;
      align-items: stretch;
      gap: 2rem;
      margin: 2rem 0;
      
      span {
        transform: translateY(2px);
        display: none;
        @media (min-width: 992px) {
          display: inline-block;
        }
      }
      
      .prev a::before,
      .next a::after {
          content: '';
          display: inline-block;
          width: 2rem;
          height: 2rem;          
          @media (min-width: 992px) {
          width: .5rem;
          height: .5rem;
          }
          border-top: 2px solid currentColor;
      }

      .prev a::before {
          border-left: 2px solid currentColor;
          transform: rotate(-45deg);
          margin-right: .25rem;
      }

      .next a::after {
          border-right: 2px solid currentColor;
          transform: rotate(45deg);
          margin-left: .25rem;
      }    
      
  }  

}


.container.frame-statements {
  padding: 0 var(--bs-gutter-x,.75rem) 2rem var(--bs-gutter-x,.75rem);
  .row, .col-12 { padding: 0; margin: 0;}
  @media (min-width: 992px) {
    padding: 4rem 0;
    .row, figure, .col-12 { padding: 0; margin: 0;}
  }
  
  .ce-gallery {
    max-width: 240px;
    height: 240px;
    overflow: hidden;
    border-radius: 100%;
    border: 2px solid var(--color-primary);
    margin: 0 auto 2rem auto;
    @media (min-width: 992px) {
      border:0;
      border-radius: 0;
      max-width: none;
      height: initial;
      margin: 0;
    }
  }
  
  figure {
    margin: 0 0 6rem;    
    @media (min-width: 992px) {
      margin: 0 0 4rem; 
      display: grid;      
      grid-template-columns: 30% 1fr;
      gap: 0;
      align-items: start;
    }
  }
  
  blockquote {
    position: relative;
    height: 100%;
    margin: 0;
    @media (min-width: 1600px) {
      padding: 0 0 3rem 3rem;    
    }
    
    .full { 
      margin: 0 3rem;
      @media (min-width: 1200px) {
        margin: 0;
        -webkit-transition: all .3s ease-out;
        transition: all .3s ease-out;
        opacity: 0;
        background: #fff;
        position: absolute;
        top:0;
        left: 0;
        padding: 0 3rem;  
        width: 100%;
        height: 100%;
        z-index: 2;        
      }               
      p {         
        margin: 0;
        font-size: var(--size-note); 
      }
    }
    .excerpt {
      display: none;
      margin: 0 3rem;
      @media (min-width: 1200px) {
        display: block;
      }
      @media (min-width: 1600px) {
        margin: 0;
      }      
      font-size: clamp(24px, 1vw + 30px, 35px);
      font-family: futura-100-book, sans-serif;
      font-weight: 400;
      color: var(--color-text);
      text-align: center;
    }
    footer {
      width: 100%;
      overflow: initial;
      font-size: var(--size-copy);    
      margin-top: 3rem;
      @media (min-width: 1600px) {
        position: absolute;
        z-index: 5;
        bottom: 0;
        left:0;
      }
      &::before {
        content: '';
        position: static;
        transform: translateY(-1rem);
        @media (min-width: 1900px) {
          transform: translateY(-3rem);
        }
        display: block;
        width: 25%;
        margin: 0 auto;
        
        height: 2px;
        background: var(--color-primary);
        -webkit-box-shadow: none;
        box-shadow: none;
      }
      
      div {
        font-size: var(--size-note);
        margin-top: .25rem;
        span { text-transform: uppercase; }
      }
    }    
  }
  @media (min-width: 1600px) {
    .col-12:first-of-type figure blockquote { padding-right: 5rem;}
  }  
}

figure.statement:hover .full {
  opacity: 1;
}


/* Homepage - Form - Contact Data */

#c18 .col-12 + .col-12 > p:first-of-type {
  margin-top: 2rem;
}

/* Homepage - Headline Certificates */

#c24 {
  padding: 4rem 0; 
  @media (min-width: 500px) {
    padding: 0 0 4rem;
  }
  .row {
    display: none;
    @media (min-width: 500px) {
      display: block;
    }
  }
}

#p1 .grid.images picture {
  max-height: 165px;
  img {
    width: 100%;
    max-width: 165px;
    height: auto;
    @media (min-width: 500px) {
    height: 100%;    
    width: auto;
    max-width:347px;
    }
  }
}

/* Kanzlei - Vita */

#c56 { padding-bottom: 0; }

#c60 {
  @media (max-width: 1399px) { 
    .container, { max-width: 100%; }
  }
  .container-image  { width: 100%; }
  @media (max-width: 991px) {    
    padding-left: 0;
    padding-right: 0;    
    div {
      padding:0;
    }
  }
}

/* Mandant online */

body#p3 .spacer {
  @media (min-width: 992px) {
    margin: 6.8rem 0 0 !important;
  }
}

#steuerrat-news-button a {
  background: var(--color-accent);
  width: 100%;
  height: 100%;
  font-size: var(--size-headline);
  padding: 4.5rem 0 4rem 4rem;
  margin: 8rem 0 4rem;
  display: block;
  position: relative;
  text-decoration: none;
  -webkit-transition: all .3s ease-out;
          transition: all .3s ease-out;  
  span:first-of-type {
    text-transform: uppercase;
  }
  font-family: futura-100, sans-serif;
  span:last-of-type {
    text-transform: uppercase;
    color:#707070;
    font-weight: 300;
    font-family: futura-100-book, sans-serif;
  }
  
  &::before {
    content: '';
    position: absolute;
    top: -.6rem;
    right: 0;    
    width:200px;
    height: 80px;
    @media (min-width: 992px) {
      
      height: 90px;
      width: 220px;
      top: -.6rem;
    }
    @media (min-width: 1600px) {
      height: 150px;
      width:365px;
      top: -1rem;
    }    
    background: url('../Images/gfx_newsletter_button.png');
    background-size: cover;
  }
  &::after {
    content: '';
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="25.323" height="78.925" viewBox="0 0 25.323 78.925"><path d="M6013,1520.42l22.292,38.714L6013,1597.847" transform="translate(-6011.7 -1519.671)" fill="none" stroke="%23ff3a2d" stroke-width="3"/></svg>');
    position: absolute;
    bottom: 1.5rem;
    right: 1.5rem;
    display: block;
    width:25px;
    height:78px;
  }
  &:hover {
    transform: scale(1.1);  
  }
}

#newsletter-buttons,
#external-buttons {
  @media (min-width: 992px) {
    margin: 10rem 0 0;
  }
  h3 {
    font-size: var(--size-headline);
    font-family: futura-100, sans-serif;
    span {
      color:#707070;
      font-weight: 300;
      font-family: futura-100-book, sans-serif;
      display: block;
    }
  }
  .grid {
    margin-top: 2rem;
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;     
    @media (min-width: 992px) {
      grid-template-columns: repeat(2, [col-start] 1fr);
    }
    a {
      display: block;
      text-align: center;
      border: 2px solid var(--color-primary);
      padding: .75rem 0 .5rem;
      color: var(--color-text);
      font-size: var(--size-title);
      text-decoration: none;
      -webkit-transition: all .3s ease-out;
              transition: all .3s ease-out;      
      &:hover { 
        background: var(--color-primary);
        color: var(--color-light);
      }
    }
  }
}

#external-buttons { margin: 0; }


div#newsletter-127,
div#kontakt-19,
div#kontakt-64 {
  margin-top: 2rem;
  font-size: var(--size-copy);
}

/* STEUERrat News */

#steuerrat-news-banner {
  display: none;
  @media (min-width: 1400px) {
    display: block;
  }
  position: relative;
  padding: 0 0 13rem;
  &.article { padding: 0; }
  &::before {
    content: '';
    position: absolute;
    top: -1.9rem;
    right: -7rem;
    width:718px;
    height: 260px;
    background: url('../Images/gfx_newsletter_banner.png');
    z-index: 1;
    pointer-events: none;
  }  
}


#steuernews h1 {
  font-size: var(--size-headline);
  text-transform: uppercase;
  font-family: futura-100, sans-serif;
  margin: 0 0 4rem;    
  position: relative;
  letter-spacing: .1rem;
  &::after {
    content: '';
    display: block;
    /* width: 100%; */
    height: 2px;
    margin: 1.5rem 0 0;
    width: 33%;
    @media (min-width: 992px) {
      background: var(--color-primary);
       margin: 2.5rem 0 0;
    }
  }
}    

.steuernews_article_overview {
  display: grid;
  /* grid-template-columns: repeat(2, [col-start] 1fr); */  
  gap: 3rem;
  grid-template-columns: 1fr;     
  @media (min-width: 1200px) {
    grid-template-columns: repeat(2, [col-start] 1fr);
  }
  
  h3.title {
    hyphens: auto;
    margin: 0;
  }  
  p.text {
    color: var(--color-text);
    
  }  
  a:hover {
    text-decoration: none;
    h3.title {
      text-decoration: underline;
    }
  }
}
  
#steuernews_fuer_aerzte {  
  article.news_entity figure { margin: 0; }
  h2.overview_title { 
    color: var(--color-text);
    font-size: var(--size-button);
  }
  .teaser_text h3.title + p { color: var(--color-text); }
  a.entry:hover { text-decoration: none; }
  a.entry:hover h3 { text-decoration: underline; }
}  

#steuernews_fuer_mandanten {  
  article.news_entity figure { margin: 0; }
  h2.overview_title { 
    color: var(--color-text);
    font-size: var(--size-button);
  }  
  .teaser_text h3.title + p { color: var(--color-text); }
  a.entry:hover { text-decoration: none; }
  a.entry:hover h3 { text-decoration: underline; }
} 

.steuernews_more_articles_overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
  align-items: start;  
  h2 { grid-column: 1 / -1; }
  h3 { font-size: var(--size-small); margin-top: .5rem; }
  p { font-size: var(--size-tiny); }
  a { 
    display: flex; 
    flex-direction: column;
    hyphens: auto;
    .image { order: 1; min-height: 167px; }
    .teaser_text { order: 2; }    
  }
}

nav.steuernews_issues {
  ul {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem 2rem;
  }
}
  
/* Homepage */

.flockler-grid-items {
  display: grid;
  gap: var(--gap);
  grid-template-columns: 1fr;  
  
  .flockler-grid-item {
    width: 100% !important;
  }
  
  @media (min-width: 800px) {
    grid-template-columns: repeat(2, [col-start] 1fr);
  }   
  
  @media (min-width: 1024px) {
    grid-template-columns: repeat(4, [col-start] 1fr);
  }
  
}