/* Partner Landing – additive styles
   Hauptdesign kommt von: https://ti-gateway.health/static/css/ti-gateway_health.css
*/

:root{
  --lp-border: var(--ehc-border, #eaf3f3);
  --lp-text: var(--ehc-text, #213030);
  --lp-muted: var(--ehc-text-muted, #526566);
  --lp-ring: var(--ring, rgba(12,184,182,.18));
}

/* Sections: spacing */
#partner-landing .lp-section{
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
@media (min-width: 992px){
  #partner-landing .lp-section{
    padding-top: 3.25rem;
    padding-bottom: 3.25rem;
  }
}

/* ---------------------------------
   HERO: groß + gefüllt
   --------------------------------- */
#partner-landing .partner-hero{
  padding-top: 5.5rem;
  padding-bottom: 5.5rem;
  min-height: 56vh;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--lp-border);

  background:
    radial-gradient(900px 300px at 20% 0%, rgba(12,184,182,.18), transparent 60%),
    radial-gradient(700px 260px at 90% 20%, rgba(252,219,104,.35), transparent 55%),
    linear-gradient(180deg,#f6fffe 0%, #ffffff 70%);
}
@media (min-width: 992px){
  #partner-landing .partner-hero{
    padding-top: 6.5rem;
    padding-bottom: 6.5rem;
    min-height: 62vh; /* vorher 78vh */
  }
}

/* Trust-Leiste im Hero */
#partner-landing .partner-trust{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem .75rem;
}
#partner-landing .partner-trust__item{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.35rem .6rem;
  border:1px solid var(--lp-border);
  border-radius:999px;
  background:#fff;
  color: var(--lp-muted);
  font-weight:700;
  font-size:.9rem;
}

/* Hero Card rechts */
#partner-landing .lp-hero-card{
  border: 1px solid var(--lp-border);
  border-radius: 1.25rem;
  background: #fff;
  padding: 1.25rem 1.25rem 1.15rem;
  box-shadow: 0 20px 40px rgba(2,41,40,.08);
}

#partner-landing .lp-hero-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 1rem;
  flex-wrap:wrap;
  padding-bottom: .9rem;
  border-bottom: 1px solid var(--lp-border);
  margin-bottom: .9rem;
}

#partner-landing .lp-hero-price__val{
  font-weight: 900;
  font-size: clamp(42px, 6vw, 56px);
  line-height: 1;
  color: var(--brand-strong, #075F5E);
}
#partner-landing .lp-hero-price__sub{
  color: var(--lp-muted);
  font-weight: 700;
  margin-top: .25rem;
}

#partner-landing .lp-hero-chip{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.4rem .65rem;
  border-radius:999px;
  background: rgba(12,184,182,.08);
  border: 1px solid rgba(12,184,182,.18);
  color: var(--brand-strong, #075F5E);
  font-weight: 800;
  white-space: nowrap;
}

#partner-landing .lp-hero-bullets{
  list-style:none;
  padding:0;
  margin:0 0 .75rem 0;
  display:grid;
  gap:.55rem;
  color: var(--lp-muted);
  font-weight: 600;
}

#partner-landing .lp-hero-bullets .dot{
  display:inline-block;
  width:10px; height:10px;
  border-radius:999px;
  background: linear-gradient(135deg,var(--brand, #0CB8B6), var(--brand-2, #0aa3a1));
  margin-right: .55rem;
  translate: 0 -1px;
}

#partner-landing .lp-hero-footnote{
  color: var(--lp-muted);
  font-size: .9rem;
}

/* ---------------------------------
   Cards
   --------------------------------- */
#partner-landing .lp-card{
  border:1px solid var(--lp-border);
  border-radius: 1rem;
  box-shadow: 0 12px 26px rgba(2,41,40,.06);
  padding: 1.25rem 1.25rem 1rem;
}
@media (min-width: 992px){
  #partner-landing .lp-card{ padding: 1.5rem 1.5rem 1.25rem; }
}

#partner-landing .lp-hr{
  border:0;
  border-top:1px solid var(--lp-border);
  opacity:1;
}

/* Mini */
#partner-landing .lp-mini{
  display:flex;
  gap:.75rem;
  align-items:flex-start;
  padding:.9rem 1rem;
  border:1px solid var(--lp-border);
  border-radius: .9rem;
  background: #fff;
}
#partner-landing .lp-mini__icon{
  width:42px;height:42px;
  border-radius:.75rem;
  display:grid;place-items:center;
  border:1px solid var(--lp-border);
  background:#f8fffe;
  color: var(--brand, #0CB8B6);
  font-size:1.1rem;
}
#partner-landing .lp-mini__title{ font-weight:800; color: var(--lp-text); margin-bottom: .15rem; }
#partner-landing .lp-mini__text{ color: var(--lp-muted); font-size:.95rem; }

