/* Final shared design rules for every page, after legacy and mobile styles. */
html body#site-page #app .app-compact{
  position:relative;isolation:isolate;overflow:hidden;
  display:grid!important;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)!important;
  gap:clamp(24px,5vw,64px)!important;padding:clamp(24px,4vw,48px)!important;
  min-height:0!important;align-items:center;transform:none!important;
}
html body#site-page #app .app-watermark{
  position:absolute;right:-8px;bottom:-.2em;z-index:-1;
  color:#0050a4;opacity:.055;font-size:clamp(8rem,24vw,24rem);font-weight:900;
  line-height:1;letter-spacing:-.075em;pointer-events:none;user-select:none;
}
html body#site-page #app .actions .btn:has(.route-arrow){gap:12px!important;white-space:nowrap!important}
html body#site-page #app .app-mini-phone{
  float:right;position:relative;width:62px;height:108px;margin:0 4px 14px 20px;
  padding:5px;border:2px solid #16385c;border-radius:15px;background:#183a60;
  box-shadow:7px 10px 20px rgba(0,50,100,.15),inset 0 0 0 1px rgba(255,255,255,.3);
  transform:rotate(8deg);pointer-events:none;
}
html body#site-page #app .app-mini-phone::after{
  content:"";position:absolute;top:7px;left:50%;width:21px;height:4px;
  border-radius:4px;background:#183a60;transform:translateX(-50%);
}
html body#site-page #app .app-mini-screen{
  height:100%;display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:12px 6px 7px;border-radius:9px;background:linear-gradient(145deg,#fff,#e4eef9);
}
html body#site-page #app .app-mini-logo{
  display:grid;place-items:center;width:25px;height:26px;background:#ffdd00;
  border-radius:6px;color:#0050a4;font:900 23px/1 Arial;
}
html body#site-page #app .app-mini-coupon{
  display:block;width:100%;border-radius:4px;background:#0050a4;
  color:#fff;text-align:center;font:700 12px/18px Arial;
}
html body#site-page #app .app-mini-line{display:block;width:100%;height:3px;flex-shrink:0;border-radius:3px;background:#c5d5e7}
html body#site-page #app .app-mini-line.short{width:65%;align-self:flex-start}
html body#site-page #app .app-copy .actions{clear:both}
html body#site-page #app .app-label{display:block;margin-bottom:14px;color:#0050a4;font-size:.8rem;font-weight:800}
html body#site-page #app .app-copy h2{font-size:clamp(1.8rem,3.4vw,3rem)!important;line-height:1.12!important;margin:0 0 16px}
html body#site-page #app .app-copy p{margin:0 0 22px!important}
html body#site-page #app .actions{display:flex!important;flex-wrap:wrap;gap:10px;margin:0}
html body#site-page #app .actions .btn{flex:0 1 auto;width:auto}
html body#site-page #app .app-benefits{display:grid;gap:12px;padding:0;margin:0;list-style:none;min-width:0}
html body#site-page #app .app-benefits li{display:flex;align-items:center;gap:14px;padding:16px;background:rgba(255,255,255,.8);border:1px solid rgba(0,80,164,.1);border-radius:18px}
html body#site-page #app .app-benefits li>div{min-width:0}
html body#site-page #app .app-benefit-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:12px;background:#fff3ad;color:#0050a4;font-size:1.2rem;font-weight:800}
html body#site-page #app .app-benefits h3{margin:0 0 4px;font-size:1rem;line-height:1.3;hyphens:none}
html body#site-page #app .app-benefits p{margin:0;font-size:.9rem;line-height:1.45;color:#596678}
@media(max-width:700px){
  html body#site-page #app .app-compact{grid-template-columns:minmax(0,1fr)!important;gap:24px!important}
  html body#site-page #app .app-benefits{gap:8px}
  html body#site-page #app .app-benefits li{padding:12px}
}
html body#site-page .market-map{
  margin-top:28px;overflow:hidden;border:var(--ui-border);border-radius:var(--ui-feature-radius);
  background:#fff;box-shadow:var(--ui-shadow);
}
html body#site-page .market-map iframe{display:block;width:100%;height:clamp(280px,40vw,440px);border:0}
html body#site-page .market-map-caption{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;padding:var(--ui-padding)}
html body#site-page .market-map-caption p{margin:0;font-size:var(--ui-text);line-height:1.6}
html body#site-page .market-map .btn:has(.route-arrow){gap:12px!important;white-space:nowrap!important}
html body#site-page .route-arrow{
  position:relative;display:inline-block;flex:0 0 28px;width:28px;height:28px;
  border-radius:50%;background:rgba(255,255,255,.14);
}
html body#site-page .route-arrow::before{
  content:"";position:absolute;width:11px;height:2px;left:8px;top:13px;
  background:currentColor;border-radius:2px;transform:rotate(-45deg);
}
html body#site-page .route-arrow::after{
  content:"";position:absolute;width:7px;height:7px;right:8px;top:8px;
  border-top:2px solid currentColor;border-right:2px solid currentColor;
}
html body#site-page .market-map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ui-gap)}
html body#site-page .market-map-grid .market-map{min-width:0;margin-top:0}
html body#site-page .market-map-overview{margin:0 0 24px}
html body#site-page .market-map-overview iframe{height:clamp(360px,45vw,520px)}
html body#site-page .market-map-grid iframe{height:300px}
html body#site-page .market-map-grid .market-map-caption{align-items:flex-start;flex-direction:column}
html body#site-page .market-map-grid h3{margin:0 0 12px;font-size:var(--ui-card-title);line-height:1.2}
html body#site-page .market-map-grid .actions{display:flex;flex-wrap:wrap;gap:12px;margin:0}
@media(max-width:1100px){html body#site-page .market-map-grid{grid-template-columns:minmax(0,1fr)}}
/* Fade only the header artwork into the actual page background. */
html body#site-page .hero:has(> .cinema){
  --header-fade:var(--photo-header-fade);
  border-radius:0!important;
  border-bottom:0!important;
  box-shadow:none!important;
}
html body#site-page .hero > .cinema{
  background:#101724;
  --header-mask:linear-gradient(to bottom,#000 0%,#000 calc(100% - var(--header-fade)),rgba(0,0,0,.97) calc(100% - var(--header-fade) * .875),rgba(0,0,0,.88) calc(100% - var(--header-fade) * .75),rgba(0,0,0,.69) calc(100% - var(--header-fade) * .625),rgba(0,0,0,.45) calc(100% - var(--header-fade) * .5),rgba(0,0,0,.23) calc(100% - var(--header-fade) * .375),rgba(0,0,0,.09) calc(100% - var(--header-fade) * .25),rgba(0,0,0,.02) calc(100% - var(--header-fade) * .125),transparent 100%);
  -webkit-mask-image:var(--header-mask);
  mask-image:var(--header-mask);
}
html body#site-page .hero:has(> .cinema) + section{border-top:0!important}

