
.h1e-section,
.h1e-section *,
.h1e-section *::before,
.h1e-section *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}



.h1e-section {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding: 2.5em 1.5em;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.5;
  color: #16181d;
  -webkit-font-smoothing: antialiased;
}

.h1e-section h2 {
  font-weight: 700; color: #16181d; margin: 0 0 0.15em 0; padding: 0;
  letter-spacing: -0.02em; line-height: 1.2; text-transform: none;
  border: none; background: none;
}
.h1e-section .h1e-subtitle {
  font-size: 0.92em; font-weight: 400; color: #16181d;
  margin: 0 0 1.5em 0;
}

.h1e-section .h1e-layout {
  display: flex;
  gap: 2.5em;
  align-items: center;
}


.h1e-section .h1e-building {
  flex-shrink: 0;
  width: 180px;
  position: relative;
}
.h1e-section .h1e-building svg {
  width: 100%; height: auto; display: block;
}
.h1e-section .h1e-floor-display {
  text-align: center;
  margin-top: 0.6em;
  font-size: 0.62em;
  font-weight: 600;
  color: #000000;
  letter-spacing: 0.05em;
  min-height: 1.5em;
}


.h1e-section .h1e-text {
  flex: 1;
  min-width: 0;
}
.h1e-section .h1e-text p {
  font-size: 0.92em;
  color: #16181d;
  line-height: 1.7;
  margin-bottom: 1em;
}
.h1e-section .h1e-text p:last-child { margin-bottom: 0; }
.h1e-section .h1e-text a {
  color: #16181d; text-decoration: underline;
  transition: color 0.2s ease;
}
.h1e-section .h1e-text a:hover { color: #000000; }


@media (max-width: 768px) {
  .h1e-section { padding: 2em 1.2em; }
  .h1e-section .h1e-layout { gap: 1.8em; }
  .h1e-section .h1e-building { width: 150px; }
  .h1e-section h2 { font-size: 1.15em; }
  .h1e-section .h1e-subtitle { font-size: 0.85em; }
}
@media (max-width: 600px) {
  .h1e-section .h1e-layout {
    flex-direction: column;
    align-items: center;
    gap: 1.5em;
  }
  .h1e-section .h1e-building { width: 55%; max-width: 200px; }
  .h1e-section .h1e-text { text-align: center; }
  .h1e-section .h1e-text p { font-size: 0.88em; }
  .h1e-section h2 { font-size: 1.1em; text-align: center; }
  .h1e-section .h1e-subtitle { font-size: 0.82em; text-align: center; }
}
@media (max-width: 420px) {
  .h1e-section { padding: 1.5em 0.8em; }
  .h1e-section .h1e-building { width: 50%; max-width: 160px; }
  .h1e-section .h1e-text p { font-size: 0.82em; }
  .h1e-section h2 { font-size: 1em; }
  .h1e-section .h1e-subtitle { font-size: 0.78em; }
  .h1e-section .h1e-floor-display { font-size: 0.55em; }
}



.mtb-section,
.mtb-section *,
.mtb-section *::before,
.mtb-section *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}



.mtb-section {
  width: 100%;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  padding: 3em 1.5em;
  font-family:inherit;
  font-size: 16px;
  line-height: 1.5;
  color:#16181d;
  -webkit-font-smoothing: antialiased;
}


.mtb-section .mtb-card {
  position: relative;
  background: #ffffff;
  border: 2px solid #e2ce50;
  border-radius: 16px;
  overflow: hidden;
}


.mtb-section .mtb-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #ffe500 0%, rgba(255,229,0,0.45) 100%);
}


.mtb-section .mtb-intro {
  padding: 2.2em 2.2em 1.6em;
  display: flex;
  align-items: flex-start;
  gap: 1.5em;
  border-bottom: 1px solid #d9dce2;
}
@media (max-width: 640px) {
  .mtb-section .mtb-intro { flex-direction: column; align-items: center; text-align: center; }
}


.mtb-section .mtb-shield {
  width: 56px;
  height: 56px;
  min-width: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: rgba(255,229,0,0.2);
  border: 1px solid #e2ce50;
  flex-shrink: 0;
}
.mtb-section .mtb-shield svg {
  width: 30px;
  height: 28px;
  fill: #ffe500;
  stroke: none;
}


