@font-face {
  font-family: 'Poppins';
  src: url('/files/fonts/Poppins-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/files/fonts/Poppins-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Lilita One';
  src: url('/files/fonts/LilitaOne-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/**
 * Swiper 12.1.3
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2026 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: March 24, 2026
 */

:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px;.swiper-cube-shadow,.swiper-slide{transform-style:preserve-3d}}.swiper-css-mode{>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none}}>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}&.swiper-horizontal{>.swiper-wrapper{scroll-snap-type:x mandatory}>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}}&.swiper-vertical{>.swiper-wrapper{scroll-snap-type:y mandatory}>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}}&.swiper-free-mode{>.swiper-wrapper{scroll-snap-type:none}>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}}&.swiper-centered{>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}}&.swiper-centered.swiper-horizontal{>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}}&.swiper-centered.swiper-vertical{>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}}}.swiper-3d{.swiper-slide-shadow,.swiper-slide-shadow-bottom,.swiper-slide-shadow-left,.swiper-slide-shadow-right,.swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-slide-shadow{background:#00000026}.swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-slide-shadow-top{background-image:linear-gradient(0deg,#00000080,#0000)}.swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,#00000080,#0000)}}.swiper-lazy-preloader{border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid #0000;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible,.swiper:not(.swiper-watch-progress){.swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite}}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode{.swiper-wrapper:after{content:"";left:0;pointer-events:none;position:absolute;top:0}}.swiper-virtual.swiper-css-mode.swiper-horizontal{.swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}}.swiper-virtual.swiper-css-mode.swiper-vertical{.swiper-wrapper:after{height:var(--swiper-virtual-size);width:1px}}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-navigation-color,var(--swiper-theme-color));cursor:pointer;display:flex;height:var(--swiper-navigation-size);justify-content:center;position:absolute;width:var(--swiper-navigation-size);z-index:10;&.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}&.swiper-button-hidden{cursor:auto;opacity:0;pointer-events:none}.swiper-navigation-disabled &{display:none!important}::slotted(svg),svg{height:100%;object-fit:contain;transform-origin:center;width:100%;fill:currentColor;pointer-events:none}}.swiper-button-lock{display:none}.swiper-button-next,.swiper-button-prev{margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto;.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(180deg)}}.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}.swiper-horizontal{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{margin-left:0;margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev,&~.swiper-button-next,.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(180deg)}}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev{.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(0deg)}}}.swiper-vertical{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{left:var(--swiper-navigation-top-offset,50%);margin-left:calc(0px - var(--swiper-navigation-size)/2);margin-top:0;right:auto}.swiper-button-prev,~.swiper-button-prev{bottom:auto;top:var(--swiper-navigation-sides-offset,4px);.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(-90deg)}}.swiper-button-next,~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset,4px);top:auto;.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(90deg)}}}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10;&.swiper-pagination-hidden{opacity:0}&.swiper-pagination-disabled,.swiper-pagination-disabled>&{display:none!important}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);left:0;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden;.swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullet-active,.swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullet-active-next-next{transform:scale(.33)}}.swiper-pagination-bullet{background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));button&{appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable &{cursor:pointer}&:only-child{display:none!important}}.swiper-pagination-bullet-active{background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:var(--swiper-pagination-left,auto);right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0);.swiper-pagination-bullet{display:block;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}&.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px;.swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets{.swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}&.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap;.swiper-pagination-bullet{transition:transform .2s,left .2s}}}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,#00000040);position:absolute;.swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl & .swiper-pagination-progressbar-fill{transform-origin:right top}&.swiper-pagination-horizontal,&.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-horizontal>&,.swiper-vertical>&.swiper-pagination-progressbar-opposite{height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}&.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,&.swiper-pagination-vertical,.swiper-horizontal>&.swiper-pagination-progressbar-opposite,.swiper-vertical>&{height:100%;left:0;top:0;width:var(--swiper-pagination-progressbar-size,4px)}}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:var(--swiper-scrollbar-bg-color,#0000001a);border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;&.swiper-scrollbar-disabled,.swiper-scrollbar-disabled>&{display:none!important}&.swiper-scrollbar-horizontal,.swiper-horizontal>&{bottom:var(--swiper-scrollbar-bottom,4px);height:var(--swiper-scrollbar-size,4px);left:var(--swiper-scrollbar-sides-offset,1%);position:absolute;top:var(--swiper-scrollbar-top,auto);width:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);z-index:50}&.swiper-scrollbar-vertical,.swiper-vertical>&{height:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);left:var(--swiper-scrollbar-left,auto);position:absolute;right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);width:var(--swiper-scrollbar-size,4px);z-index:50}}.swiper-scrollbar-drag{background:var(--swiper-scrollbar-drag-bg-color,#00000080);border-radius:var(--swiper-scrollbar-border-radius,10px);height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%;>canvas,>img,>svg{max-height:100%;max-width:100%;object-fit:contain}}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-fade{&.swiper-free-mode{.swiper-slide{transition-timing-function:ease-out}}.swiper-slide{pointer-events:none;transition-property:opacity;.swiper-slide{pointer-events:none}}.swiper-slide-active{pointer-events:auto;& .swiper-slide-active{pointer-events:auto}}}.swiper.swiper-cube{overflow:visible}.swiper-cube{.swiper-slide{backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1;.swiper-slide{pointer-events:none}}&.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}.swiper-slide-active,.swiper-slide-next,.swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0;&:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}}}.swiper-cube{.swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}}.swiper-cube{.swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-slide-shadow-cube.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper.swiper-flip{overflow:visible}.swiper-flip{.swiper-slide{backface-visibility:hidden;pointer-events:none;z-index:1;.swiper-slide{pointer-events:none}}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}}.swiper-flip{.swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-slide-shadow-flip.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper-creative{.swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}}.swiper.swiper-cards{overflow:visible}.swiper-cards{.swiper-slide{backface-visibility:hidden;overflow:hidden;transform-origin:center bottom}}
/* ============================================
   DESIGN TOKENS – CSS Custom Properties
   ============================================ */

:root {
  /* Colors */
  --color-paper: #fefefe;
  --color-cream: #f4f0ec;
  --color-brand: #e91f1f;
  --color-brand-dark: #c10000;
  --color-brand-deep: #8b1011;
  --color-ink: #111111;
  --color-mist: #ebebec;
  --color-sand: #f4de8e;

  /* Font Families */
  --font-headline: "Lilita One", cursive;
  --font-body: "Poppins", sans-serif;

  /* Box Shadows */
  --shadow-cartoon: 0 4px 0 0 #e91f1f;
  --shadow-soft: 0 20px 50px rgba(0, 0, 0, 0.14);

  /* Background Images */
  --bg-hero-glow: radial-gradient(
    circle at center,
    rgba(255, 255, 255, 0.98) 0%,
    rgba(255, 255, 255, 0.72) 38%,
    rgba(255, 255, 255, 0) 70%
  );
  --bg-grain-dots: radial-gradient(
    circle at 1px 1px,
    rgba(193, 0, 0, 0.08) 1px,
    transparent 0
  );

  /* Max Widths */
  --max-w-shell: 1188px;
}


/* ============================================
   TAILWIND UTILITY KLASSEN
   (für Verwendung direkt in Templates)
   ============================================ */

/* --- Colors: Text --- */
.text-paper      { color: var(--color-paper); }
.text-cream      { color: var(--color-cream); }
.text-brand      { color: var(--color-brand); }
.text-brand-dark { color: var(--color-brand-dark); }
.text-brand-deep { color: var(--color-brand-deep); }
.text-ink        { color: var(--color-ink); }
.text-mist       { color: var(--color-mist); }
.text-sand       { color: var(--color-sand); }

.focus\:text-paper:focus      { color: var(--color-paper); }
.focus\:text-cream:focus      { color: var(--color-cream); }
.focus\:text-brand:focus      { color: var(--color-brand); }
.focus\:text-brand-dark:focus { color: var(--color-brand-dark); }
.focus\:text-brand-deep:focus { color: var(--color-brand-deep); }
.focus\:text-ink:focus        { color: var(--color-ink); }
.focus\:text-mist:focus       { color: var(--color-mist); }
.focus\:text-sand:focus       { color: var(--color-sand); }

.hover\:text-paper:hover      { color: var(--color-paper); }
.hover\:text-cream:hover      { color: var(--color-cream); }
.hover\:text-brand:hover      { color: var(--color-brand); }
.hover\:text-brand-dark:hover { color: var(--color-brand-dark); }
.hover\:text-brand-deep:hover { color: var(--color-brand-deep); }
.hover\:text-ink:hover        { color: var(--color-ink); }
.hover\:text-mist:hover       { color: var(--color-mist); }
.hover\:text-sand:hover       { color: var(--color-sand); }

.group:hover .group-hover\:text-paper      { color: var(--color-paper); }
.group:hover .group-hover\:text-cream      { color: var(--color-cream); }
.group:hover .group-hover\:text-brand      { color: var(--color-brand); }
.group:hover .group-hover\:text-brand-dark { color: var(--color-brand-dark); }
.group:hover .group-hover\:text-brand-deep { color: var(--color-brand-deep); }
.group:hover .group-hover\:text-ink        { color: var(--color-ink); }
.group:hover .group-hover\:text-mist       { color: var(--color-mist); }
.group:hover .group-hover\:text-sand       { color: var(--color-sand); }


/* --- Colors: Background --- */
.bg-paper      { background-color: var(--color-paper); }
.bg-cream      { background-color: var(--color-cream); }
.bg-brand      { background-color: var(--color-brand); }
.bg-brand-dark { background-color: var(--color-brand-dark); }
.bg-brand-deep { background-color: var(--color-brand-deep); }
.bg-ink        { background-color: var(--color-ink); }
.bg-mist       { background-color: var(--color-mist); }
.bg-sand       { background-color: var(--color-sand); }

.focus\:bg-paper:focus      { background-color: var(--color-paper); }
.focus\:bg-cream:focus      { background-color: var(--color-cream); }
.focus\:bg-brand:focus      { background-color: var(--color-brand); }
.focus\:bg-brand-dark:focus { background-color: var(--color-brand-dark); }
.focus\:bg-brand-deep:focus { background-color: var(--color-brand-deep); }
.focus\:bg-ink:focus        { background-color: var(--color-ink); }
.focus\:bg-mist:focus       { background-color: var(--color-mist); }
.focus\:bg-sand:focus       { background-color: var(--color-sand); }

.hover\:bg-paper:hover      { background-color: var(--color-paper); }
.hover\:bg-cream:hover      { background-color: var(--color-cream); }
.hover\:bg-brand:hover      { background-color: var(--color-brand); }
.hover\:bg-brand-dark:hover { background-color: var(--color-brand-dark); }
.hover\:bg-brand-deep:hover { background-color: var(--color-brand-deep); }
.hover\:bg-ink:hover        { background-color: var(--color-ink); }
.hover\:bg-mist:hover       { background-color: var(--color-mist); }
.hover\:bg-sand:hover       { background-color: var(--color-sand); }

/* --- Colors: Border --- */
.border-paper      { border-color: var(--color-paper); }
.border-cream      { border-color: var(--color-cream); }
.border-brand      { border-color: var(--color-brand); }
.border-brand-dark { border-color: var(--color-brand-dark); }
.border-brand-deep { border-color: var(--color-brand-deep); }
.border-ink        { border-color: var(--color-ink); }
.border-mist       { border-color: var(--color-mist); }
.border-sand       { border-color: var(--color-sand); }

.focus\:border-paper:focus      { border-color: var(--color-paper); }
.focus\:border-cream:focus      { border-color: var(--color-cream); }
.focus\:border-brand:focus      { border-color: var(--color-brand); }
.focus\:border-brand-dark:focus { border-color: var(--color-brand-dark); }
.focus\:border-brand-deep:focus { border-color: var(--color-brand-deep); }
.focus\:border-ink:focus        { border-color: var(--color-ink); }
.focus\:border-mist:focus       { border-color: var(--color-mist); }
.focus\:border-sand:focus       { border-color: var(--color-sand); }

.hover\:border-paper:hover      { border-color: var(--color-paper); }
.hover\:border-cream:hover      { border-color: var(--color-cream); }
.hover\:border-brand:hover      { border-color: var(--color-brand); }
.hover\:border-brand-dark:hover { border-color: var(--color-brand-dark); }
.hover\:border-brand-deep:hover { border-color: var(--color-brand-deep); }
.hover\:border-ink:hover        { border-color: var(--color-ink); }
.hover\:border-mist:hover       { border-color: var(--color-mist); }
.hover\:border-sand:hover       { border-color: var(--color-sand); }

/* --- Font Families --- */
.font-headline { font-family: var(--font-headline); }
.font-body     { font-family: var(--font-body); }

/* --- Box Shadows --- */
.shadow-cartoon { box-shadow: var(--shadow-cartoon); }
.shadow-soft    { box-shadow: var(--shadow-soft); }

/* --- Background Images --- */
.bg-hero-glow   { background-image: var(--bg-hero-glow); }
.bg-grain-dots  { background-image: var(--bg-grain-dots); }

/* --- Max Width --- */
.max-w-shell {
  max-width: var(--max-w-shell);
  width: 100%;
}

.shell {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: var(--max-w-shell);
  padding: 0 12px;
}

@media (min-width: 1440px) {
  .shell {
    padding: 0;
  }
}

.cta-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 200px;
  border: 3px solid var(--color-paper);
  background-color: var(--color-brand-dark);
  padding: 8px 40px;
  font-family: var(--font-headline);
  color: var(--color-paper);
  transition: transform 200ms;
  text-decoration: none;
  min-width: 200px;
}

.cta-primary:hover {
  border-color: #000;
  background-color: #ff8000;
  color: #000;
}

.card-outline {
  border-radius: 28px;
  border: 2px solid var(--color-brand);
  background-color: var(--color-paper);
  box-shadow: var(--shadow-cartoon);
}

.invisible {
  position: absolute;
  top: 0;
  left: 0;
}

body {
  position: relative;
}

#wrapper {
  padding-top: 82px;
}

