/* ==========================================================================
   HEYA Website Custom Styles
   ========================================================================== */

/**
 * Project:        HEYA Onepager
 * Client:         HEYA
 * Environment:    SAP Commerce / myPOS / SmartEdit
 * File:           heya-custom-260430.css
 * Version:        1.0.0
 * Author:         SKP Agentur & Studio
 * Created:        2026-04-30
 * Last updated:   2026-04-30
 *
 * Description:
 * Custom frontend stylesheet for the HEYA onepager website.
 * This file contains project-specific layout, component and animation styles
 * used in addition to the existing SAP Commerce / myPOS frontend styles.
 *
 * Notes:
 * - This stylesheet is intended as external custom code.
 * - Keep selectors scoped to HEYA-specific wrapper classes where possible.
 * - Avoid overwriting global CMS or SmartEdit styles unless explicitly needed.
 * - Use clear section comments for maintainability.
 *
 * Naming convention:
 * - Prefix custom classes with `.heya-`
 * - Use component-based class names
 * - Avoid generic selectors such as `section`, `div`, `button` without scope
 *
 * Versioning:
 * - MAJOR: Breaking structural or naming changes
 * - MINOR: New components, sections or larger visual extensions
 * - PATCH: Bug fixes, small refinements and browser-specific adjustments
 */

:root {

  /* =========================
     Farbschema – Light Theme
     ========================= */
  --color-bg: #ffffff;
  --color-bg-muted: #ebebeb;
  --color-bg-dark: #646464;

  --color-text: #414141;
  --color-accent: #C3B4A4;

  --color-petrol: #005259;
  --color-senf: #d2af40;
  --color-terracotta: #ce5a46;
  --color-blaugrau: #6f829a;

  /* =========================
     Typografie
     ========================= */
  /* Basis-Fonts */

  --font-heya: 'Nunito Sans', sans-serif;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-bold: 700;
  --font-weight-extra-bold: 800;

  /* Grundgrößen (rem basiert = responsive) Scale Tokens  */

  --font-size-xs: 0.6rem;
  --font-size-sm: 0.8rem;
  --font-size-base: 1rem;
  --font-size-regular: 1.35rem;
  --font-size-lg: 2.12rem;
  --font-size-xl: 3.125rem;
  --font-size-2xl: 6.25rem;
  --font-size-3xl: 8.875rem;
  --font-size-main-nav: 1.5rem;

  /* Spacings */
  --spacing-1: 1.5rem;
  --standard-padding: 3%;
  --small-padding: 2rem;

  /* Zeilenhöhe */
  --line-height-tight: 1.1;
  --line-height-snug: 1.2;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.7;

  /* Font-Weight */
  --font-weight-regular: 400;
  --font-weight-bold: 700;

}

html {
  font-size: 16px;
  /* Browser-Default */
}

emv-storefront {
  overflow-x: hidden;
}

body,
p {
  font-family: var(--font-heya);
  font-weight: var(--font-weight-light);
  font-size: var(--font-size-regular);
  line-height: var(--line-height-normal);
  color: var(--color-text);
}

a:hover {
  text-decoration: none;
}

.paragraph-container .text {
  margin-bottom: 0 !important;
}

h1,
h2,
h3 {
  color: var(--color-text);
}

h1 {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
  line-height: var(--line-height-tight);
  margin-left: -1px;
}

h2 {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-light);
  line-height: var(--line-height-tight);
}

h1,
h2 {
  margin-bottom: 1rem;
}

h3 {
  font-size: var(--font-size-light);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
}

.extra-bold {
  font-weight: var(--font-weight-extra-bold);
}

.formal h1, .formal h2 {
  font-size: var(--font-size-lg);
}

.LandingPage2Template emv-paragraph .text, .DynamicContentPage1Template emv-paragraph .text, .ProductDetailsPageTemplate emv-paragraph .text, .ProductListPageTemplate emv-paragraph .text {
    margin-bottom: 24px;
    font-size: var(--font-size-regular);
    color: var(--heya-text);
    font-weight: var(--font-weight-regular);
}

.color-petrol {
  color: var(--color-petrol);
}

.color-senf {
  color: var(--color-senf);
}

.color-blaugrau {
  color: var(--color-blaugrau);
}

.color-terracotta {
  color: var(--color-terracotta);
}

.bg-petrol {
  background: var(--color-petrol);
  background-color: var(--color-petrol);
}

.bg-senf {
  background: var(--color-senf);
  background-color: var(--color-senf);
}

.bg-terracotta {
  background: var(--color-terracotta);
  background-color: var(--color-terracotta);
}

.bg-blaugrau {
  background: var(--color-blaugrau);
  background-color: var(--color-blaugrau);
}

/* Grid */

.widthContainer.container__custom {
  max-width: 1800px;
}

.widthContainer.container__full {
  max-width: 100%;
}

.widthContainer:has(.grid-1800) {
  max-width: 1800px;
}

/* Modules */