.mtb-section .mtb-intro-text h2 {
  font-weight: 700;
  color:#16181d;
  margin: 0 0 0.3em 0;
  padding: 0;
  letter-spacing: -0.02em;
  line-height: 1.2;
  text-transform: none;
  border: none;
  background: none;
}
.mtb-section .mtb-intro-text h2 span {
  color:#000000;
}
.mtb-section .mtb-intro-text p {
  font-size: 0.88em;
  font-weight: 400;
  color:#16181d;
  line-height: 1.6;
  margin: 0;
  padding: 0;
}


.mtb-section .mtb-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(22,24,29,0.08);
  border-bottom: 1px solid #d9dce2;
}
@media (max-width: 720px) {
  .mtb-section .mtb-stats { grid-template-columns: repeat(2, 1fr); }
}

.mtb-section .mtb-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.4em 1em;
  background: #ffffff;
  transition: background 0.25s ease;
}
.mtb-section .mtb-stat:hover {
  background: #ffffff;
}
.mtb-section .mtb-stat-value {
  font-size: 1.5em;
  font-weight: 700;
  color:#000000;
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin-bottom: 0.25em;
}
.mtb-section .mtb-stat-label {
  font-size: 0.7em;
  font-weight: 500;
  color:#16181d;
  line-height: 1.35;
}


.mtb-section .mtb-badges-partner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5em;
  padding: 1.4em 2em 0.7em;
}


.mtb-section .mtb-badges-services {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5em;
  padding: 0.7em 2em 1.4em;
}
.mtb-section .mtb-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: 0.4em 0.8em;
  border-radius: 50px;
  font-size: 0.68em;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.mtb-section .mtb-badge svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}


.mtb-section .mtb-badge--gold {
  background: rgba(255,229,0,0.24);
  border: 1px solid #e2ce50;
  color:#000000;
}
.mtb-section .mtb-badge--gold svg { stroke:#16181d; }
.mtb-section .mtb-badge--gold:hover {
  background: rgba(255,229,0,0.4);
  border-color: #e2ce50;
}

.mtb-section .mtb-badge--subtle {
  background:#fff;
  border: 1px solid #d9dce2;
  color:#16181d;
}
.mtb-section .mtb-badge--subtle svg { stroke:#16181d; }
.mtb-section .mtb-badge--subtle:hover {
  background:#fff;
  border-color: #d9dce2;
}


.mtb-section a.mtb-badge {
  text-decoration: none;
  cursor: pointer;
}
.mtb-section a.mtb-badge::before { content: none; }
.mtb-section a.mtb-badge::after { content: none; }
.mtb-section a.mtb-badge:hover {
  text-decoration: none;
}

@media (max-width: 480px) {
  .mtb-section .mtb-badges-partner,
  .mtb-section .mtb-badges-services { padding-left: 1em; padding-right: 1em; }
  .mtb-section .mtb-badge { white-space: normal; text-align: left; }
}


.mtb-section .mtb-reg {
  font-size: 0.45em;
  vertical-align: super;
  font-weight: 400;
  line-height: 0;
}



.ejb-section,
.ejb-section *,
.ejb-section *::before,
.ejb-section *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}



.ejb-section {
  width: 100%;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  padding: 3em 1.5em;
  font-family:inherit;
  font-size: 16px;
  line-height: 1.5;
  color:#16181d;
  -webkit-font-smoothing: antialiased;
}


.ejb-section .ejb-card {
  position: relative;
  background: #ffffff;
  border: 2px solid #e2ce50;
  border-radius: 16px;
  overflow: hidden;
}


.ejb-section .ejb-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #ffe500 0%, rgba(255,229,0,0.45) 100%);
}


.ejb-section .ejb-intro {
  padding: 2.2em 2.2em 1.6em;
  display: flex;
  align-items: flex-start;
  gap: 1.5em;
  border-bottom: 1px solid #d9dce2;
}
@media (max-width: 640px) {
  .ejb-section .ejb-intro { flex-direction: column; align-items: center; text-align: center; }
}


.ejb-section .ejb-shield {
  width: 56px;
  height: 56px;
  min-width: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: rgba(255,229,0,0.2);
  border: 1px solid #e2ce50;
  flex-shrink: 0;
}
.ejb-section .ejb-shield svg {
  width: 22px;
  height: auto;
}


.ejb-section .ejb-intro-text h2 {
  font-weight: 700;
  color:#16181d;
  margin: 0 0 0.3em 0;
  padding: 0;
  letter-spacing: -0.02em;
  line-height: 1.2;
  text-transform: none;
  border: none;
  background: none;
}
.ejb-section .ejb-intro-text h2 span {
  color:#000000;
}
.ejb-section .ejb-intro-text p {
  font-size: 0.88em;
  font-weight: 400;
  color:#16181d;
  line-height: 1.6;
  margin: 0;
  padding: 0;
}