.hero-swiper .swiper-pagination-bullet {
  margin: 0;
  height: 8px;
  width: 24px;
  border-radius: 9999px;
  background-color: var(--color-brand-dark);
  opacity: 1;
  transform: none;
  border: 1px solid #fff;
  margin: 0;
}

.hero-swiper .swiper-pagination-bullet-active {
  width: 64px;
  border-radius: 200px;
  background-color: #c10000;
  opacity: 1;
  transform: none;
}

.hero-swiper .swiper-button-prev svg,
.hero-swiper .swiper-button-next svg {
  fill: var(--color-brand-dark);
  width:  auto;
  height: 18px;
}

.hero-swiper .swiper-button-prev svg path,
.hero-swiper .swiper-button-next svg path {
  fill: var(--color-brand-dark);
}

.swiper-button-disabled {
  opacity: 0.4;
}

[data-order-button]:hover span,
[data-order-button]:focus span {
  color: var(--color-ink);
}

[data-order-button] .img-default { display: block; }
[data-order-button] .img-hover { display: none; }

[data-order-button]:hover .img-default,
[data-order-button]:focus .img-default { display: none; }

[data-order-button]:hover .img-hover,
[data-order-button]:focus .img-hover { display: block; }

a:hover span,
a:focus span {
  color: var(--color-ink);
}

