
html{overflow-x:hidden}body.web-layout{margin:0;overflow-x:hidden}
body.web-layout .shell{width:calc(100% - 80px)!important;max-width:1600px!important}
body.web-layout .compact-hero{padding:40px 0 24px!important}
body.web-layout .compact-hero .hero-inner{grid-template-columns:260px 1fr!important;gap:60px!important}
body.web-layout .product-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:26px!important}
body.web-layout .product-card{min-height:290px!important;padding:28px 24px!important}
body.web-layout .card-title{font-size:23px!important;line-height:1.2}
body.web-layout .card-copy{font-size:16px!important;line-height:1.45!important}
body.web-layout .card-icon{width:120px!important;height:120px!important}
body.web-layout .drawer{width:min(720px,55vw)!important;transform:translateX(105%)!important;transition:transform .38s ease,opacity .25s ease,visibility .38s!important}
body.web-layout .drawer.open{transform:translateX(0)!important}
.demo-modal[hidden]{display:none}.demo-modal{position:fixed;inset:0;z-index:2000;background:rgba(4,24,52,.65);display:flex;align-items:center;justify-content:center;padding:24px}
.demo-dialog{position:relative;width:min(100%,1100px);height:min(88dvh,920px);background:#eaf7ff;border-radius:20px;overflow:hidden;box-shadow:0 24px 90px #0005}
.demo-dialog iframe{width:100%;height:100%;border:0;display:block}
.demo-close{position:absolute;right:12px;top:12px;z-index:2;background:white;border:1px solid #cee0ef;color:#082d78;border-radius:50%;width:44px;height:44px;font-size:30px;cursor:pointer}
@media(max-width:1250px){body.web-layout .product-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}body.web-layout .shell{width:calc(100% - 48px)!important}}
@media(max-width:900px){body.web-layout .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}body.web-layout .drawer{width:min(720px,94vw)!important}body.web-layout .compact-hero .hero-inner{grid-template-columns:200px 1fr!important;gap:24px!important}body.web-layout .compact-hero h1{font-size:40px!important}}
@media(max-width:560px){body.web-layout .shell{width:calc(100% - 28px)!important}body.web-layout .compact-hero .hero-inner{grid-template-columns:1fr!important}body.web-layout .product-grid{grid-template-columns:1fr!important;gap:18px!important}body.web-layout .product-card{min-height:250px!important}body.web-layout .drawer{width:100vw!important}body.web-layout .drawer-content{padding:64px 24px 32px!important}.demo-modal{padding:12px}.demo-dialog{height:85dvh}}
@media(prefers-reduced-motion:reduce){body.web-layout .drawer{transition:none!important}}

/* V34: Alle drei Produktreihen passen in die verfügbare Desktop-Höhe. */
@media(min-width:1000px) and (min-height:600px){
 body.web-layout{min-height:100dvh;display:flex;flex-direction:column}
 body.web-layout main#start{height:calc(100dvh - 58px);min-height:542px;display:flex;flex-direction:column}
 body.web-layout .compact-hero{flex:0 0 auto;padding:14px 0 10px!important}
 body.web-layout .compact-hero .hero-inner{min-height:0!important;padding:0!important;grid-template-columns:180px 1fr!important;gap:32px!important}
 body.web-layout .mesh-logo{width:180px!important;max-height:66px!important}
 body.web-layout .compact-hero h1{font-size:clamp(30px,3vw,44px)!important;line-height:1.08!important;margin:0 0 5px!important}
 body.web-layout .compact-hero .intro{font-size:15px!important;line-height:1.35!important}
 body.web-layout .products{flex:1;min-height:0;padding:8px 0 14px!important}
 body.web-layout .product-grid{height:100%;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:repeat(3,minmax(0,1fr));gap:clamp(10px,1.6vh,18px)!important}
 body.web-layout .product-card{min-height:0!important;padding:clamp(8px,1.3vh,16px) 14px!important;justify-content:center;gap:4px;border-radius:18px!important}
 body.web-layout .product-card .card-icon{width:clamp(42px,7.8vh,84px)!important;height:clamp(42px,7.8vh,84px)!important;margin:0 0 3px!important;flex-shrink:0}
 body.web-layout .card-title{font-size:clamp(16px,1.95vh,21px)!important;line-height:1.15!important}
 body.web-layout .card-copy{font-size:clamp(11px,1.5vh,14px)!important;line-height:1.3!important;margin-top:2px!important;max-width:100%}
 body.web-layout footer{flex:0 0 58px}
 body.web-layout .footer-inner{min-height:57px!important;height:57px;padding:6px 0!important;gap:20px!important}
 body.web-layout .footer-logo{width:110px!important;max-height:42px;object-fit:contain}
 body.web-layout .footer-inner p{font-size:18px!important;margin:0!important}
 body.web-layout footer a{font-size:14px}
}


