/* 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);
  isolation:isolate;
  background:linear-gradient(to bottom,#101724 0%,#101724 calc(100% - var(--header-fade)),rgba(16,23,36,0) 100%)!important;
  border-radius:0!important;
  border-bottom:0!important;
  box-shadow:none!important;
}
html body#site-page .hero > .cinema{
  background:#101724;
}
html body#site-page .hero > .cinema > .cinema-image{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 55%;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 34%,rgba(0,0,0,.99) 46%,rgba(0,0,0,.94) 58%,rgba(0,0,0,.8) 70%,rgba(0,0,0,.55) 81%,rgba(0,0,0,.25) 91%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 34%,rgba(0,0,0,.99) 46%,rgba(0,0,0,.94) 58%,rgba(0,0,0,.8) 70%,rgba(0,0,0,.55) 81%,rgba(0,0,0,.25) 91%,transparent 100%);
}
html body#site-page .hero > .cinema::before{z-index:1}
html body#site-page .hero:has(> .cinema) + section{border-top:0!important}

@media (max-width:980px){
  html body#site-page main > .hero:has(> .cinema) .actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
  }
  html body#site-page main > .hero:has(> .cinema) .actions .btn.yellow{
    min-height:52px!important;
    width:100%!important;
    background:#ffdd00!important;
    background-image:none!important;
    color:#111!important;
    -webkit-text-fill-color:#111!important;
    border:2px solid #ffdd00!important;
    box-shadow:0 5px 18px rgba(0,0,0,.32)!important;
  }
  html body#site-page main > .hero:has(> .cinema) .actions .btn.primary{
    min-height:52px!important;
    width:100%!important;
    background:#0050a4!important;
    background-image:none!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    border:2px solid #fff!important;
    box-shadow:0 5px 18px rgba(0,0,0,.32)!important;
  }
  html body#site-page main > .hero:has(> .cinema) .actions .btn{
    opacity:1!important;
    filter:none!important;
    transform:none!important;
    animation:none!important;
    font-size:1rem!important;
    line-height:1.3!important;
    font-weight:800!important;
    text-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  html body#site-page main > .hero:has(> .cinema) .actions .btn::before,
  html body#site-page main > .hero:has(> .cinema) .actions .btn::after{
    content:none!important;
    display:none!important;
  }
}

/* All photo headers share the same uncropped mobile composition. */
@media (max-width:600px){
  html body#site-page .hero:has(> .cinema){
    --mobile-header-ratio:.671;
  }
  html body#site-page.altdorf-page .hero{
    --mobile-header-ratio:.75;
  }
  html body#site-page main > .hero:has(> .cinema){
    min-height:0!important;
    padding: max(160px,calc(100vw * var(--mobile-header-ratio) - 72px)) 20px 100px!important;
    align-items:start!important;
  }
  html body#site-page main > .hero:has(> .cinema) > .hero-grid{padding-top:0!important}
  html body#site-page .hero > .cinema::before{
    background:linear-gradient(to bottom,transparent 38%,rgba(16,23,36,.02) 50%,rgba(16,23,36,.06) 62%,rgba(16,23,36,.14) 74%,rgba(16,23,36,.2) 87%,rgba(16,23,36,.18) 100%) top center / 100% calc(100vw * var(--mobile-header-ratio)) no-repeat;
    transform:none!important;
  }
  html body#site-page .hero > .cinema > .cinema-image{
    height:calc(100vw * var(--mobile-header-ratio));
    object-fit:contain;
    object-position:top center;
    transform:none!important;
    animation:none!important;
  }
  html body#site-page.fuerth-page main > .hero > .cinema > .cinema-image{
    transform:scale(.84)!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}
  html body#site-page .hero:has(> .cinema) .hero-copy{
    padding:0!important;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}