/* All photo headers share the same uncropped mobile composition. */
@media (max-width:600px){
  html body#site-page .hero:has(> .cinema){
    --mobile-header-image:url("images/hero-edeka.png");
    --mobile-header-ratio:.671;
  }
  html body#site-page.nuernberg-page .hero{
    --mobile-header-image:url("nuernberg/images/header_nuernberg.png");
  }
  html body#site-page.altdorf-page .hero{
    --mobile-header-image:url("altdorf/images/header_altdorf.png");
    --mobile-header-ratio:.75;
  }
  html body#site-page main > .hero:has(> .cinema){
    min-height:0!important;
    padding: max(220px,calc(100vw * var(--mobile-header-ratio) - 12px)) 20px 100px!important;
    align-items:start!important;
  }
  html body#site-page .hero > .cinema::before{
    background:
      linear-gradient(to bottom,transparent 45%,rgba(16,23,36,.3) 72%,#101724 100%) top center / 100% auto no-repeat,
      var(--mobile-header-image) top center / 100% auto no-repeat,
      #101724;
    background-size:100% calc(100vw * var(--mobile-header-ratio)),100% auto,auto;
    transform:none!important;
  }
  html body#site-page .hero:has(> .cinema) .hero-copy::after{content:none}
  html body#site-page .hero:has(> .cinema)::after{content:none}
  html body#site-page .hero:has(> .cinema) .hero-copy p{color:rgba(255,255,255,.9)!important}
}

/* Tablets use the same dark header palette while retaining their layout. */
@media (min-width:601px) and (max-width:980px){
  html body#site-page .hero:has(> .cinema){
    --tablet-header-image:url("images/hero-edeka.png");
  }
  html body#site-page.nuernberg-page .hero{--tablet-header-image:url("nuernberg/images/header_nuernberg.png")}
  html body#site-page.altdorf-page .hero{--tablet-header-image:url("altdorf/images/header_altdorf.png")}
  html body#site-page .hero > .cinema::before{
    background:
      linear-gradient(to bottom,rgba(16,23,36,.12),rgba(16,23,36,.25) 35%,rgba(16,23,36,.8) 72%,#101724 100%),
      var(--tablet-header-image) center 55% / cover no-repeat;
    transform:none!important;
    animation:none!important;
  }
  html body#site-page .hero:has(> .cinema) .hero-copy::after,
  html body#site-page .hero:has(> .cinema)::after{content:none}
  html body#site-page .hero:has(> .cinema) .hero-copy p{color:rgba(255,255,255,.9)!important}
}