/* V36: gemeinsame Kachelzonen; produktspezifische Icon-Maße überschreiben. */
body.web-layout .product-grid .product-card{
 display:grid!important;
 grid-template-rows:minmax(0,1.3fr) 2.4em minmax(0,1fr)!important;
 justify-items:center;align-content:stretch!important;align-items:start;
 gap:8px!important;
}
body.web-layout .product-grid .product-card .card-icon{
 width:88px!important;height:88px!important;max-width:100%;max-height:100%;
 object-fit:contain;margin:0!important;align-self:center;display:block;
}
body.web-layout .product-grid .product-card .card-title{
 display:block;width:100%;margin:0!important;align-self:start;
 line-height:1.18!important;padding-top:3px;
}
body.web-layout .product-grid .product-card .card-copy{
 align-self:start;margin:0!important;line-height:1.4!important;
 font-size:15px!important;
}
@media(min-width:1000px) and (min-height:600px){
 body.web-layout .product-grid .product-card{
  padding:clamp(10px,1.5vh,18px) 16px!important;
  grid-template-rows:minmax(0,1.3fr) 2.4em minmax(0,1fr)!important;
  gap:clamp(5px,.8vh,9px)!important;
  font-size:clamp(15px,1.9vh,20px);
 }
 body.web-layout .product-grid .product-card .card-icon{
  width:clamp(48px,8vh,86px)!important;height:clamp(48px,8vh,86px)!important;
 }
 body.web-layout .product-grid .product-card .card-copy{
  font-size:clamp(12px,1.6vh,15px)!important;
 }
}
@media(max-width:999px){body.web-layout .product-grid .product-card{min-height:280px!important;grid-template-rows:110px 52px minmax(0,1fr)!important}}

/* Fußbereich ohne Trennlinie. */
body.web-layout footer{border-top:0!important}

/* Desktop: Produkte spaltenweise von oben nach unten. */
@media(min-width:1000px) and (min-height:600px){
 body.web-layout .product-grid{grid-auto-flow:column}
}
@media(min-width:1251px) and (max-height:599px){
 body.web-layout .product-grid{grid-template-rows:repeat(3,auto);grid-auto-flow:column}
}

/* Portal evaluation: full-screen image with original-resolution detail mode. */
.tse-image-enlarge{display:block;width:100%;padding:0;cursor:zoom-in;font:inherit;color:#082d78;text-align:center}
.tse-image-enlarge span{display:block;padding:12px;background:#eef7fd;font-weight:700}
.portal-image-dialog{position:fixed;inset:0;box-sizing:border-box;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#f4f8fc;color:#082d78;overflow:hidden}
.portal-image-dialog[open]{display:flex;flex-direction:column}
.portal-image-dialog::backdrop{background:#082d78b3}
.portal-image-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;background:white;flex:none}
.portal-image-toolbar h2{font-size:18px;line-height:1.25;margin:0 auto 0 0}
.portal-image-toolbar button{font:inherit;border:1px solid #cfe2f2;border-radius:8px;padding:10px 14px;background:#eef7fd;color:#082d78;cursor:pointer;min-height:44px}
.portal-image-canvas{flex:1;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;padding:16px}
.portal-image-canvas img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;flex:none}
.portal-image-dialog.is-zoomed .portal-image-canvas{display:block}
.portal-image-dialog.is-zoomed .portal-image-canvas img{width:2048px;height:auto;max-width:none;max-height:none}
@media(max-width:560px){.portal-image-toolbar{padding:10px;gap:8px}.portal-image-toolbar h2{width:100%;font-size:16px}.portal-image-canvas{padding:8px}}

.brochure-fullscreen iframe{display:block;flex:1;min-height:0;width:100%;border:0;background:white}
.brochure-fullscreen .portal-image-toolbar a{color:#082d78;padding:10px;text-decoration:underline}

/* ==== Menübereich der Originalseite (Header und Navigation) auf produkte.html ====
   Regeln 1:1 aus assets/css/style.css (Abschnitte Header und Navigation Menu); Bootstrap
   wird hier nicht geladen, daher die kleinen Ergänzungen unten (container, me-auto, fixed-top). */
:root{--menue-hoehe:64px}
#header {
  transition: all 0.5s;
  z-index: 997;
  padding: 15px 0;
}

#header.header-scrolled, #header.header-inner-pages {
  background: rgba(40, 58, 90, 0.9);
}

#header .logo {
  font-size: 30px;
  margin: 0;
  padding: 0;
  line-height: 1;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
}

#header .logo a {
  color: #fff;
}

#header .logo img {
  max-height: 40px;
}

/*--------------------------------------------------------------
# Navigation Menu
--------------------------------------------------------------*/
/**
* Desktop Navigation 
*/
.navbar {
  padding: 0;
}

.navbar ul {
  margin: 0;
  padding: 0;
  display: flex;
  list-style: none;
  align-items: center;
}

.navbar li {
  position: relative;
}

.navbar a, .navbar a:focus {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0 10px 30px;
  font-size: 15px;
  font-weight: 500;
  color: #fff;
  white-space: nowrap;
  transition: 0.3s;
}