/* Tablets use the same dark header palette while retaining their layout. */
@media (min-width:601px) and (max-width:980px){
  html body#site-page .hero > .cinema::before{
    background:
      linear-gradient(to bottom,rgba(16,23,36,.12) 0%,rgba(16,23,36,.06) 34%,rgba(16,23,36,.1) 48%,rgba(16,23,36,.2) 62%,rgba(16,23,36,.36) 77%,rgba(16,23,36,.5) 90%,rgba(16,23,36,.18) 100%);
    transform:none!important;
    animation:none!important;
  }
  html body#site-page .hero > .cinema > .cinema-image{height:100%;object-fit:cover;object-position:center 55%;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-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 .hero > .cinema::before{
    inset:0 0 auto;
    height:var(--desktop-photo-height);
    background:linear-gradient(to bottom,rgba(16,23,36,.12) 0%,transparent 30%,rgba(16,23,36,.03) 42%,rgba(16,23,36,.08) 54%,rgba(16,23,36,.18) 67%,rgba(16,23,36,.32) 80%,rgba(16,23,36,.42) 90%,rgba(16,23,36,.18) 100%);
    transform:none!important;
    animation:none!important;
  }
  html body#site-page .hero > .cinema > .cinema-image{height:var(--desktop-photo-height);object-fit:cover;object-position:center 55%;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}
}

/* Show the homepage team roles as a simple vertical list on mobile. */
@media (max-width:980px){
  html body#site-page #karriere .career-jobs{
    display:grid!important;
    grid-auto-flow:row!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-auto-columns:auto!important;
    gap:16px!important;
    width:100%!important;
    margin:0 0 24px!important;
    padding:0!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
  }
  html body#site-page #karriere .career-jobs > .job-card{
    width:100%!important;
    min-width:0!important;
    scroll-snap-align:none!important;
  }
  html body#site-page #karriere .mobile-swipe-indicator{display:none!important}
}

/* Market department cards use a vertical mobile list instead of a swipe row. */
@media (max-width:980px){
  html body#site-page #abteilungen .department-gallery{
    display:grid!important;
    grid-auto-flow:row!important;
    grid-template-columns:minmax(0,1fr)!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 #abteilungen .dept-gallery-card{
    width:100%!important;
    min-width:0!important;
    grid-column:auto!important;
    grid-row:auto!important;
    scroll-snap-align:none!important;
  }
  html body#site-page #abteilungen .mobile-swipe-indicator{display:none!important}
}