/* Desktop: lift the copy into the lower part of the photograph. */
@media (min-width:981px){
  html body#site-page .hero:has(> .cinema){
    --desktop-header-image:url("images/hero-edeka.png");
    --desktop-photo-height:clamp(380px,42vw,680px);
    min-height:0!important;
    padding:calc(var(--desktop-photo-height) - clamp(120px,12vw,190px) - 60px) 7vw calc(var(--header-fade) + 24px)!important;
    align-items:start!important;
  }
  html body#site-page.nuernberg-page .hero{--desktop-header-image:url("nuernberg/images/header_nuernberg.png")}
  html body#site-page.altdorf-page .hero{--desktop-header-image:url("altdorf/images/header_altdorf.png")}
  html body#site-page .hero > .cinema::before{
    inset:0 0 auto;
    height:var(--desktop-photo-height);
    background:
      linear-gradient(to bottom,rgba(16,23,36,.12),transparent 35%,rgba(16,23,36,.3) 72%,#101724 100%),
      var(--desktop-header-image) center 55% / cover no-repeat;
    transform:none!important;
    animation:none!important;
  }
  html body#site-page .hero:has(> .cinema) .hero-copy::after,
  html body#site-page .hero:has(> .cinema)::after{content:none}
  html body#site-page .hero:has(> .cinema) .hero-copy p{color:rgba(255,255,255,.9)!important}
}

/* Photo headers fade behind the first cards on every screen size. */
html body#site-page{
  --photo-header-fade:clamp(220px,26vw,340px);
}
html body#site-page main > .hero:has(> .cinema){
  padding-bottom:calc(var(--header-fade) + 32px)!important;
}
html body#site-page .hero > .cinema{
  /* Keep the fade aligned with the section edge while scrolling. */
  transform:none!important;
  --header-mask:linear-gradient(to bottom,
    #000 0%,
    #000 calc(100% - var(--header-fade)),
    rgba(0,0,0,.96) calc(100% - var(--header-fade) * .85),
    rgba(0,0,0,.82) calc(100% - var(--header-fade) * .7),
    rgba(0,0,0,.58) calc(100% - var(--header-fade) * .55),
    rgba(0,0,0,.32) calc(100% - var(--header-fade) * .4),
    rgba(0,0,0,.12) calc(100% - var(--header-fade) * .25),
    rgba(0,0,0,.025) calc(100% - var(--header-fade) * .1),
    transparent 100%);
}
html body#site-page .hero:has(> .cinema) + :is(.prospekt-section,.mini-strip){
  position:relative;
  margin-top:calc(var(--photo-header-fade) * -.7)!important;
  padding-top:clamp(16px,2vw,32px)!important;
}

:root{
  --ui-radius:28px;
  --ui-feature-radius:36px;
  --ui-padding:28px;
  --ui-gap:24px;
  --ui-image-height:220px;
  --ui-card-title:1.5rem;
  --ui-text:1rem;
  --ui-border:1px solid rgba(0,80,164,.12);
  --ui-shadow:0 12px 36px rgba(0,55,115,.08);
  --ui-shadow-hover:0 18px 44px rgba(0,55,115,.13);
  --site-card-radius:var(--ui-radius);
  --site-feature-radius:var(--ui-feature-radius);
  --site-card-border:var(--ui-border);
  --site-card-shadow:var(--ui-shadow);
  --site-card-shadow-hover:var(--ui-shadow-hover);
}

html body#site-page{font-family:Arial,Helvetica,sans-serif}
#site-page *,#site-page *::before,#site-page *::after{box-sizing:border-box}
#site-page :is(h1,h2,h3,h4){font-family:inherit;font-weight:900;overflow-wrap:break-word}
#site-page :is(a,button,[role="button"]):focus-visible{outline:3px solid #0050a4;outline-offset:4px}

/* Content cards share a surface; photography keeps its overlay treatment. */
html body#site-page :is(.mini-card,.market-card,.market-card.featured,.service-card,.service-card.featured-service,.job-card,.contact-panel,.info-card,.service-item,.news-card,.news-slide-card,.news-slide-card.featured,.contact-card,.quick-panel,.job,.benefit,.chapter,.legal-intro,.toc,.review-card){
  min-width:0;
  border:var(--ui-border)!important;
  border-radius:var(--ui-radius)!important;
  box-shadow:var(--ui-shadow)!important;
  background:#fff!important;
  color:#0f1420!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transition:border-color .2s ease,box-shadow .2s ease!important;
}
html body#site-page :is(.dept-gallery-card,.dept-gallery-card.large,.dept-gallery-card.wide){
  border:var(--ui-border)!important;border-radius:var(--ui-radius)!important;box-shadow:var(--ui-shadow)!important;overflow:hidden!important;
}
html body#site-page :is(.career-section,.app-section,.team-banner,.board-main,.sortiment-feature,.prospekt-showcase,.prospekt-market-entry,.apply,.standalone-page .hero){
  border:var(--ui-border)!important;border-radius:var(--ui-feature-radius)!important;box-shadow:var(--ui-shadow)!important;
}
html body#site-page :is(.job-card,.contact-panel,.info-card,.service-item,.news-card,.quick-panel,.benefit,.chapter,.legal-intro,.toc,.review-card){padding:var(--ui-padding)!important}
html body#site-page :is(.market-content,.service-content,.news-slide-content){padding:var(--ui-padding)!important;min-width:0}