.ki-wht:after {
  content: url('https://de-emv-mypos-cms-prod-public.s3.amazonaws.com/mypos/awsmedias/ha1/h0c/9602136801310/ki-icon-wht.svg');
  position: absolute;
  width: 40px;
  height: 40px;
  top: 15px;
  right: 15px;
  opacity: 0.7;
}

.ki-blk:after {
  content: url('https://de-emv-mypos-cms-prod-public.s3.amazonaws.com/mypos/awsmedias/hf3/h0b/9602136866846/ki-icon-blk.svg');
  position: absolute;
  width: 40px;
  height: 40px;
  top: 15px;
  right: 15px;
  opacity: 0.7;
}

.LandingPage2Template emv-paragraph .paragraph-container.CENTER.skp-vcenter, .DynamicContentPage1Template emv-paragraph .paragraph-container.CENTER.skp-vcenter, .ProductDetailsPageTemplate emv-paragraph .paragraph-container.CENTER.skp-vcenter, .ProductListPageTemplate emv-paragraph .paragraph-container.CENTER.skp-vcenter {
    height: auto;
}

.paragraph-container {
    width: 100% !important;
    margin: 0 auto;
}

cx-page-layout cx-page-slot:has(.skp-vcenter) {
    align-content: center;
}

emv-paragraph .skp-vcenter .text {
  margin-bottom: 0;
}

.widthContainer.container__slim cx-breadcrumb {
    padding: 0 !important;
}

.widthContainer.container__slim:has(cx-breadcrumb) {
    margin-bottom: 24px;
}

cx-breadcrumb nav span {
    color: var(--color-text) !important;
    font-size: var(--font-size-sm) !important;
    font-weight: var(--font-weight-regular) !important;
}

cx-breadcrumb nav span:last-child {
    font-weight: var(--font-weight-bold) !important;
}

cx-breadcrumb nav span a {
    color: var(--color-text) !important;
    transition: all 0.3s ease-out;
}

cx-breadcrumb nav span a:hover {
    color: var(--color-terracotta) !important;
}

/* Nav Highlight */

emv-navigation-ui {
    align-items: center;
}

emv-navigation-ui nav a {
    color: var(--color-text);
    transition: all 0.3s ease-out;
}

emv-navigation-ui nav a:hover {
    color: var(--color-terracotta);
}

emv-generic-link:has(.nav-highlight) {
  padding: 0;
  border-radius: 50px !important;
  overflow: hidden;
  background: var(--color-petrol);
  transition: all 0.3s ease-out;
  position: relative;
  z-index: 1;
}

emv-generic-link:has(.nav-highlight)::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  transform: rotate(0);
  width: 102%;
  aspect-ratio: 1 / 1;
  background: var(--color-senf);
  z-index: -1;
  transition: all 0.3s ease-out;
}

emv-generic-link:has(.nav-highlight):hover:after {
  top: 0;
  transform: rotate(90deg);
}

a:has(.nav-highlight) {
  display: inline-block;
  color: #FFF;
  font-size: var(--font-size-regular);
  font-weight: var(--font-weight-bold);
  padding: 5px 20px !important;
  z-index: 3;
  transition: all 0.3s ease-out;
}

a:has(.nav-highlight):hover {
  color: #FFF;
}

/* Buttons */

.btn.btn-primary.heya-button {
  padding: 0;
  border-radius: 15px !important;
  overflow: hidden;
  background: var(--color-petrol);
  transition: all 0.3s ease-out;
  position: relative;
  z-index: 1;
}

.btn.btn-primary.heya-button a {
  font-size: var(--font-size-regular);
  font-weight: var(--font-weight-bold);
  padding: 20px 30px !important;
  z-index: 3;
}

.btn.btn-primary.heya-button:after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  transform: rotate(0);
  width: 102%;
  aspect-ratio: 1 / 1;
  background: var(--color-senf);
  z-index: -1;
  transition: all 0.3s ease-out;
}

.btn.btn-primary.heya-button:hover:after {
  top: 0;
  transform: rotate(90deg);
}


/* Header */

emv-header-theme-centered {
  width: 100%;
  display: flex;
  justify-content: center;
  flex-direction: column;
}

emv-header-theme-centered .scrollableHeader {
  transition: all 0.3s ease-out !important;
}

emv-header-theme-centered .scrollableHeader,
emv-header-theme-centered .scrollableHeader.active {
  display: flex;
  width: 100%;
  max-width: 1800px;
  justify-content: space-between;
  margin: 0 auto !important;
  flex-wrap: nowrap;
  align-self: center;
  background-color: rgba(255, 255, 255, 1) !important;
}

emv-header-theme-centered .scrollableHeader.active {
  background-color: rgba(255, 255, 255, 0.8) !important;
  max-width: 100%;
}


emv-header-theme-centered .header_bottom.desktop {
  align-content: center;
}

emv-header-theme-centered .page_layout_centered_slim {
  max-width: 1800px;
}

emv-header-theme-centered .SiteLogo {
  height: auto !important;
}