/* Compact mobile galleries keep markets and departments browsable without swiping. */
@media (max-width:640px){
  html body#site-page #markets .market-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    grid-auto-columns:auto!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
  }
  html body#site-page #markets .market-card{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    scroll-snap-align:none!important;
    border-radius:20px!important;
  }
  html body#site-page #markets .market-card:last-child:nth-child(odd){
    grid-column:1 / -1!important;
    justify-self:stretch!important;
    width:100%!important;
  }
  html body#site-page #markets .market-image{
    height:112px!important;
    min-height:112px!important;
    flex:0 0 112px!important;
  }
  html body#site-page #markets .market-content{
    display:flex!important;
    flex:1!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:8px!important;
    padding:12px!important;
  }
  html body#site-page #markets .market-content h3{
    margin:0!important;
    font-size:1.15rem!important;
    line-height:1.05!important;
  }
  html body#site-page #markets .market-content p{
    margin:0 0 2px!important;
    font-size:.75rem!important;
    line-height:1.35!important;
  }
  html body#site-page #markets .market-link{
    margin-top:auto!important;
    min-height:40px!important;
    padding:9px 11px!important;
    font-size:.75rem!important;
    line-height:1.1!important;
  }
  html body#site-page #markets .mobile-swipe-indicator{display:none!important}

  html body#site-page #abteilungen .department-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    grid-auto-columns:auto!important;
    grid-auto-rows:clamp(150px,42vw,172px)!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
  }
  html body#site-page #abteilungen .dept-gallery-card,
  html body#site-page #abteilungen .dept-gallery-card.large,
  html body#site-page #abteilungen .dept-gallery-card.wide{
    grid-column:auto!important;
    grid-row:auto!important;
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    min-height:0!important;
    border-radius:20px!important;
    scroll-snap-align:none!important;
  }
  html body#site-page #abteilungen .dept-label{
    left:10px!important;
    right:10px!important;
    bottom:10px!important;
    padding:10px!important;
  }
  html body#site-page #abteilungen .dept-gallery-card .dept-label small{
    display:none!important;
  }
  html body#site-page #abteilungen .dept-label h3{
    margin:0!important;
    font-size:clamp(.9rem,4vw,1.05rem)!important;
    line-height:1.12!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-gallery-card::after{
  background:linear-gradient(to bottom,rgba(7,16,31,.02) 20%,rgba(7,16,31,.22) 48%,rgba(7,16,31,.88) 100%)!important;
}
html body#site-page #abteilungen .dept-label{
  position:relative;inset:auto;z-index:2;max-width:none;min-width:0;width:100%;padding:24px!important;
}
html body#site-page #abteilungen .dept-label small{
  margin:0 0 10px!important;
  padding:8px 12px!important;
  border-radius:999px!important;
  background:#ffdd00!important;
  color:#111!important;
  font-size:.85rem!important;
  line-height:1.25!important;
  font-weight:900!important;
  box-shadow:0 3px 12px rgba(0,0,0,.38);
}
html body#site-page #abteilungen .dept-label h3{
  margin:0 0 8px!important;
  color:#fff!important;
  font-size:clamp(1.3rem,2.2vw,1.85rem)!important;
  line-height:1.08!important;
  letter-spacing:-.045em!important;
  text-shadow:0 2px 8px rgba(0,0,0,.9),0 1px 2px rgba(0,0,0,.9)!important;
}
html body#site-page #abteilungen .market-images-note{
  display:inline-flex!important;
  align-self:flex-start!important;
  margin:0!important;
  padding:4px 8px!important;
  border-radius:999px!important;
  background:rgba(255,221,0,.18)!important;
  color:#fff!important;
  font-size:.75rem!important;
  font-weight:800!important;
  line-height:1.25!important;
}
html body#site-page #abteilungen .dept-gallery-card.market-images-pending{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(145deg,#fffdf4,#fff3b5)!important;
  border:1px solid rgba(184,145,0,.22)!important;
  box-shadow:0 12px 32px rgba(8,18,34,.12)!important;
  cursor:default!important;
}
html body#site-page #abteilungen .dept-gallery-card.market-images-pending::after{
  display:none!important;
}
html body#site-page #abteilungen .dept-gallery-card.market-images-pending .dept-label{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  padding:20px!important;
  text-align:center!important;
}
html body#site-page #abteilungen .dept-gallery-card.market-images-pending .dept-label small{
  display:inline-flex!important;
  margin:0!important;
  box-shadow:none!important;
}
html body#site-page #abteilungen .dept-gallery-card.market-images-pending .dept-label h3{
  margin:0!important;
  color:#172337!important;
  text-shadow:none!important;
}
html body#site-page #abteilungen .dept-gallery-card.market-images-pending .market-images-note{
  align-self:center!important;
  background:#fff!important;
  color:#684f00!important;
  box-shadow:0 3px 12px rgba(0,0,0,.08)!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}
  html body#site-page #abteilungen .dept-label{padding:22px!important}
  html body#site-page #abteilungen .dept-label h3{font-size:clamp(1.45rem,7vw,2rem)!important}
  html body#site-page #abteilungen .market-images-note{
    background:#fff4b8!important;
    color:#684f00!important;
    font-size:.68rem!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(0,1fr)!important}
  html body#site-page .gallery-nav-btn{top:50%!important}
}
@media (min-width:681px){
  html body#site-page :is(.gallery-modal){
    padding:24px 0!important;
    background:rgba(7,16,31,.78)!important;
    backdrop-filter:blur(26px)!important;
    -webkit-backdrop-filter:blur(26px)!important;
  }
  html body#site-page :is(.gallery-modal-inner){
    width:min(1000px,calc(100vw - 20px))!important;
    height:min(680px,calc(100dvh - 48px))!important;
    max-width:none!important;
    max-height:calc(100dvh - 48px)!important;
    overflow:hidden!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:minmax(0,1fr)!important;
    border-radius:30px!important;
    background:#050b19!important;
  }
  html body#site-page .gallery-stage{grid-area:1 / 1;background:#050b19!important}
  html body#site-page .gallery-stage img{object-fit:cover!important}
  html body#site-page .gallery-nav-btn.prev{left:18px!important;right:auto!important}
  html body#site-page .gallery-nav-btn.next{right:18px!important;left:auto!important}
}