a .img-default { display: block; }
a .img-hover { display: none; }

a:hover .img-default,
a:focus .img-default { display: none; }

a:hover .img-hover,
a:focus .img-hover { display: block; }

@keyframes gallery-scroll-down {
  0% {
    transform: translateY(-50%);
  }
  100% {
    transform: translateY(0);
  }
}

@keyframes gallery-scroll-up {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-50%);
  }
}

.gallery-scroll-down {
  animation: gallery-scroll-down 20s linear infinite;
}

.gallery-scroll-up {
  animation: gallery-scroll-up 20s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .gallery-scroll-down,
  .gallery-scroll-up {
    animation: none;
    transform: translateY(0);
  }
}

.text-stroke {
  -webkit-text-stroke-width: 24px;
  -webkit-text-stroke-color: var(--color-paper);
  paint-order: stroke fill;
}

.job-content ul {
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: disc;
  padding-left: 24px;
  margin-top: 16px;
}

.job-content h3 {
  margin-bottom: 8px;
}

p a {
  color: var(--color-brand-dark);
  text-decoration: underline;
}

body {
  background-color: var(--color-paper);
}


/* ============================================
   TYPOGRAPHY
   ============================================ */

h1, h2, h3 {
  font-family: var(--font-headline);
  color: var(--color-brand-dark);
}