:focus:not(main),
.basicBottomShadow,
.scrollableHeader.active {
  box-shadow: none;
}

header {
  background: #FFFFFF;
}

.header_bottom.mobile {
  display: none !important;
}

cx-page-slot.SearchBox {
  display: none !important;
}

header .scrollableHeader .SiteLogo cx-banner cx-media {
  width: 260px;
  max-width: 260px;
  height: auto;
  transition: all 0.3s ease-out;
}

header .scrollableHeader.active .SiteLogo cx-banner cx-media {
  width: 150px;
}

header.skin4 .NavigationBar emv-navigation-ui a, header.skin5 .NavigationBar emv-navigation-ui a {
  text-transform: lowercase;
  font-weight: var(--font-weight-bold);
}

/* Grid */
.LandingPage2Template .widthContainer,
.DynamicContentPage1Template .widthContainer,
.ProductDetailsPageTemplate .widthContainer,
.ProductListPageTemplate .widthContainer {
  margin-bottom: 3%;
}

/* ANIMATED HERO SECTION */

:root {
  --heya-rose: #f3ddd8;
  --heya-rose-light: #f8e9e5;
  --heya-red: #c94743;
  --heya-text: #191919;
  --heya-max-width: 100%;
  --heya-ease-soft: cubic-bezier(.45, 0, .25, 1);
  --heya-ease-intro: cubic-bezier(.16, 1, .3, 1);
}

.widthContainer.container__custom:has(.heya-hero) {
  max-width: 100%;
}

.heya-hero {
  width: 100%;
  overflow: hidden;
  background: #fff;
  padding: 0;
}

.heya-hero__stage {
  position: relative;
  width: min(100%, var(--heya-max-width));
  aspect-ratio: 3000 / 1300;
  min-height: 430px;
  margin-inline: auto;
  isolation: isolate;
}

/* ==========================================================================
   Animated Elements
   ========================================================================== */

.heya-hero__shape,
.heya-hero__media,
.heya-hero__claim {
  position: absolute;
  opacity: 0;
  will-change: transform, opacity;
  animation-fill-mode: both;
}

/* ==========================================================================
   Shapes
   ========================================================================== */

.heya-hero__shape {
  background: var(--heya-rose);
  z-index: 1;
}

.heya-hero__shape--left {
  left: 0;
  top: 43%;
  width: 13%;
  aspect-ratio: 1 / 1.2;
  background: var(--heya-rose-light);
  animation:
    heya-intro-left .9s var(--heya-ease-intro) .05s both,
    heya-float-left 9s var(--heya-ease-soft) 1.35s infinite alternate;
}

.heya-hero__shape--back {
  left: 32%;
  top: 0;
  width: 34%;
  aspect-ratio: 1 / 1;
  animation:
    heya-intro-back 1s var(--heya-ease-intro) .15s both,
    heya-float-back 11s var(--heya-ease-soft) 1.45s infinite alternate;
}

.heya-hero__shape--right {
  right: 0;
  top: 12%;
  width: 22%;
  aspect-ratio: 1 / 0.8;
  background: var(--heya-rose-light);
  animation:
    heya-intro-right .95s var(--heya-ease-intro) .25s both,
    heya-float-right 10s var(--heya-ease-soft) 1.55s infinite alternate;
}

.heya-hero__shape--red {
  left: 55%;
  top: 37%;
  width: 25%;
  aspect-ratio: 1 / 1;
  background: var(--heya-red);
  z-index: 3;
  transform-origin: 50% 50%;
  animation:
    heya-intro-red 1.05s var(--heya-ease-intro) .45s both,
    heya-pulse-red 8.5s var(--heya-ease-soft) 1.75s infinite alternate;
}

/* ==========================================================================
   Media Wrappers
   ========================================================================== */

/**
 * Die Bildgrößen und Animationen liegen auf den Wrappern.
 * Das eigentliche img füllt nur den Wrapper aus.
 * Dadurch sind globale CMS-Regeln wie img { width: 100%; } unkritisch.
 */

.heya-hero__media {
  display: block;
  overflow: hidden;
  z-index: 4;
  box-shadow: none;
}

.heya-hero__img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center;
  border: 0;
}

/* Person image */

.heya-hero__media--person {
  left: 1%;
  top: 9%;
  width: 32%;
  aspect-ratio: 1 / 1.22;
  animation:
    heya-intro-person 1.05s var(--heya-ease-intro) .35s both,
    heya-float-person 8s var(--heya-ease-soft) 1.8s infinite alternate;
}

/* Wardrobe image */

.heya-hero__media--wardrobe {
  left: 56%;
  top: 5%;
  width: 22%;
  aspect-ratio: 1.15 / 1;
  z-index: 4;
  overflow: visible;
  box-shadow: none;
  animation:
    heya-intro-wardrobe 1.1s var(--heya-ease-intro) .65s both,
    heya-float-wardrobe 9.5s var(--heya-ease-soft) 2s infinite alternate;
}