html body#site-page :is(.market-card,.service-card,.news-slide-card){display:flex!important;flex-direction:column!important;overflow:hidden!important;height:auto!important;min-height:0!important}
html body#site-page :is(.market-content,.service-content,.news-slide-content){display:flex!important;flex-direction:column!important;align-items:flex-start!important;flex:1}
html body#site-page :is(.market-content,.service-content,.news-slide-content) p{margin:12px 0 20px!important}
html body#site-page :is(.market-link,.news-slide-more){margin-top:auto!important}
html body#site-page #highlights .news-slide-more{
  display:inline-flex!important;align-items:center;justify-content:space-between;
  gap:18px;min-height:46px;padding:11px 16px!important;border-radius:14px!important;
  border:1px solid rgba(0,80,164,.14)!important;background:#edf4fc!important;
  color:#0050a4!important;text-decoration:none!important;box-shadow:none!important;
  font-weight:800;line-height:1.35;transition:background .18s ease,border-color .18s ease;
}
html body#site-page #highlights .news-slide-more:hover{
  background:#dfeefa!important;border-color:rgba(0,80,164,.3)!important;
}
html body#site-page #highlights .news-slide-more::before,
html body#site-page #highlights .news-slide-more::after{content:none!important}
html body#site-page #highlights .news-button-arrow{
  position:relative;display:block;flex:0 0 24px;width:24px;height:24px;
  border-radius:50%;background:#0050a4;color:#fff;
}
html body#site-page #highlights .news-button-arrow::before{
  content:"";position:absolute;inset:6px;background:currentColor;
  clip-path:polygon(0 42%,65% 42%,40% 17%,52% 5%,98% 50%,52% 95%,40% 83%,65% 58%,0 58%);
}
html body#site-page #highlights .news-button-arrow::after{
  content:none;
}

html body#site-page :is(.market-image,.market-image.market-image-fuerth,.service-image,.news-slide-image){height:var(--ui-image-height)!important;min-height:var(--ui-image-height)!important;flex:0 0 var(--ui-image-height)!important;overflow:hidden}
html body#site-page :is(#markets,#leistungen,#highlights) :is(.market-image,.service-image,.news-slide-image){height:var(--ui-image-height)!important;min-height:var(--ui-image-height)!important}
html body#site-page :is(.market-image,.service-image,.news-slide-image) img{display:block;width:100%;height:100%;object-fit:cover;transform:none!important}
html body#site-page :is(.market-card,.service-card,.job-card,.contact-panel,.info-card,.service-item,.news-card,.news-slide-card,.contact-card,.benefit,.review-card) h3{
  font-size:var(--ui-card-title)!important;line-height:1.2!important;letter-spacing:-.025em!important;margin:0 0 12px!important;
}
html body#site-page :is(.market-card,.service-card,.job-card,.contact-panel,.info-card,.service-item,.news-card,.news-slide-card,.contact-card,.mini-card,.benefit,.review-card) p{
  font-size:var(--ui-text)!important;line-height:1.6!important;font-weight:500!important;color:#596678!important;
}
html body#site-page :is(.service-icon,.service-item > span:first-child,.benefit > span:first-child,.contact-card > span:first-child){
  display:grid!important;place-items:center!important;width:48px!important;height:48px!important;flex:0 0 48px;
  margin:0 0 20px!important;border-radius:14px!important;background:rgba(0,80,164,.07)!important;color:#0050a4!important;font-size:1.5rem!important;
}
html body#site-page :is(.market-grid,.service-grid,.career-jobs,.service-row,.review-cards,.contact-grid,.jobs,.benefits){gap:var(--ui-gap)!important;align-items:stretch!important}
html body#site-page :is(.section-title,.section-head h2){font-size:clamp(2.2rem,4.3vw,4.25rem)!important;line-height:1.08!important;letter-spacing:-.045em!important}
html body#site-page .section-head{margin-bottom:32px!important;gap:20px!important}
html body#site-page .section-head p{font-size:var(--ui-text)!important;line-height:1.6!important;color:#596678!important}

/* A single size scale for primary actions and smaller contact actions. */
html body#site-page :is(.btn,.market-link,.contact-action,.filter){
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  max-width:100%;min-height:48px!important;padding:12px 20px!important;border-radius:999px!important;
  font-family:inherit!important;font-size:.95rem!important;line-height:1.35!important;font-weight:800!important;
  text-align:center;white-space:normal!important;text-decoration:none!important;
}
html body#site-page :is(.btn.primary,.btn.blue,.market-link){background:#0050a4!important;color:#fff!important;border:1px solid #0050a4!important;box-shadow:0 6px 16px rgba(0,80,164,.14)!important}
html body#site-page :is(.btn.yellow,.btn.secondary){background:#ffdd00!important;color:#0f1420!important;border:1px solid #ffdd00!important;box-shadow:none!important}
html body#site-page .contact-action{min-height:44px!important;padding:10px 16px!important;font-size:.875rem!important;background:#eef5fc!important;border:1px solid rgba(0,80,164,.12)!important;color:#0050a4!important;box-shadow:none!important}
html body#site-page .card-actions{gap:10px!important}
html body#site-page .site-footer{border-radius:var(--ui-feature-radius)!important}
html body#site-page :is(.reader-header,.reader-toolbar,.reader-stage){border-radius:var(--ui-radius)!important}
html body#site-page .reader-header{border:var(--ui-border);box-shadow:var(--ui-shadow)}
html body#site-page .reader-toolbar button{min-width:44px;min-height:44px;border-radius:14px;font-size:.95rem}