h1 {
  font-size: 52px;
  line-height: 58px;
}

h2 {
  font-size: 32px;
  line-height: 38px;
}

h3 {
  font-size: 24px;
  line-height: 26px;
}

p, li, td, label {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 22px;
}

strong, b, legend {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 16px;
  line-height: 22px;
}

nav a, nav strong, nav b {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 24px;
}

/* ============================================
   DESKTOP OVERRIDES
   ============================================ */

@media (min-width: 1024px) {
  h1 {
    font-size: 72px;
    line-height: 78px;
  }

  h2 {
    font-size: 48px;
    line-height: 54px;
  }

  h3 {
    font-size: 28px;
    line-height: 34px;
  }

  p, li, td, label {
    font-size: 18px;
    line-height: 24px;
  }

  strong, b, legend {
    font-size: 18px;
    line-height: 24px;
  }
}
.formbody {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.widget {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.widget:not(.widget-checkbox) label {
  font-weight: 700;
}

.widget input:not(.checkbox) {
  border-radius: 20px;
  border-top: 1px solid var(--color-brand-dark);
  border-right: 1px solid var(--color-brand-dark);
  border-left: 1px solid var(--color-brand-dark);
  border-bottom: 3px solid var(--color-brand-dark);
  background-color: var(--color-paper);
  height: 45px;
  padding: 12px;
  width: 100%;
}

.widget textarea {
  padding: 12px;
  width: 100%;
  height: 242px;
  border-radius: 20px;
  border-top: 1px solid var(--color-brand-dark);
  border-right: 1px solid var(--color-brand-dark);
  border-left: 1px solid var(--color-brand-dark);
  border-bottom: 3px solid var(--color-brand-dark);
  background-color: var(--color-paper);
}

.widget input::placeholder, .widget textarea::placeholder {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 22px;
  opacity: 0.5;
  color: var(--color-ink);
}

.widget input:user-invalid, .widget textarea:user-invalid {
  border-top: 2px solid var(--color-brand-dark);
  border-right: 2px solid var(--color-brand-dark);
  border-left: 2px solid var(--color-brand-dark);
  border-bottom: 3px solid var(--color-brand-dark);
  background: linear-gradient(0deg, rgba(193, 40, 46, 0.40) 0%, rgba(193, 40, 46, 0.40) 100%), #FFFDF6;
}

.widget input:focus, .widget textarea:focus {
  border-color: var(--color-ink);
  outline: unset;
}

.widget-checkbox .checkbox {
  appearance: none;
  -webkit-appearance: none;
  width: 32px;
  height: 32px;
  padding: 8px;
  border-radius: 4px;
  border: 2px solid var(--color-brand-dark);
  background-color: var(--color-paper);
  cursor: pointer;
}

.widget-checkbox .checkbox:hover {
  background-color: var(--color-brand-dark);
  border-color: var(--color-ink);
}

.widget-checkbox .checkbox:checked {
  background-color: var(--color-paper);
  border-color: var(--color-brand-dark);
  position: relative;
}

.widget-checkbox .checkbox:checked:hover {
  background-color: var(--color-brand-dark);
  border-color: var(--color-ink);
}

.widget-checkbox .checkbox:checked::after {
  content: '';
  position: absolute;
  inset: 4px;
  background-color: var(--color-brand-dark);
  border-radius: 4px;
}

.widget-checkbox .checkbox:checked:hover::after {
  background-color: var(--color-ink);
}

.widget-checkbox span {
  display: flex;
  align-items: center;
  gap: 5px;
}

.widget-checkbox label {
  height: fit-content;
}

.form-confirmation {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.form-confirmation p {
  max-width: 569px;
}

/* ============================================
   FIELDSET / TIMETABLE
   ============================================ */

.timetable {
  border: 2px solid var(--color-brand);
  border-radius: 24px;
  padding: 0;
  position: relative;
  margin-top: 38px;
}

.timetable legend {
  position: absolute;
  top: -38px;
  left: 0;
  font-weight: 700;
}

.timetable .widget {
  flex-direction: row;
  align-items: center;
  gap: 0;
  padding: 0;
  border-bottom: 1px solid var(--color-brand);
}

.timetable .widget:last-child {
  border-bottom: none;
}

/* Trennlinie Mobile – rechts vom Label */
.timetable .widget label {
  padding: 0.5rem 0.75rem;
  border-right: 1px solid var(--color-brand);
  align-self: stretch;
  display: flex;
  align-items: center;
  min-width: 55px;
}

.timetable .widget input {
  margin: 0.5rem 0.75rem;
  flex: 1;
}

@media (min-width: 1024px) {
  .timetable {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
  }

  .timetable .widget {
    flex-direction: column;
    align-items: stretch;
    border-bottom: none;
    border-right: 1px solid var(--color-brand);
  }

  .timetable .widget:last-child {
    border-right: none;
  }

  .timetable .widget label {
    padding: 0.75rem 0.75rem 0.5rem 0.75rem;
    border-right: none;
    border-bottom: 1px solid var(--color-brand);
    align-self: auto;
    min-width: unset;
  }

  .timetable .widget input {
    margin: 0.75rem;
    flex: unset;
    max-width: stretch;
  }
}

.type-checkboxes {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.type-checkboxes legend {
  margin-bottom: 16px;
}