.heya-hero__media--wardrobe .heya-hero__img {
  object-fit: contain;
}

/* Inside image */

.heya-hero__media--inside {
  left: 27%;
  top: 47%;
  width: 17%;
  aspect-ratio: .8 / 1;
  animation:
    heya-intro-inside .95s var(--heya-ease-intro) .8s both,
    heya-float-inside 7.5s var(--heya-ease-soft) 2.15s infinite alternate;
}

/* Detail image */

.heya-hero__media--detail {
  left: 70%;
  top: 56%;
  width: 21%;
  aspect-ratio: 1.35 / 1;
  animation:
    heya-intro-detail .95s var(--heya-ease-intro) .95s both,
    heya-float-detail 8.8s var(--heya-ease-soft) 2.3s infinite alternate;
}

/* ==========================================================================
   Claim
   ========================================================================== */

.heya-hero__claim {
  left: 35%;
  top: 6%;
  z-index: 5;
  animation:
    heya-intro-claim 1s var(--heya-ease-intro) .55s both,
    heya-float-claim 10.5s var(--heya-ease-soft) 1.95s infinite alternate;
}

.heya-hero__claim h1 {
  margin: 0;
  color: var(--heya-text);
  font-family: var(--font-heya);
  font-size: clamp(34px, 4.15vw, 82px);
  line-height: .96;
  letter-spacing: -0.045em;
  font-weight: var(--font-weight-regular);
}

/* ==========================================================================
   Intro Animations
   ========================================================================== */