/* Note */
#partner-landing .lp-note{
  display:flex;
  gap:.5rem;
  align-items:flex-start;
  background: #f8fffe;
  border:1px dashed rgba(12,184,182,.35);
  border-radius: .9rem;
  padding: .8rem 1rem;
  color: var(--lp-muted);
  font-weight:600;
}

/* Logo slot */
#partner-landing .lp-logo-card .lp-logo-slot{
  border:1px solid var(--lp-border);
  border-radius: 1rem;
  background: linear-gradient(180deg,#ffffff 0%, #f8fffe 100%);
  min-height: 180px;
  display:grid;
  place-items:center;
  overflow:hidden;
}
#partner-landing .lp-logo-slot img{
  max-width: 90%;
  max-height: 140px;
  object-fit: contain;
}
#partner-landing .lp-logo-slot__placeholder{
  color: var(--lp-muted);
  font-weight:800;
  display:flex;
  align-items:center;
  gap:.5rem;
}

/* ---------------------------------
   Vorteile: Feature-Boxen gleiche Höhe
   --------------------------------- */
#partner-landing .lp-feature{
  display:flex;
  gap:.75rem;
  align-items:flex-start;
  padding:.9rem 1rem;
  border:1px solid var(--lp-border);
  border-radius: .9rem;
  background:#fff;
  height: 100%;
}
#partner-landing .lp-feature__title{ font-weight:800; color: var(--lp-text); margin-bottom:.15rem; }
#partner-landing .lp-feature__text{ color: var(--lp-muted); font-size:.95rem; }

#partner-landing #vorteile .lp-feature-grid > [class*="col-"]{ display:flex; }
#partner-landing #vorteile .lp-feature-grid > [class*="col-"] > .lp-feature{ flex: 1; }

/* Rechte Sidebox volle Höhe */
#partner-landing #vorteile .card.lp-card > .row{ align-items: stretch; }
#partner-landing #vorteile .card.lp-card > .row > .col-lg-5{ display:flex; }

#partner-landing #vorteile .lp-sidebox{
  border:1px solid var(--lp-border);
  border-radius: 1rem;
  background: #fff;
  padding: 1rem 1rem .9rem;
  flex:1;
  display:flex;
  flex-direction: column;
}

/* CTA im Kopf der Box */
#partner-landing .lp-sidebox__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.75rem;
}

#partner-landing .lp-sidebox__title{
  font-weight:800;
  color: var(--lp-text);
  margin-bottom: 0; /* wichtig: kein extra Abstand, weil Head margin-bottom hat */
}

#partner-landing .lp-sidebox__cta{
  white-space: nowrap;
  border-radius: 999px;
  padding: .45rem .75rem;
}

/* Mobile: CTA unter Titel */
@media (max-width: 575.98px){
  #partner-landing .lp-sidebox__head{
    flex-direction: column;
    align-items: stretch;
  }
  #partner-landing .lp-sidebox__cta{
    width: 100%;
    justify-content: center;
  }
}

#partner-landing .lp-steps{
  margin:0;
  padding-left: 1.1rem;
  color: var(--lp-muted);
}

/* ---------------------------------
   Formular: Input-Rand deutlicher + Checkbox Brand
   --------------------------------- */
#partner-landing .form-control{
  border: 1.5px solid rgba(7,95,94,.28);
  border-radius: .95rem;
  padding: .78rem .95rem;
  background:#fff;
}
#partner-landing .form-control:hover{ border-color: rgba(7,95,94,.40); }
#partner-landing .form-control:focus{
  border-color: rgba(12,184,182,.70);
  box-shadow: 0 0 0 .25rem var(--lp-ring);
}

#partner-landing input[type="checkbox"]{ accent-color: var(--brand, #0CB8B6); }

#partner-landing .form-check-input{
  border: 1.5px solid rgba(7,95,94,.28);
}
#partner-landing .form-check-input:checked{
  background-color: var(--brand, #0CB8B6);
  border-color: var(--brand, #0CB8B6);
}
#partner-landing .form-check-input:focus{
  box-shadow: 0 0 0 .25rem var(--lp-ring);
  border-color: rgba(12,184,182,.70);
}