.ejb-section .ejb-reg {
  font-size: 0.45em;
  vertical-align: super;
  font-weight: 400;
  opacity: 0.6;
}


.ejb-section .ejb-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(22,24,29,0.033);
  border-bottom: 1px solid #d9dce2;
}
@media (max-width: 720px) {
  .ejb-section .ejb-stats { grid-template-columns: repeat(2, 1fr); }
}

.ejb-section .ejb-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.4em 1em;
  background: #ffffff;
  transition: background 0.25s ease;
}
.ejb-section .ejb-stat:hover {
  background: #ffffff;
}
.ejb-section .ejb-stat-value {
  font-size: 1.5em;
  font-weight: 700;
  color:#000000;
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin-bottom: 0.25em;
}
.ejb-section .ejb-stat-label {
  font-size: 0.7em;
  font-weight: 500;
  color:#4a4f59;
  line-height: 1.35;
}


.ejb-section .ejb-badges-top {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5em;
  padding: 1.4em 2em 0.7em;
}
.ejb-section .ejb-badges-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5em;
  padding: 0.7em 2em 1.4em;
}

.ejb-section .ejb-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: 0.4em 0.8em;
  border-radius: 50px;
  font-size: 0.68em;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.ejb-section .ejb-badge svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}


.ejb-section .ejb-badge--gold {
  background: rgba(255,229,0,0.24);
  border: 1px solid #e2ce50;
  color:#000000;
}
.ejb-section .ejb-badge--gold svg { stroke:#16181d; }
.ejb-section .ejb-badge--gold:hover {
  background: rgba(255,229,0,0.4);
  border-color: #e2ce50;
}


.ejb-section .ejb-badge--subtle {
  background:#fff;
  border: 1px solid #d9dce2;
  color:#4a4f59;
}
.ejb-section .ejb-badge--subtle svg { stroke:#4a4f59; }
.ejb-section .ejb-badge--subtle:hover {
  background:#fff;
  border-color: #d9dce2;
}


.ejb-section a.ejb-badge {
  text-decoration: none;
  cursor: pointer;
}
.ejb-section a.ejb-badge::before { content: none; }
.ejb-section a.ejb-badge::after { content: none; }
.ejb-section a.ejb-badge:hover {
  text-decoration: none;
}


.ejb-section .ejb-cta-wrap {
  text-align: center;
  padding: 1.5em 2em;
  border-top: 1px solid #d9dce2;
  background: rgba(255,229,0,0.18);
}
.ejb-section a.ejb-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  padding: 0.75em 2em;
  border-radius: 10px;
  font-family:inherit;
  font-size: 0.88em;
  font-weight: 600;
  text-decoration: none;
  text-align: center;
  background: #ffe500;
  color: #000;
  border: 1px solid #d6be00;
  transition: all 0.25s ease;
  cursor: pointer;
  line-height: 1.3;
  -webkit-tap-highlight-color: transparent;
}
.ejb-section a.ejb-cta::before { content: none; }
.ejb-section a.ejb-cta::after { content: none; }
.ejb-section a.ejb-cta:hover {
  background: #ffd000;
  border-color: #d6be00;
}
.ejb-section a.ejb-cta svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}