@media (min-width:981px){
  html body#site-page :is(.market-grid,.service-grid){display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-rows:auto!important}
  html body#site-page :is(.service-card,.service-card.featured-service){grid-column:auto!important;grid-row:auto!important}
  html body#site-page :is(.contact-card,.mini-card){padding:var(--ui-padding)!important;min-height:0!important}
  html body#site-page .contact-card{display:flex!important;flex-direction:column!important;align-items:flex-start!important}
  html body#site-page .contact-card .card-actions{margin-top:auto!important;padding-top:24px!important}
  html body#site-page :is(.career-section,.app-section,.team-banner,.prospekt-showcase,.apply){padding:40px!important}
  html body#site-page .site-footer .footer-main{padding:40px!important}
  html body#site-page .site-footer :is(.footer-markets,.footer-bottom){padding:20px 40px!important}
}

@media (max-width:980px){
  :root{--ui-radius:24px;--ui-feature-radius:28px;--ui-padding:20px;--ui-gap:16px;--ui-image-height:195px;--ui-card-title:1.3rem;--ui-text:.95rem}
  html body#site-page :is(.section-title,.section-head h2){font-size:clamp(2rem,8.5vw,3.5rem)!important}
  html body#site-page .section-head{margin-bottom:24px!important}
  html body#site-page :is(.mini-card,.contact-card){padding:var(--ui-padding)!important}
  html body#site-page .contact-card > span:first-child{width:40px!important;height:40px!important;margin:0!important;font-size:1.2rem!important}
  html body#site-page .contact-card h3{font-size:1rem!important;margin:0!important;line-height:1.4!important}
  html body#site-page :is(.btn,.market-link){min-height:48px!important;padding:12px 16px!important;font-size:.9rem!important}
  html body#site-page :is(.market-grid,.service-grid,.career-jobs,.service-row,.review-cards,.news-slider-track){
    display:grid!important;grid-auto-flow:column!important;grid-template-columns:none!important;
    grid-auto-columns:min(360px,calc(100% - 48px))!important;gap:var(--ui-gap)!important;
    width:100%!important;max-width:100%!important;min-width:0!important;margin-inline:0!important;
    overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x proximity!important;
    padding:6px 0 20px!important;scroll-padding-inline:0!important;
  }
  html body#site-page :is(.market-grid,.service-grid,.career-jobs,.service-row,.review-cards,.news-slider-track) > article{width:100%!important;min-width:0!important;scroll-snap-align:start!important}
  html body#site-page :is(.career-section,.app-section,.team-banner,.prospekt-showcase,.apply){padding:24px!important}
  html body#site-page.standalone-page .hero{padding:28px!important;border-radius:var(--ui-feature-radius)!important}
}

/* One scroll container for news, matching the existing controls and listeners. */
@media (max-width:980px){
  html body#site-page #highlights .news-slider-shell{min-width:0!important;max-width:100%!important}
  html body#site-page #highlights .news-slider-window{
    width:100%!important;max-width:100%!important;min-width:0!important;
    margin:0!important;padding:6px 0 20px!important;
    overflow-x:auto!important;overflow-y:hidden!important;
    scroll-snap-type:x proximity!important;scroll-padding-inline:0!important;
    touch-action:pan-x pan-y pinch-zoom;
    -webkit-overflow-scrolling:touch;
  }
  html body#site-page #highlights .news-slider-track{
    display:grid!important;grid-template-columns:none!important;
    grid-auto-flow:column!important;grid-auto-columns:min(360px,calc(100% - 48px))!important;
    width:100%!important;max-width:100%!important;min-width:0!important;
    gap:var(--ui-gap)!important;margin:0!important;padding:0!important;
    overflow:visible!important;scroll-snap-type:none!important;
  }
  html body#site-page #highlights .news-slide-card{
    width:100%!important;min-width:0!important;max-width:none!important;
    scroll-snap-align:start!important;scroll-snap-stop:normal!important;
  }
}

/* Partial cards must remain visible before intersection animations trigger. */
@media (max-width:980px){
  html body#site-page :is(.market-grid,.service-grid,.career-jobs,.department-gallery,.news-slider-track) > article{
    opacity:1!important;visibility:visible!important;transform:none!important;
    filter:none!important;animation:none!important;
  }
}
@media (max-width:640px){
  html body#site-page #abteilungen .department-gallery{
    display:grid!important;grid-template-columns:none!important;grid-auto-flow:column!important;
    grid-auto-columns:min(360px,calc(100% - 48px))!important;gap:16px!important;
    width:100%!important;max-width:100%!important;margin-inline:0!important;
    padding:6px 0 20px!important;overflow-x:auto!important;overflow-y:hidden!important;
    scroll-padding-inline:0!important;scroll-snap-type:x proximity!important;
  }
  html body#site-page #abteilungen .dept-gallery-card{
    width:100%!important;min-width:0!important;max-width:none!important;
    grid-column:auto!important;grid-row:auto!important;scroll-snap-align:start!important;
  }
}