@keyframes heya-intro-left {
  0% {
    opacity: 0;
    transform: translate3d(-90px, 18px, 0) scale(.96);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes heya-intro-back {
  0% {
    opacity: 0;
    transform: translate3d(0, 42px, 0) scale(.94);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes heya-intro-right {
  0% {
    opacity: 0;
    transform: translate3d(90px, -12px, 0) scale(.96);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes heya-intro-red {
  0% {
    opacity: 0;
    transform: translate3d(70px, 54px, 0) scale(.9);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes heya-intro-person {
  0% {
    opacity: 0;
    transform: translate3d(-80px, 65px, 0) rotate(-1.2deg) scale(.94);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }
}

@keyframes heya-intro-claim {
  0% {
    opacity: 0;
    transform: translate3d(-18px, 34px, 0);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes heya-intro-wardrobe {
  0% {
    opacity: 0;
    transform: translate3d(0, -50px, 0) rotate(.6deg) scale(.94);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }
}

@keyframes heya-intro-inside {
  0% {
    opacity: 0;
    transform: translate3d(-35px, 72px, 0) rotate(-.8deg) scale(.92);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }
}

@keyframes heya-intro-detail {
  0% {
    opacity: 0;
    transform: translate3d(58px, 58px, 0) rotate(.8deg) scale(.92);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }
}

/* ==========================================================================
   Idle / Waberanimationen
   ========================================================================== */

@keyframes heya-float-person {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }

  50% {
    opacity: 1;
    transform: translate3d(10px, -14px, 0) rotate(-.45deg) scale(1.012);
  }

  100% {
    opacity: 1;
    transform: translate3d(-6px, 8px, 0) rotate(.35deg) scale(.998);
  }
}

@keyframes heya-float-claim {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  50% {
    opacity: 1;
    transform: translate3d(0, -10px, 0);
  }

  100% {
    opacity: 1;
    transform: translate3d(4px, 5px, 0);
  }
}

@keyframes heya-float-wardrobe {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }

  50% {
    opacity: 1;
    transform: translate3d(-8px, 12px, 0) rotate(.3deg) scale(1.006);
  }

  100% {
    opacity: 1;
    transform: translate3d(7px, -8px, 0) rotate(-.25deg) scale(1);
  }
}

@keyframes heya-float-inside {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }

  50% {
    opacity: 1;
    transform: translate3d(7px, 12px, 0) rotate(.4deg) scale(1.015);
  }

  100% {
    opacity: 1;
    transform: translate3d(-5px, -7px, 0) rotate(-.35deg) scale(1);
  }
}

@keyframes heya-float-detail {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }

  50% {
    opacity: 1;
    transform: translate3d(-9px, -11px, 0) rotate(-.45deg) scale(1.01);
  }

  100% {
    opacity: 1;
    transform: translate3d(6px, 8px, 0) rotate(.3deg) scale(1);
  }
}

@keyframes heya-pulse-red {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }

  50% {
    opacity: 1;
    transform: translate3d(-5px, -10px, 0) scale(1.018);
  }

  100% {
    opacity: 1;
    transform: translate3d(6px, 7px, 0) scale(.998);
  }
}

@keyframes heya-float-back {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }

  50% {
    opacity: 1;
    transform: translate3d(8px, -8px, 0) scale(1.006);
  }

  100% {
    opacity: 1;
    transform: translate3d(-6px, 5px, 0) scale(1);
  }
}

@keyframes heya-float-left {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }

  50% {
    opacity: 1;
    transform: translate3d(8px, -6px, 0) scale(1.01);
  }

  100% {
    opacity: 1;
    transform: translate3d(-4px, 7px, 0) scale(.998);
  }
}

@keyframes heya-float-right {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }

  50% {
    opacity: 1;
    transform: translate3d(-10px, 7px, 0) scale(1.012);
  }

  100% {
    opacity: 1;
    transform: translate3d(5px, -6px, 0) scale(1);
  }
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 900px) {
  .heya-hero__stage {
    aspect-ratio: 1 / 1.35;
    min-height: 680px;
  }

  .heya-hero__shape--back {
    left: 8%;
    top: 17%;
    width: 76%;
    height: 32%;
  }

  .heya-hero__media--person {
    left: 4%;
    top: 7%;
    width: 42%;
  }

  .heya-hero__claim {
    left: 48%;
    top: 12%;
  }

  .heya-hero__media--wardrobe {
    left: 31%;
    top: 38%;
    width: 48%;
  }

  .heya-hero__shape--red {
    left: 18%;
    top: 56%;
    width: 46%;
    height: 24%;
  }

  .heya-hero__shape--right {
    right: 2%;
    top: 58%;
    width: 38%;
    height: 18%;
  }

  .heya-hero__media--inside {
    left: 8%;
    top: 45%;
    width: 22%;
  }

  .heya-hero__media--detail {
    left: 56%;
    top: 66%;
    width: 34%;
  }
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

  .heya-hero__shape,
  .heya-hero__media,
  .heya-hero__claim {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/* ENDE HERO ANIMATION */

.skp-custom-video video {
  width: 100%;
  max-width: 100%;
}

/* Image Grid Section */

.image-grid-section {
  width: 100%;
  padding: 0;
  background: #ffffff;
}

.image-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 24px;
}

.grid-card {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 0;
  background: #000;
  text-decoration: none;
  color: #fff;
  min-height: 260px;
}

.grid-card--large {
  grid-column: span 2;
  grid-row: span 2;
}

.grid-card--small {
  grid-column: span 1;
  grid-row: span 1;
}

.grid-card--wide {
  grid-column: span 2;
  grid-row: span 1;
}

.grid-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.grid-card span {
  position: absolute;
  left: 24px;
  bottom: 22px;
  z-index: 2;
  font-size: 14px;
  line-height: 1.2;
  font-weight: 500;
  color: #ffffff;
}


.image-grid-section .grid-caption-static {
  position: absolute;
  bottom: 0;
  right: 0;
  background: var(--color-blaugrau);
  padding: 30px;
  font-size: var(--font-size-xl);
  line-height: var(--line-height-tight);
  color: #FFF;
  width: 40%;
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
}

.image-grid-section .grid-card .grid-caption-overlay {
  position: absolute;
  top: 0;
  right: -50%;
  width: 50%;
  aspect-ratio: 1 / 1;
  background-color: var(--color-blaugrau);
  color:#FFF;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
  font-size: var(--font-size-regular);
  line-height: var(--line-height-snug);
  padding: 30px;
  transition: all 0.3s ease-out;
  z-index: 2;
}

.image-grid-section .grid-card:hover .grid-caption-overlay {
  right: 0;
}

/* Tablet */
@media (max-width: 900px) {
  .image-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid-card--large,
  .grid-card--wide {
    grid-column: span 2;
  }

  .grid-card--small {
    grid-column: span 1;
  }
}

/* Mobile */
@media (max-width: 600px) {
  .image-grid-section {
    padding: 24px;
  }

  .image-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .grid-card,
  .grid-card--large,
  .grid-card--small,
  .grid-card--wide {
    grid-column: span 1;
    grid-row: auto;
    aspect-ratio: 1 / 0.8;
    min-height: 220px;
  }

  .grid-card span {
    left: 18px;
    bottom: 18px;
  }
}


/* Grid Steps */

/* Steps Grid Section */

.steps-grid-section {
  width: 100%;
  padding: 0;
  background: #ffffff;
}

.steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 0;
}

.steps-card {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 0;
  text-decoration: none;
  color: #fff;
  min-height: 260px;
}

.steps-card--large {
  grid-column: span 2;
  grid-row: span 2;
}

.steps-card--small {
  grid-column: span 1;
  grid-row: span 1;
}

.steps-card--wide {
  grid-column: span 2;
  grid-row: span 1;
}

.steps-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.steps-card span {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  padding: 15%;
  z-index: 2;
}

.steps-card span h2, .steps-card span p {
  color: #FFF;
}


/* FAQ */

emv-cms-accordion:has(.heya-faq) h2 {
  text-align: center;
  margin-bottom: 25px;
}

emv-cms-accordion:has(.heya-faq) .accordion-item {
  border-bottom: none !important;
  padding: 40px;
}

emv-cms-accordion:has(.heya-faq) emv-accordion-item {
  border: 2px dotted var(--color-senf);
  display: flex;
  border-radius: 15px;
  margin-bottom: 25px;
  transition: all 0.3s ease-out;
}

emv-cms-accordion:has(.heya-faq) emv-accordion-item:hover {
  border: 2px dotted var(--color-petrol);
}

emv-cms-accordion:has(.heya-faq) emv-accordion-item:has(.is-open) {
  border: 2px dotted var(--color-petrol);
}

emv-cms-accordion:has(.heya-faq) .accordion-item .accordion-header {
  padding: 0 !important;
}

/* Tesaer Store Finder */

.widthContainer:has(.tesaer-store-finder) {
  max-width: 100% !important;
}

.widthContainer:has(.tesaer-store-finder) .col-12 {
  padding: 0;
}

.widthContainer .col-md-6:has(.tesaer-store-finder) {
  background: #F3F3F3;
  padding: 10%;
}

.widthContainer:has(.tesaer-store-finder) .col-md-6:has(.skp-img-overlay) {
  background: url('https://d3aj62ta6u7cuw.cloudfront.net/filters:format(webp):rotate():strip_exif():quality(75)/mypos/awsmedias/h0a/h95/9546147954718/tesaer-heya-store-finder.jpg?signature=9408ae7ba5ec1f9b04a857e5a50482f60725d1c8dd7ce6c9dcdf6af9bf03810d');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.skp-img-overlay {
  display: none;
}

.widthContainer:has(.teaser-store-finder) {
  margin-bottom: 0;
  padding: 0 !important;
}

/* ==========================================================================
   HEYA Steps Module
   ========================================================================== */

/**
 * Component:      HEYA 3 Steps
 * Description:    Three-step teaser module with circular images, numbers,
 *                 dotted connector lines and CTA.
 * Environment:    SAP Commerce / myPOS / SmartEdit
 */


/* ==========================================================================
   Base
   ========================================================================== */

.heya-steps {
  --heya-steps-max-width: 1800px;
  --heya-steps-bg: #74889c;
  --heya-steps-text: #ffffff;
  --heya-steps-text-soft: rgba(255, 255, 255, 0.78);
  --heya-steps-accent: #005259;
  --heya-steps-line: rgba(255, 255, 255, 0.86);
  width: 100%;
  background: var(--color-senf);
  color: var(--heya-steps-text);
  overflow: hidden;
}

.heya-steps__inner {
  width: min(100%, var(--heya-steps-max-width));
  margin-inline: auto;
  padding: 4%;
}


/* ==========================================================================
   Header
   ========================================================================== */

.heya-steps__header {
  margin-bottom: clamp(48px, 5vw, 86px);
}

.heya-steps__header h2 {
  margin: 0;
  color: var(--heya-steps-text);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--font-size-xl);
  line-height: var(--line-height-tight);
  text-align: center;
}

.heya-steps__header strong {
  font-weight: 700;
}


/* ==========================================================================
   Grid
   ========================================================================== */

.heya-steps__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(32px, 5vw, 96px);
  align-items: start;
}

.heya-steps__item {
  position: relative;
  text-align: center;
  min-width: 0;
}


/* ==========================================================================
   Connector Lines
   ========================================================================== */

.heya-steps__item:not(:last-child)::after {
  content: url('https://de-emv-mypos-cms-prod-public.s3.amazonaws.com/mypos/awsmedias/h2b/hbe/9547667996702/steps-arrow.svg');
  position: absolute;
  z-index: 1;
  width: 150px;
  left: calc(50% + clamp(120px, 10vw, 200px));
  top: clamp(95px, 8vw, 150px);
}


/* ==========================================================================
   Image
   ========================================================================== */

.heya-steps__image-wrap {
  position: relative;
  width: min(72%, 320px);
  aspect-ratio: 1 / 1;
  margin-inline: auto;
  border-radius: 50%;
  overflow: visible;
}

.heya-steps__image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  border-radius: 50%;
}