.otl-section{max-width:100%;margin:0 auto;padding:2em 0}
.otl-section h2{color:#16181d;font-size:clamp(1em,2.2vw,1.35em);text-align:center;margin:0 0 .25em;font-weight:700;word-wrap:break-word;overflow-wrap:break-word}
.otl-section h2 .otl-r{font-size:.6em;vertical-align:super;font-weight:400;color:#4a4f59}
.otl-subheader{text-align:center;color:#16181d;font-size:clamp(.78em,1.5vw,.88em);line-height:1.55;margin:0 auto 1.2em;padding:0 1em;white-space:nowrap}
@media(max-width:720px){.otl-subheader{white-space:normal}}
.otl-stage{position:relative;width:100%;height:620px;overflow:hidden;user-select:none;-webkit-user-select:none;border:1px solid #e2ce50;border-radius:16px}
.otl-track{position:absolute;top:0;left:0;height:100%;will-change:transform}
.otl-ico{position:absolute;pointer-events:none;transition:transform .5s cubic-bezier(.25,.1,.25,1),opacity .5s}
.otl-yr{position:absolute;font-family:inherit;font-size:10px;font-weight:600;color:#16181d;pointer-events:none;transform:translateX(-50%);opacity:.35;transition:opacity .5s}
.otl-ev{position:absolute;top:0;height:100%;cursor:default;z-index:5}
.otl-stem{position:absolute;width:1px;background:#fff;opacity:0;left:0;transform:translateX(-50%);pointer-events:none}
.otl-card{position:absolute;width:220px;opacity:0;pointer-events:none;padding:12px 14px;border-radius:9px;border:1px solid #e2ce50;background:#ffffff;z-index:10;font-family:inherit}
.otl-card-ico{margin-bottom:6px;height:20px}
.otl-card-yr{font-size:10px;font-weight:700;color:#000000;margin-bottom:3px}
.otl-card-ti{font-size:12px;font-weight:600;color:#16181d;margin-bottom:4px;line-height:1.35}
.otl-card-de{font-size:11.5px;color:#16181d;line-height:1.5}

.ki-fc__window,.ki-px__window{border-color:#c4c9d2!important;box-shadow:0 24px 60px rgba(22,24,29,.16),0 2px 6px rgba(22,24,29,.08)!important}
.ki-px__modal{border-color:#c4c9d2!important}
.ki-fc__mark,.ki-al__mark{background:#16181d!important}
.ki-fc__track,.ki-al__track{background:rgba(22,24,29,.12)!important}
.ki-px__btn{background:#f1f2f4!important;border:1px solid #c4c9d2}
.ki-px__app{background:#e9ecf0!important}.ki-px__bg::after{background:rgba(233,236,240,.55)!important}
.ki-px__modal{box-shadow:0 24px 60px rgba(22,24,29,.22)!important}
.ki-fc__alert{background:#fff6b8!important}
.isx .ssm-section .ssm-zoom .ssm-lupe{background:none!important;box-shadow:none!important;border-radius:0!important;width:16px!important;height:16px!important;top:auto!important;bottom:0!important;right:0!important}
.isx .ssm-section .ssm-zoom .ssm-lupe svg{width:15px!important;height:15px!important;stroke:#16181d!important;stroke-width:2.4!important}
/* Boardinghouse Heins ruht / Restaurant Heins speist im H1 (Master quellen/bausteine/m-heins-h1.html, ab v1.0.41, Layout B, ab v1.0.42 Lounge groß, Text oben bündig) */
.tp-sec .isx-wrap>.hbr,.hbr{margin-top:56px;padding-top:48px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:start}
.hbr-head .tp-over{display:block;margin-bottom:10px;text-box:trim-start cap alphabetic}
.tp-sec .hbr .hbr-head h3,.hbr-head h3{font-size:clamp(1.45rem,2.2vw,1.9rem);margin:0 0 14px}
.hbr-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.hbr-grid li{margin:0;padding:0}
.hbr-grid li::before{content:none}
.hbr-grid .hbr-main{grid-column:1/-1}
.hbr-grid figure{margin:0}
.hbr-grid picture{display:block;border-radius:18px;overflow:hidden;background:var(--paper);aspect-ratio:4/3}
.hbr-grid .hbr-main picture{aspect-ratio:16/9}
.hbr-grid img{display:block;width:100%;height:100%;object-fit:cover}
.hbr-grid figcaption{margin-top:6px;font-size:.8rem;line-height:1.4;color:var(--slate)}
@media (max-width:1080px){.tp-sec .isx-wrap>.hbr,.hbr{grid-template-columns:1fr;gap:28px}}
@media (max-width:720px){.tp-sec .isx-wrap>.hbr,.hbr{margin-top:40px;padding-top:36px}.hbr-grid{grid-template-columns:1fr;gap:16px}.hbr-grid .hbr-main picture{aspect-ratio:4/3}}

.ejb-section .ejb-groups {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.1em 1.4em;
  padding: 1em 2em 1.6em;
}
.ejb-section .ejb-group {
  min-width: 0;
  border-top: 2px solid #ffe500;
  padding-top: 0.8em;
}
.ejb-section .ejb-gh {
  font-size: 0.66em;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #16181d;
  margin: 0 0 0.7em;
}
.ejb-section .ejb-gchips {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45em;
}
.ejb-section .ejb-groups .ejb-badge {
  white-space: normal;
  text-align: left;
  border-radius: 12px;
  align-items: flex-start;
}
.ejb-section .ejb-groups .ejb-badge svg { margin-top: 0.2em; }
@media (max-width: 900px) {
  .ejb-section .ejb-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .ejb-section .ejb-groups { grid-template-columns: 1fr; padding: 0.8em 1.2em 1.4em; }
}