/* Mobile market services are a vertical list instead of a swipe carousel. */
@media (max-width:980px){
  html body#site-page #service .service-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-auto-flow:row!important;
    grid-auto-columns:auto!important;
    gap:16px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
  }
  html body#site-page #service .service-item{
    display:grid!important;
    grid-template-columns:48px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    gap:6px 16px!important;
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    align-content:center!important;
  }
  html body#site-page #service .service-item > span{
    grid-column:1!important;grid-row:1 / 3!important;
    align-self:center!important;margin:0!important;
  }
  html body#site-page #service .service-item h3{grid-column:2!important;grid-row:1!important;margin:0!important}
  html body#site-page #service .service-item p{grid-column:2!important;grid-row:2!important;margin:0!important}
  html body#site-page #service .mobile-swipe-indicator{display:none!important}
}

@media (hover:hover) and (pointer:fine){
  html body#site-page :is(.market-card,.service-card,.job-card,.service-item,.news-slide-card,.job,.dept-gallery-card):hover{
    transform:none!important;border-color:rgba(0,80,164,.26)!important;box-shadow:var(--ui-shadow-hover)!important;
  }
  html body#site-page :is(.chapter,.legal-intro,.toc,.benefit,.contact-card,.review-card):hover{transform:none!important;box-shadow:var(--ui-shadow)!important}
}
@media (prefers-reduced-motion:reduce){
  html body#site-page .loader{display:none!important}
  html body#site-page :is(.mini-card,.market-card,.service-card,.job-card,.contact-panel,.info-card,.service-item,.news-card,.news-slide-card,.contact-card,.quick-panel,.job,.benefit,.chapter,.legal-intro,.toc,.review-card){transition:none!important}
}

/* Shared reflow rules: content may shrink and wrap inside grids and flex rows. */
html{scroll-padding-top:100px;-webkit-text-size-adjust:100%}
html body#site-page :is(.hero-grid,.hero-copy,.section-head,.career-copy,.app-copy,.contact-grid,.contact-panel,.legal-content,.apply-copy,.apply-action,.footer-brand,.reader-header,.reader-toolbar,.reader-stage){min-width:0}
html body#site-page :is(.hero-grid,.section-head,.mini-strip,.contact-grid,.career-section,.app-section,.team-banner,.prospekt-market-entry,.apply,.jobs,.benefits,.legal-layout,.facts,.footer-main,.footer-bottom) > *{min-width:0}
html body#site-page :is(h1,h2,h3,p,li,strong,small,.btn,.contact-action,.tag){overflow-wrap:anywhere}
html body#site-page :is(h1,h2,h3,h4){
  overflow-wrap:normal;
  word-break:normal;
  hyphens:auto;
  text-wrap:balance;
}
/* Reserve a full text column instead of squeezing it beside the action. */
html body#site-page .prospekt-market-entry{
  grid-template-columns:clamp(120px,18vw,200px) minmax(0,1fr)!important;
  gap:24px 32px!important;
  padding:clamp(20px,4vw,48px)!important;
  align-items:center;
}
html body#site-page .prospekt-market-entry > .prospekt-thumbnail{
  grid-column:1;
  grid-row:1 / 3;
}
html body#site-page .prospekt-market-entry > div:not(.prospekt-thumbnail){
  grid-column:2;
  container-type:inline-size;
}
html body#site-page .prospekt-market-entry h2{
  font-size:clamp(1.6rem,3.4vw,3.2rem)!important;
  font-size:clamp(1rem,9cqw,3.2rem)!important;
  line-height:1.1!important;
  letter-spacing:-.045em;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