.heya-steps__number {
  position: absolute;
  z-index: 3;
  left: 5%;
  top: 5%;
  display: grid;
  place-items: center;
  width: clamp(42px, 3.5vw, 58px);
  height: clamp(42px, 3.5vw, 58px);
  border-radius: 50%;
  background: var(--heya-steps-accent);
  color: #ffffff;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(24px, 2vw, 34px);
  line-height: 1;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
}


/* ==========================================================================
   Content
   ========================================================================== */

.heya-steps__content {
  max-width: 460px;
  margin: clamp(28px, 2.4vw, 42px) auto 0;
}

.heya-steps__content h3 {
  margin: 0 0 14px;
  color: #FFF;
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-regular);
}

.heya-steps__content p {
  margin: 0;
  color: #FFF;
  font-size: var(--font-size-regular);
}


/* ==========================================================================
   CTA
   ========================================================================== */

.heya-steps__cta {
  display: flex;
  justify-content: center;
  margin-top: clamp(42px, 5vw, 76px);
}

.heya-steps__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 34px;
  border-radius: 10px;
  background: var(--heya-steps-accent);
  color: #ffffff;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(16px, 1vw, 20px);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition:
    transform 220ms ease,
    background-color 220ms ease,
    box-shadow 220ms ease;
}