html body#site-page .gallery-panel{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  padding:0!important;
  overflow:visible!important;
  pointer-events:none!important;
}
html body#site-page .gallery-panel > div:first-child{display:none!important}
html body#site-page .gallery-panel .gallery-thumbs{
  position:absolute!important;
  z-index:4!important;
  left:50%!important;
  bottom:18px!important;
  display:flex!important;
  width:max-content!important;
  max-width:min(780px,calc(100% - 36px))!important;
  gap:10px!important;
  padding:8px!important;
  overflow-x:auto!important;
  scrollbar-width:none;
  border-radius:18px!important;
  background:rgba(7,16,31,.72)!important;
  backdrop-filter:blur(16px);
  transform:translateX(-50%)!important;
  pointer-events:auto!important;
}
html body#site-page .gallery-panel .gallery-thumb{
  flex:0 0 68px!important;
  height:56px!important;
}
html body#site-page .gallery-panel .gallery-thumbs::-webkit-scrollbar{display:none}
html body#site-page .gallery-stage img,
html body#site-page .gallery-stage.is-changing img{
  object-fit:cover!important;
  transform:none!important;
}

@media (max-width:680px){
  html body#site-page .gallery-modal{
    padding:8px!important;
    background:rgba(7,16,31,.72)!important;
    backdrop-filter:blur(12px)!important;
    -webkit-backdrop-filter:blur(12px)!important;
  }
  html body#site-page .gallery-modal-inner{
    width:min(calc(100vw - 32px),620px)!important;
    height:min(calc(100svh - 32px),800px)!important;
    max-height:calc(100svh - 32px)!important;
    aspect-ratio:auto!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:minmax(220px,44svh) minmax(0,1fr)!important;
    border:1px solid rgba(255,255,255,.82)!important;
    border-radius:30px!important;
    background:#f3f4f6!important;
    box-shadow:0 30px 90px rgba(0,20,50,.4)!important;
  }
  html body#site-page .gallery-stage{
    grid-area:1 / 1!important;
    min-height:0!important;
    background:#07101f!important;
  }
  html body#site-page .gallery-stage img{
    object-fit:cover!important;
    pointer-events:none!important;
  }
  html body#site-page .gallery-panel{
    position:relative!important;
    inset:auto!important;
    display:flex!important;
    grid-area:2 / 1!important;
    min-height:0!important;
    padding:24px 22px 14px!important;
    flex-direction:column!important;
    justify-content:space-between!important;
    gap:14px!important;
    overflow:hidden!important;
    background:#f3f4f6!important;
    pointer-events:auto!important;
  }
  html body#site-page .gallery-panel > div:first-child{
    display:block!important;
    min-height:0;
    overflow-y:auto;
    scrollbar-width:none;
  }
  html body#site-page .gallery-panel > div:first-child::-webkit-scrollbar{display:none}
  html body#site-page .gallery-panel .gallery-thumbs{
    position:static!important;
    flex:0 0 92px!important;
    width:100%!important;
    min-width:0;
    align-items:center;
    padding:0 0 8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:thin;
    scrollbar-color:rgba(23,32,51,.28) rgba(23,32,51,.06);
    border-radius:0!important;
    background:#fff!important;
    transform:none!important;
    backdrop-filter:none;
  }
  html body#site-page .gallery-panel .gallery-thumb{
    flex:0 0 82px!important;
    height:78px!important;
    border-radius:18px!important;
    background:#eef2f7!important;
  }
  html body#site-page .gallery-nav-btn{
    width:48px!important;
    height:48px!important;
    font-size:1.45rem!important;
  }
  html body#site-page .gallery-close{
    top:18px!important;
    right:18px!important;
    width:48px!important;
    height:48px!important;
  }
}