html body#site-page .prospekt-market-entry > .btn{
  grid-column:2;
  grid-row:2;
  justify-self:start;
  min-width:0;
  width:auto;
  margin-top:0;
}
@media (max-width:600px){
  html body#site-page .prospekt-market-entry{
    grid-template-columns:minmax(0,1fr)!important;
    gap:24px!important;
  }
  html body#site-page .prospekt-market-entry > .prospekt-thumbnail{
    grid-column:1;
    grid-row:auto;
    width:110px;
    justify-self:center;
  }
  html body#site-page .prospekt-market-entry > div:not(.prospekt-thumbnail),
  html body#site-page .prospekt-market-entry > .btn{
    grid-column:1;
    grid-row:auto;
  }
  html body#site-page .prospekt-market-entry > .btn{width:100%}
}
/* Size every photo headline against its actual text column. */
html body#site-page .hero:has(> .cinema) .hero-copy{container-type:inline-size}
html body#site-page .hero:has(> .cinema) h1{
  font-size:min(10vw,13cqw,10rem)!important;
  overflow-wrap:normal;word-break:normal;hyphens:none;
}
html body#site-page .hero:has(> .cinema) h1 > span{white-space:nowrap}
@media (max-width:980px){
  html body#site-page .hero:has(> .cinema) h1{font-size:min(10.5vw,13cqw,4.5rem)!important}
}
/* Standalone pages and callouts also size titles to the available column. */
html body#site-page :is(.standalone-page .hero,.apply-copy,.career-copy,.app-copy,.prospekt-content){container-type:inline-size}
html body#site-page.standalone-page .hero{container-type:inline-size}
html body#site-page.standalone-page .hero h1{
  font-size:clamp(1.75rem,10cqw,4.5rem)!important;
  overflow-wrap:normal;
  hyphens:auto;
}
html body#site-page :is(.apply-copy,.career-copy,.app-copy,.prospekt-content) h2{
  font-size:clamp(1.6rem,9cqw,3.5rem)!important;
  line-height:1.12!important;
}
html body#site-page .section-head{flex-wrap:wrap}
html body#site-page .section-head > *{min-width:0;max-width:100%}
@media (max-width:600px){
  html body#site-page.standalone-page .job{grid-template-columns:minmax(0,1fr)!important}
  html body#site-page.standalone-page .job > div{grid-column:1}
  html body#site-page.standalone-page .job .arrow{display:none}
}
html body#site-page :is(.actions,.hero-actions,.card-actions,.footer-social,.footer-legal){flex-wrap:wrap}
html body#site-page :is(input,select,textarea){min-width:0;max-width:100%}
html body#site-page :is(.gallery-panel,.news-detail-body,.prospekt-market-dialog){min-width:0;overflow-wrap:anywhere}
html body#site-page :is(.gallery-modal,.news-detail-modal,.prospekt-market-modal,.prospekt-reader-modal){
  padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))!important;
}
html body#site-page :is(.gallery-modal-inner,.news-detail-inner,.prospekt-market-dialog){
  max-width:100%;max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
  overflow-y:auto!important;overscroll-behavior:contain;
}
html body#site-page .gallery-stage{min-width:0;min-height:0}
html body#site-page .gallery-panel{min-height:0;overflow-y:auto}
html body#site-page .gallery-panel small{max-width:100%;white-space:normal}
html body#site-page .gallery-nav-btn{transform:translateY(-50%)!important}
html body#site-page .prospekt-reader-dialog{height:min(980px,calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)))!important}

/* Gallery captions contribute to card height instead of being clipped overlays. */
html body#site-page #abteilungen .dept-gallery-card{display:grid;align-items:end}
html body#site-page #abteilungen .dept-gallery-card img{position:absolute;inset:0;width:100%;height:100%}
html body#site-page #abteilungen .dept-label{
  position:relative;inset:auto;max-width:none;min-width:0;width:100%;padding:24px!important;
}
html body#site-page #abteilungen .department-gallery{grid-auto-rows:minmax(230px,auto)!important}
@media (min-width:1181px){
  html body#site-page #abteilungen .department-gallery{grid-template-rows:repeat(2,minmax(230px,auto)) minmax(210px,auto)!important}
  html body#site-page #abteilungen .dept-gallery-card.wide h3{font-size:clamp(1.8rem,3vw,3rem);line-height:1.08}
}
@media (min-width:641px) and (max-width:1180px){
  html body#site-page #abteilungen .department-gallery{grid-auto-rows:minmax(300px,auto)!important}
}
@media (max-width:640px){
  html body#site-page #abteilungen .department-gallery{grid-auto-rows:minmax(330px,auto)!important}
}

@media (max-width:980px){
  html body#site-page .mobile-bottom-nav.mobile-bottom-nav-svg a small{
    white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
    overflow-wrap:anywhere;hyphens:auto;
  }
  html body#site-page .section-head{flex-wrap:wrap}
  html body#site-page .gallery-modal-inner{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(160px,42dvh) minmax(0,1fr)!important}
  html body#site-page .gallery-nav-btn{top:max(80px,21dvh)}
}

/* The reader fills the available height; only its page area scrolls when zoomed. */
html body#site-page:has(> .reader){padding:0!important}
html body#site-page .reader{
  height:100vh;height:100dvh;min-height:360px;
  grid-template-rows:auto auto minmax(120px,1fr) auto;
  padding:max(8px,env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) max(8px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));
}
html body#site-page .reader:has(.reader-toolbar[style*="display: none"]){grid-template-rows:auto minmax(120px,1fr) auto}
html body#site-page .reader-header{flex-wrap:wrap;gap:12px}
html body#site-page .reader-header .brand{min-width:0;max-width:100%}
html body#site-page .reader-header .brand > div{min-width:0}
html body#site-page .reader-header .brand-mark{flex-shrink:0}
html body#site-page .reader-toolbar{display:flex;flex-wrap:wrap;justify-content:center}
html body#site-page .reader-toolbar .controls{min-width:0;max-width:100%;flex-wrap:wrap;justify-content:center}
html body#site-page .reader-stage{height:100%;min-height:0;min-width:0}
html body#site-page .reader-hint{overflow-wrap:anywhere}
html body#site-page .reader:fullscreen{grid-template-rows:auto minmax(120px,1fr)}
html body#site-page .reader:fullscreen .reader-stage{height:100%;min-height:0}