.heya-steps__button:hover,
.heya-steps__button:focus-visible {
  transform: translateY(-2px);
  background: #d4ad24;
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.12);
}

.heya-steps__button:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.85);
  outline-offset: 4px;
}


/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1199px) {
  .heya-steps__grid {
    gap: clamp(28px, 4vw, 64px);
  }

  .heya-steps__item:not(:last-child)::after {
    left: calc(50% + 105px);
    top: clamp(84px, 9vw, 128px);
    width: clamp(80px, 8vw, 130px);
  }

  .heya-steps__item:not(:last-child)::before {
    left: calc(50% + 185px);
    top: clamp(76px, 9vw, 120px);
  }
}


@media (max-width: 900px) {
  .heya-steps__inner {
    padding-block: clamp(48px, 9vw, 80px);
  }

  .heya-steps__header {
    margin-bottom: 44px;
  }

  .heya-steps__grid {
    grid-template-columns: 1fr;
    gap: 56px;
    max-width: 560px;
    margin-inline: auto;
  }

  .heya-steps__item:not(:last-child)::after,
  .heya-steps__item:not(:last-child)::before {
    display: none;
  }

  .heya-steps__image-wrap {
    width: min(68%, 300px);
  }

  .heya-steps__content {
    margin-top: 24px;
  }
}


@media (max-width: 560px) {
  .heya-steps__inner {
    padding-inline: 20px;
  }

  .heya-steps__header h2 {
    font-size: clamp(30px, 9vw, 42px);
  }

  .heya-steps__image-wrap {
    width: min(78%, 260px);
  }

  .heya-steps__number {
    left: 6%;
    top: 6%;
  }

  .heya-steps__button {
    width: 100%;
    max-width: 280px;
  }
}

/* Teaser Händlersuche */

.widthContainer:has(.teaser-store-finder) picture img {
  width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    object-fit: cover;
    object-fit: left center;
}

.widthContainer:has(.teaser-store-finder) emv-aws-media {
  height: 100%;
}

/* Footer */

.FooterSlotFull:has(.heya-custom-footer) {
  margin-bottom: 0;
  padding: 0 !important;
  background: var(--color-petrol);
  padding: 25px 24px !important;
}

emv-footer .heya-custom-footer {
  max-width: 1800px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
}

.heya-custom-footer .footer-nav-wrapper {
  display: flex;
}

emv-footer .heya-custom-footer .footer-logo-wrapper img {
  width: 150px;
  max-width: 150px;
  padding-top: 10px;
}

.heya-custom-footer ul.heya-footer-links {
  display: flex;
  gap: 15px;
}

.heya-custom-footer ul.heya-footer-links a {
  color: #FFF;
  font-size: var(--font-size-sm);
  text-transform: uppercase;
  transition: all 0.3s ease-out;
}

.heya-custom-footer ul.heya-footer-links a:hover {
  color: var(--color-senf);
}

/*
.heya-custom-footer ul.heya-footer-links:last-of-type:before {
  content: '';
  width: 1px;
  height: 20px;
  background: #FFF;
  margin: 0 5px 0 20px;
}
  */

/*
section:has(.FooterNavigation), .footer_bottom {
  display: none;
}
  */

.footer_top.footer_style > .page_layout_centered_slim {
  display: none;
}

emv-footer .footer_top .row, emv-footer .footer_top cx-page-slot {
    height: auto;
}

app-scroll-top .arrow.up {
  border: 4px solid #FFF !important;
  background: var(--color-petrol);
  width: 60px !important;
  height: 60px !important;
  transition: all 0.3s ease-out;
}

app-scroll-top .arrow.up i.fas.fa-angle-up {
  font-size: 30px;
  color: #FFF;
  transform: translateY(0);
  transition: all 0.3s ease-out;
}

app-scroll-top .arrow.up:hover i.fas.fa-angle-up {
  transform: translateY(-6px);
}

app-scroll-top .arrow.up:hover {
  background: var(--color-senf);
}

/* Additional Headers */

.widthContainer:has(.header-two) {
  margin-bottom: 8px;
}


/* ---------------------------------------------------- */

/* Responsive */

/* ---------------------------------------------------- */

emv-navigation-ui:has(.mobile-nav-header) a:has(.nav-highlight) {
    color: #FFF !important;
}

emv-navigation-ui:has(.mobile-nav-header) a:has(.nav-highlight) .itemWithIcon {
    column-gap: 0 !important;
}

emv-navigation-ui:has(.mobile-nav-header) a:has(.nav-highlight) .itemWithIcon i {
    display: none;
}

@media only screen and (max-width: 1700px) {
.steps-grid-section h2 {
  font-size: var(--font-size-regular);
  line-height: var(--line-height-normal);
  font-weight: var(--font-weight-bold);
}
}