.navbar a i, .navbar a:focus i {
  font-size: 12px;
  line-height: 0;
  margin-left: 5px;
}

.navbar a:hover, .navbar .active, .navbar .active:focus, .navbar li:hover > a {
  color: #47b2e4;
}

.navbar .getstarted {
  padding: 8px 20px;
  margin-left: 30px;
  border-radius: 50px;
  color: #fff;
  font-size: 14px;
  border: 2px solid #47b2e4;
  font-weight: 600;
}

.navbar .getstarted:hover {
  color: #fff;
  background: #31a9e1;
}

.navbar .dropdown ul {
  display: block;
  position: absolute;
  left: 14px;
  top: calc(100% + 30px);
  margin: 0;
  padding: 10px 0;
  z-index: 99;
  opacity: 0;
  visibility: hidden;
  background: #fff;
  box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
  transition: 0.3s;
  border-radius: 4px;
}

.navbar .dropdown ul li {
  min-width: 200px;
}

.navbar .dropdown ul a {
  padding: 10px 20px;
  font-size: 14px;
  text-transform: none;
  font-weight: 500;
  color: #0c3c53;
}

.navbar .dropdown ul a i {
  font-size: 12px;
}

.navbar .dropdown ul a:hover, .navbar .dropdown ul .active:hover, .navbar .dropdown ul li:hover > a {
  color: #47b2e4;
}

.navbar .dropdown:hover > ul {
  opacity: 1;
  top: 100%;
  visibility: visible;
}

.navbar .dropdown .dropdown ul {
  top: 0;
  left: calc(100% - 30px);
  visibility: hidden;
}

.navbar .dropdown .dropdown:hover > ul {
  opacity: 1;
  top: 0;
  left: 100%;
  visibility: visible;
}

@media (max-width: 1366px) {
  .navbar .dropdown .dropdown ul {
    left: -90%;
  }
  .navbar .dropdown .dropdown:hover > ul {
    left: -100%;
  }
}

/**
* Mobile Navigation 
*/
.mobile-nav-toggle {
  color: #fff;
  font-size: 28px;
  cursor: pointer;
  display: none;
  line-height: 0;
  transition: 0.5s;
}

.mobile-nav-toggle.bi-x {
  color: #fff;
}

@media (max-width: 991px) {
  .mobile-nav-toggle {
    display: block;
  }
  .navbar ul {
    display: none;
  }
}

.navbar-mobile {
  position: fixed;
  overflow: hidden;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  background: rgba(40, 58, 90, 0.9);
  transition: 0.3s;
  z-index: 999;
}

.navbar-mobile .mobile-nav-toggle {
  position: absolute;
  top: 15px;
  right: 15px;
}

.navbar-mobile ul {
  display: block;
  position: absolute;
  top: 55px;
  right: 15px;
  bottom: 15px;
  left: 15px;
  padding: 10px 0;
  border-radius: 10px;
  background-color: #fff;
  overflow-y: auto;
  transition: 0.3s;
}

.navbar-mobile a {
  padding: 10px 20px;
  font-size: 15px;
  color: #37517e;
}

.navbar-mobile a:hover, .navbar-mobile .active, .navbar-mobile li:hover > a {
  color: #47b2e4;
}

.navbar-mobile .getstarted {
  margin: 15px;
  color: #37517e;
}

.navbar-mobile .dropdown ul {
  position: static;
  display: none;
  margin: 10px 20px;
  padding: 10px 0;
  z-index: 99;
  opacity: 1;
  visibility: visible;
  background: #fff;
  box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
}

.navbar-mobile .dropdown ul li {
  min-width: 200px;
}

.navbar-mobile .dropdown ul a {
  padding: 10px 20px;
}

.navbar-mobile .dropdown ul a i {
  font-size: 12px;
}

.navbar-mobile .dropdown ul a:hover, .navbar-mobile .dropdown ul .active:hover, .navbar-mobile .dropdown ul li:hover > a {
  color: #47b2e4;
}

.navbar-mobile .dropdown > .dropdown-active {
  display: block;
}

/* Ergänzungen für Bootstrap-Klassen, die hier nicht geladen werden */
#header{position:fixed;top:0;right:0;left:0;height:var(--menue-hoehe);padding:0;z-index:50}
#header .container{display:flex;align-items:center;width:100%;max-width:1320px;height:100%;margin:0 auto;padding:0 12px}
#header .logo.me-auto{margin-right:auto}
#header,#header .logo,.navbar a,.navbar a:focus{font-family:"Jost","Poppins",sans-serif}
#header a{text-decoration:none}
.navbar{display:flex;align-items:center}
body.web-layout{padding-top:var(--menue-hoehe)}
@media(min-width:1000px) and (min-height:600px){
 body.web-layout main#start{height:calc(100dvh - 58px - var(--menue-hoehe));min-height:542px}
}