@media (max-width:360px){
  html body#site-page .mobile-bottom-nav.mobile-bottom-nav-svg a small{min-height:2.4em}
}

/* Shared typography for the home page and all three photo-header market pages.
   Equal copy widths also make container-based headline sizes equal. */
html body#site-page:has(main > .hero > .cinema){
  --type-intro:1.125rem;
  --type-label:.875rem;
  --type-small:.875rem;
  --type-action:.95rem;
  --type-fact:1.125rem;
  --type-footer:clamp(2.5rem,5vw,4.5rem);
}
html body#site-page main > .hero:has(> .cinema) .hero-copy{
  width:100%!important;max-width:920px!important;
}
html body#site-page main > .hero:has(> .cinema) h1{
  line-height:1.04!important;letter-spacing:-.045em!important;font-weight:900!important;
}
html body#site-page main > .hero:has(> .cinema) h1 > span{
  font-size:inherit!important;line-height:inherit!important;letter-spacing:inherit!important;
}
html body#site-page main > .hero:has(> .cinema) .hero-copy p{
  max-width:680px!important;font-size:var(--type-intro)!important;
  line-height:1.65!important;font-weight:500!important;
}
html body#site-page main > .hero:has(> .cinema) .eyebrow{
  font-size:var(--type-label)!important;line-height:1.5!important;font-weight:800!important;
}
html body#site-page:has(main > .hero > .cinema) :is(.news-slide-date,.news-slide-tag,.dept-label small,.prospekt-kicker){
  font-size:var(--type-small)!important;line-height:1.5!important;
}
html body#site-page:has(main > .hero > .cinema) :is(.mini-card > strong,.contact-card h3){
  font-size:var(--type-fact)!important;line-height:1.4!important;
}
html body#site-page:has(main > .hero > .cinema) .dept-label h3{
  font-size:var(--ui-card-title)!important;line-height:1.2!important;
}
html body#site-page:has(main > .hero > .cinema) :is(.dept-label p,.prospekt-market-entry p,.career-copy p,.app-copy p){
  font-size:var(--ui-text)!important;line-height:1.6!important;
}
html body#site-page:has(main > .hero > .cinema) :is(.btn,.market-link,.news-slide-more,.filter){
  font-size:var(--type-action)!important;line-height:1.35!important;font-weight:800!important;
}
html body#site-page:has(main > .hero > .cinema) .site-footer .footer-brand h2{
  font-size:var(--type-footer)!important;line-height:1.08!important;letter-spacing:-.045em!important;
}
html body#site-page:has(main > .hero > .cinema) .site-footer p{
  font-size:var(--ui-text)!important;line-height:1.6!important;
}
html body#site-page:has(main > .hero > .cinema) .site-footer :is(.footer-markets,.footer-bottom){
  font-size:var(--type-small)!important;line-height:1.5!important;
}
@media(max-width:980px){
  html body#site-page:has(main > .hero > .cinema){
    --type-intro:1rem;--type-label:.75rem;--type-small:.8rem;
    --type-action:.9rem;--type-fact:1rem;
  }
}

/* Give every photo header's text and actions more room below the navigation. */
html body#site-page main > .hero:has(> .cinema) > .hero-grid{
  padding-top:clamp(48px,9vw,120px);
}

/* Home photo composition: storefront and sign on the right. */
@media(min-width:601px){
  html body#site-page.main-page main > .hero:has(> .cinema){
    --desktop-photo-height:clamp(560px,60vw,820px);
    padding-top:clamp(170px,16vw,240px)!important;
    padding-inline:clamp(28px,5vw,88px)!important;
  }
  html body#site-page.main-page main > .hero > .cinema::before{
    inset:0 0 auto;height:var(--desktop-photo-height);animation:none!important;
    background:
      linear-gradient(to bottom,transparent 65%,#101724 100%),
      linear-gradient(90deg,rgba(16,23,36,.82) 0%,rgba(16,23,36,.62) 32%,rgba(16,23,36,.12) 68%,rgba(16,23,36,.08)),
      url("images/hero-edeka.png") 60% 48% / cover no-repeat;
  }
  html body#site-page.main-page main > .hero .actions{display:flex!important;flex-wrap:wrap!important;gap:12px!important}
  html body#site-page.main-page main > .hero .actions .btn{flex:0 1 auto!important;width:auto!important;min-width:0!important;padding:14px 22px!important}
}
@media(max-width:600px){
  html body#site-page.main-page main > .hero:has(> .cinema){--mobile-header-ratio:.563}
  html body#site-page.main-page main > .hero > .cinema::before{background-position:top center,top center,center}
}