@media only screen and (max-width: 1400px) {
  .heya-custom-footer .footer-nav-wrapper {
    flex-wrap: wrap;
    justify-content: center;
}
.heya-custom-footer ul.heya-footer-links:last-of-type:before {
    display: none;
}
.steps-grid-section h2 {
  font-size: var(--font-size-regular);
  line-height: var(--line-height-normal);
  font-weight: var(--font-weight-bold);
}
}

/* ---------------------------------- */

/* 1400 */

/* ---------------------------------- */

@media only screen and (max-width: 1400px) {

  .image-grid-section .grid-caption-static {
    font-size: var(--font-size-lg);
}

.steps-grid-section .steps-grid {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}

.steps-grid-section .steps-grid .steps-card {
  width: 50%;
}

.steps-grid-section .steps-grid .steps-card:nth-of-type(1) {
  order: 1;
}
.steps-grid-section .steps-grid .steps-card:nth-of-type(2) {
  order: 2
}
.steps-grid-section .steps-grid .steps-card:nth-of-type(3) {
  order: 4;
}
.steps-grid-section .steps-grid .steps-card:nth-of-type(4) {
  order: 3;
}
.steps-grid-section .steps-grid .steps-card:nth-of-type(5) {
  order: 6;
}
.steps-grid-section .steps-grid .steps-card:nth-of-type(6) {
  order: 5;
}
.steps-grid-section .steps-grid .steps-card:nth-of-type(7) {
  order: 7;
}
.steps-grid-section .steps-grid .steps-card:nth-of-type(8) {
  order: 8;
}

}

/* ---------------------------------- */

/* 1024 */

/* ---------------------------------- */

@media only screen and (max-width: 1024px) {
  .header_middle {
    width: 100%;
  }
  .heya-custom-footer ul.heya-footer-links {
    flex-direction: column;
}
.heya-custom-footer .footer-nav-wrapper {
        gap: 40px;
    }
    emv-footer .heya-custom-footer {
    align-items: self-start;
}
.heya-custom-footer ul.heya-footer-links {
    display: flex;
    gap: 0;
    margin-bottom: 20px;
}
header .scrollableHeader .SiteLogo cx-banner cx-media {
    width: 230px;
    max-width: 230px;
}

}

/* ---------------------------------- */

/* 768 */

/* ---------------------------------- */

  @media only screen and (max-width: 768px) {
  :root {
  --font-size-xs: 0.6rem;
  --font-size-sm: 0.8rem;
  --font-size-base: 1rem;
  --font-size-regular: 1.35rem;
  --font-size-lg: 2rem;
  --font-size-xl: 2.2rem;
  --font-size-2xl: 6.25rem;
  --font-size-3xl: 8.875rem;
  --font-size-main-nav: 1.5rem;
  }

  .widthContainer:has(.tesaer-store-finder) .emv-image-text-banner {
    margin: 0;
  }

   .widthContainer:has(.tesaer-store-finder) .row {
    row-gap:0 !important;
  }
  emv-footer .heya-custom-footer {
    flex-direction: column;
}

.image-grid-section .grid-caption-static {
    padding: 20px;
    font-size: var(--font-size-lg);
    width: 45%;
    right: inherit;
    left: 0;
}

.steps-card span {
    padding: 20px;
}

  }


/* ---------------------------------- */

/* 500 */

/* ---------------------------------- */


@media only screen and (max-width: 500px) {
  .heya-hero__stage {
    aspect-ratio: 1 / 1.2;
    min-height: 480px;
  }

  .heya-hero__shape--back {
            left: 13%;
        top: 10%;
        width: 76%;
        height: 39%;
  }

  .heya-hero__media--person {
            left: 4%;
        top: 2%;
        width: 46%;
  }

  .heya-hero__claim {
    left: 51%;
    top: 10%;
  }

  .heya-hero__media--wardrobe {
    left: 31%;
    top: 38%;
    width: 48%;
  }

  .heya-hero__shape--red {
    left: 18%;
    top: 56%;
    width: 46%;
    height: 24%;
  }

  .heya-hero__shape--right {
    right: 2%;
    top: 58%;
    width: 38%;
    height: 18%;
  }

  .heya-hero__media--inside {
            left: 6%;
        top: 62%;
        width: 25%;
  }

  .heya-hero__media--detail {
            left: 50%;
        top: 74%;
        width: 41%;
  }

      .heya-custom-footer .footer-nav-wrapper {
        gap: 0;
        flex-direction: column;
    }
    .steps-card span {
    padding: 24px;
}

.steps-card span h2 {
    line-height: var(--line-height-snug);
    margin-bottom: 10px;
}

.steps-card span p {
    font-size: var(--font-size-base);
    line-height: var(--line-height-snug);
    margin-bottom: 0;
}

}

/* ---------------------------------- */

/* 400 */

/* ---------------------------------- */


@media only screen and (max-width: 400px) {
 header .scrollableHeader .SiteLogo cx-banner cx-media {
        width: 180px;
        max-width: 180px;
    }
  }