/* Checklist */
#partner-landing .lp-fieldset{
  border:1px solid var(--lp-border);
  border-radius: 1rem;
  padding: 1rem 1rem .85rem;
  background:#fff;
}
#partner-landing .lp-legend{
  float:none;
  width:auto;
  padding: 0 .5rem;
  margin: 0 0 .75rem;
  font-weight: 900;
  color: var(--lp-text);
}
#partner-landing .lp-checklist{ display:grid; gap: .6rem; }
#partner-landing .lp-check{
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  padding: .65rem .75rem;
  border:1px solid var(--lp-border);
  border-radius: .9rem;
  background: #fff;
  cursor:pointer;
}
#partner-landing .lp-check input{ margin-top: .2rem; }
#partner-landing .lp-check:hover{
  border-color: rgba(12,184,182,.55);
  box-shadow: 0 8px 18px rgba(12,184,182,.10);
}

#partner-landing .lp-form-actions .btn{ min-width: 210px; }

/* Validation */
#partner-landing .was-validated .form-control:invalid{ border-color: var(--danger, #DC2626); }
#partner-landing .was-validated .form-control:invalid:focus{
  box-shadow: 0 0 0 .25rem rgba(220,38,38,.18);
}

/* ---------------------------------
   Kontakt-Aside (sticky) + Person
   --------------------------------- */
#partner-landing .lp-aside{
  top: calc(var(--ehc-nav-h-lg, 74px) + 16px) !important;
}

#partner-landing .lp-contact__row{
  display:flex;
  align-items:center;
  gap:.35rem;
  padding:.35rem 0;
}
#partner-landing .lp-contact__row a{
  color: var(--brand-strong, #075F5E);
  text-decoration:none;
  border-bottom:1px dotted rgba(12,184,182,.45);
}
#partner-landing .lp-contact__row a:hover{
  color: var(--brand, #0CB8B6);
  border-bottom-color: var(--brand, #0CB8B6);
}

/* Marco card */
#partner-landing .lp-contact-person{
  display:flex;
  align-items:center;
  gap: .9rem;
  padding: .9rem 1rem;
  border: 1px solid var(--lp-border);
  border-radius: 1rem;
  background: #fff;
  margin-bottom: 1rem;
  box-shadow: 0 12px 26px rgba(2,41,40,.06);
}
#partner-landing .lp-person-img{
  width: 72px;
  height: 72px;
  border-radius: 18px;
  object-fit: cover;
  border: 1px solid var(--lp-border);
  filter: drop-shadow(0 10px 22px rgba(0,0,0,.10));
}
#partner-landing .lp-person-name{
  font-weight: 900;
  color: var(--lp-text);
  line-height: 1.1;
}
#partner-landing .lp-person-role{
  color: var(--lp-muted);
  font-weight: 600;
  font-size: .95rem;
}

/* Compact sidebox (kontakt) */
#partner-landing .lp-sidebox--compact{
  border:1px solid var(--lp-border);
  border-radius: 1rem;
  background: #fff;
  padding: .9rem 1rem .8rem;
}
#partner-landing .lp-bullets{
  margin:0;
  padding-left: 1.1rem;
  color: var(--lp-muted);
}

/* Rechte Sidebox: volle Höhe + Button unten */
#partner-landing #vorteile .lp-sidebox{
  border:1px solid var(--lp-border);
  border-radius: 1rem;
  background: #fff;
  padding: 1rem 1rem .9rem;

  flex:1;
  display:flex;
  flex-direction: column;
}

/* Button am Boden der Box */
#partner-landing #vorteile .lp-sidebox__bottomcta{
  margin-top: auto;       /* drückt den Button nach unten */
  margin-bottom: 0;
}

/* Overlay */
#partner-landing .lp-overlay[hidden]{ display:none !important; }

#partner-landing .lp-overlay{
  position: fixed;
  inset: 0;
  z-index: 2000;
}

#partner-landing .lp-overlay__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(2, 24, 24, .55);
  backdrop-filter: blur(4px);
}

#partner-landing .lp-overlay__card{
  position: relative;
  max-width: 560px;
  margin: 10vh auto 0;
  background: #fff;
  border: 1px solid var(--lp-border);
  border-radius: 1.25rem;
  padding: 1.25rem 1.25rem 1rem;
  box-shadow: 0 30px 70px rgba(0,0,0,.18);
}

#partner-landing .lp-overlay__icon{
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  margin-bottom: .75rem;
  background: rgba(12,184,182,.10);
  border: 1px solid rgba(12,184,182,.20);
  color: var(--brand-strong, #075F5E);
  font-size: 1.6rem;
}

/* Scroll sperren wenn Overlay offen */
body.lp-overlay-open{
  overflow: hidden;
}