/* 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.7rem,7vw,6rem);
}
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;
  min-height:2.12em!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) .hero-copy > :is(.eyebrow,p,.actions,.hero-social){
  animation:none!important;
  opacity:1!important;
  transform:none!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:1rem!important;line-height:1.65!important;
}
html body#site-page .site-footer :is(.footer-markets a,.footer-bottom,.footer-legal a){
  font-size:1rem!important;line-height:1.4!important;
}

@media (max-width:640px){
  html body#site-page:has(main > .hero > .cinema){
    --type-footer:clamp(2.4rem,12vw,4rem);
  }
  html body#site-page #abteilungen .department-gallery{
    grid-auto-rows:clamp(195px,54vw,215px)!important;
    grid-template-rows:none!important;
  }
  html body#site-page #abteilungen .dept-gallery-card{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  html body#site-page #abteilungen .dept-gallery-card::after{display:none!important}
  html body#site-page #abteilungen .dept-gallery-card img{
    position:relative!important;
    inset:auto!important;
    display:block!important;
    width:100%!important;
    height:clamp(112px,33vw,132px)!important;
    flex:0 0 clamp(112px,33vw,132px)!important;
    object-fit:cover!important;
  }
  html body#site-page #abteilungen .dept-label{
    position:static!important;
    inset:auto!important;
    display:flex!important;
    flex:1!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:flex-start!important;
    gap:3px!important;
    width:100%!important;
    min-width:0!important;
    padding:8px 11px!important;
    background:#fff!important;
  }
  html body#site-page #abteilungen .dept-gallery-card .dept-label small{
    display:inline-flex!important;
    align-self:flex-start!important;
    margin:0 0 3px!important;
    padding:4px 7px!important;
    border:0!important;
    border-radius:999px!important;
    background:#ffdd00!important;
    color:#111!important;
    font-size:.58rem!important;
    line-height:1.1!important;
    font-weight:900!important;
    text-shadow:none!important;
    box-shadow:0 2px 6px rgba(0,0,0,.12)!important;
  }
  html body#site-page #abteilungen .dept-label h3{
    margin:0!important;
    color:#151b26!important;
    font-size:clamp(.85rem,3.8vw,1rem)!important;
    line-height:1.12!important;
    letter-spacing:-.025em!important;
    text-shadow:none!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 26%,rgba(16,23,36,.02) 40%,rgba(16,23,36,.06) 52%,rgba(16,23,36,.14) 64%,rgba(16,23,36,.26) 76%,rgba(16,23,36,.38) 88%,rgba(16,23,36,.18) 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));
  }
  html body#site-page.main-page main > .hero > .cinema > .cinema-image{object-position:center 40%}
  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(min-width:981px){
  html body#site-page.main-page main > .hero > .cinema::before{
    background:
      linear-gradient(to bottom,transparent 26%,rgba(16,23,36,.02) 40%,rgba(16,23,36,.06) 52%,rgba(16,23,36,.14) 64%,rgba(16,23,36,.26) 76%,rgba(16,23,36,.38) 88%,rgba(16,23,36,.18) 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));
  }
}
@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}
}

/* Keep address, opening-hours and other market fact cards calm on hover. */
@media (hover:hover) and (pointer:fine){
  html body#site-page .mini-card:hover{
    transform:none!important;
    border-color:rgba(0,80,164,.12)!important;
    box-shadow:var(--ui-shadow)!important;
    background:#fff!important;
  }
  html body#site-page .mini-card:hover::before,
  html body#site-page .mini-card:hover::after{
    opacity:0!important;
    transform:none!important;
    filter:none!important;
  }
  html body#site-page .mini-card:hover > *,
  html body#site-page .mini-card:hover strong{
    transform:none!important;
    filter:none!important;
    letter-spacing:inherit!important;
  }
  html body#site-page .mini-card .contact-action:hover{
    transform:none!important;
    border-color:rgba(0,80,164,.12)!important;
    background:#e4effa!important;
    color:#0050a4!important;
    box-shadow:none!important;
  }
}

html body#site-page .news-empty-state{
  width:min(100%,860px);
  margin:0 auto;
  padding:clamp(28px,5vw,54px) 24px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:30px;
  background:rgba(255,255,255,.72);
  box-shadow:0 24px 70px rgba(0,80,164,.1);
  text-align:center;
}
html body#site-page .news-empty-state > span{
  display:grid;
  width:52px;
  height:52px;
  margin:0 auto 16px;
  place-items:center;
  border-radius:17px;
  background:var(--yellow,#ffdd00);
  color:var(--blue,#0050a4);
  font-size:1.5rem;
}
html body#site-page .news-empty-state p{
  margin:0;
  color:var(--muted,#596678);
  font-size:clamp(1rem,2vw,1.2rem);
  font-weight:750;
  line-height:1.6;
}

/* Slightly zoom out the Fürth hero image and shade its outer edges. */
html body#site-page.fuerth-page main > .hero > .cinema > .cinema-image{
  transform:scale(.84)!important;
}
html body#site-page.fuerth-page main > .hero > .cinema::after{
  position:absolute;
  inset:0;
  z-index:2;
  content:"";
  pointer-events:none;
  background:radial-gradient(ellipse at center,transparent 46%,rgba(7,16,31,.78) 100%);
}
