/* Requires: /assets/css/public-core.css */

/* -----------------------------
   Public partner profile v16
   Clean profile-only stylesheet.
   Core is intentionally untouched.
   ----------------------------- */

.public-partner-body{
  background:var(--pp-bg);
  color:var(--pp-text);
}

.public-partner-shell{
  width:min(calc(100% - clamp(36px,7vw,96px)), var(--pp-max));
  margin-inline:auto;
}

/* Hero: stable two-column grid, no overlay positioning */
.public-partner-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:#fffdf8;
  background:linear-gradient(180deg,var(--pp-navy) 0%,var(--pp-navy-deep) 100%);
}

.public-partner-cover{
  position:absolute;
  inset:0;
  z-index:0;
  background-position:center center;
  background-size:cover;
  opacity:.45;
  filter:saturate(.9) contrast(1.08) brightness(.82);
}

.public-partner-cover::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(6,27,42,.82) 0%,rgba(6,27,42,.66) 44%,rgba(6,27,42,.90) 100%),
    linear-gradient(180deg,rgba(6,27,42,.30) 0%,rgba(6,27,42,.72) 100%);
}

.public-partner-hero__bg{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(circle at 82% 0%,rgba(255,255,255,.045),transparent 24rem),
    linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.012) 1px,transparent 1px);
  background-size:auto,56px 56px,56px 56px;
}

.public-partner-hero__inner{
  position:relative;
  z-index:2;
  padding-block:clamp(64px,7vw,104px);
}

.public-partner-hero-layout{
  display:grid;
  grid-template-columns:minmax(210px,280px) minmax(0,760px);
  align-items:center;
  justify-content:center;
  gap:clamp(3rem,7vw,7rem);
}

.public-partner-avatar-wrap{
  width:clamp(210px,18vw,280px);
  aspect-ratio:1/1;
  border-radius:999px;
  padding:8px;
  background:linear-gradient(135deg,var(--pp-gold-soft),var(--pp-gold));
  box-shadow:0 26px 70px rgba(0,0,0,.24);
  overflow:hidden;
}

.public-partner-avatar-wrap img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
  border-radius:inherit;
  border:5px solid rgba(255,253,248,.94);
}

.public-partner-profile-content{
  min-width:0;
  align-self:center;
}

.public-partner-profile-content h1{
  margin:0;
  color:#fffdf8;
  font-size:clamp(3.05rem,4.8vw,5.35rem);
  line-height:.92;
  letter-spacing:-.07em;
  font-weight:560;
  text-wrap:balance;
}

.public-partner-titleline{
  margin:clamp(.5rem,.9vw,.75rem) 0 0;
  color:rgba(255,253,248,.93);
  font-size:clamp(1.02rem,1.08vw,1.22rem);
  line-height:1.38;
  letter-spacing:-.018em;
  font-weight:780;
}

.public-partner-intro{
  max-width:760px;
  margin:clamp(.8rem,1.2vw,1rem) 0 0;
  color:rgba(255,253,248,.80);
  font-size:clamp(1rem,1vw,1.12rem);
  line-height:1.62;
  font-weight:480;
}

.public-partner-actions{
  display:flex;
  align-items:center;
  gap:.85rem;
  flex-wrap:wrap;
  margin-top:clamp(1.2rem,1.8vw,1.6rem);
}

.public-partner-button{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.82rem 1.16rem;
  border:0;
  border-radius:14px;
  background:linear-gradient(135deg,#d8bc82 0%,var(--pp-gold) 100%);
  color:var(--pp-navy);
  text-decoration:none;
  font-weight:900;
  line-height:1;
  box-shadow:0 18px 48px rgba(198,165,112,.18);
  transition:transform .16s ease,filter .16s ease,box-shadow .16s ease;
}

.public-partner-button:hover{
  transform:translateY(-1px);
  filter:brightness(1.025);
  box-shadow:0 24px 64px rgba(198,165,112,.25);
}

.public-partner-button--ghost{
  background:linear-gradient(135deg,#d8bc82 0%,var(--pp-gold) 100%);
  color:var(--pp-navy);
}

.public-partner-socials-mobile{display:none;}

/* Social rail / back to top */
.public-partner-social-rail{
  position:absolute;
  top:var(--pp-social-start-top, 520px);
  right:clamp(18px,2.2vw,32px);
  z-index:70;
  display:grid;
  gap:.72rem;
}

.public-partner-social-rail.is-sticky{
  position:fixed;
  top:112px;
}

.public-partner-social-rail a,
.public-partner-backtop{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--pp-navy);
  color:#fffdf8;
  border:1px solid rgba(198,165,112,.28);
  box-shadow:0 14px 32px rgba(11,44,65,.16);
  text-decoration:none;
}

.public-partner-social-rail a:hover,
.public-partner-backtop:hover{
  background:var(--pp-gold);
  color:var(--pp-navy);
}

.public-partner-social-rail svg,
.public-partner-backtop svg{
  width:20px;
  height:20px;
  display:block;
  fill:currentColor;
}

.public-partner-backtop{
  position:fixed;
  right:clamp(18px,2.2vw,32px);
  bottom:clamp(18px,2.2vw,30px);
  z-index:95;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(12px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
}

.public-partner-backtop.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}

/* Tabs */
.public-partner-section{
  position:relative;
}

.public-partner-tabs-section{
  background:#fffdf8;
  padding-block:clamp(28px,2.6vw,36px) clamp(44px,5vw,72px);
  border-bottom:1px solid rgba(11,44,65,.065);
}

.public-partner-tabs{
  max-width:980px;
  margin-inline:auto;
}

.public-partner-tab-list{
  display:flex;
  justify-content:center;
  align-items:flex-end;
  gap:clamp(1.1rem,3vw,2.4rem);
  overflow:auto;
  scrollbar-width:none;
}

.public-partner-tab-list::-webkit-scrollbar{display:none;}

.public-partner-tab{
  appearance:none;
  border:0;
  background:transparent;
  color:rgba(11,44,65,.48);
  cursor:pointer;
  padding:0 0 .58rem;
  font:inherit;
  font-size:clamp(1rem,.96rem + .2vw,1.1rem);
  font-weight:900;
  letter-spacing:.01em;
  white-space:nowrap;
  box-shadow:inset 0 -2px 0 transparent;
}

.public-partner-tab.is-active{
  color:var(--pp-navy);
  box-shadow:inset 0 -2px 0 var(--pp-gold);
}

.public-partner-tab-panels{
  padding-top:clamp(1rem,1.8vw,1.45rem);
}

.public-partner-tab-panel{
  display:none;
  max-width:900px;
  margin:0 auto;
  color:var(--pp-muted);
  font-size:clamp(1.02rem,1rem + .18vw,1.15rem);
  line-height:1.75;
}

.public-partner-tab-panel.is-active{display:block;}
.public-partner-tab-panel p{margin:0 0 1rem;}
.public-partner-tab-panel p:last-child{margin-bottom:0;}

/* Flexible content modules */
.public-partner-content-section{
  padding-block:clamp(64px,7vw,104px);
  border-bottom:1px solid rgba(11,44,65,.065);
}

.public-partner-content-section--tone-1{background:#f3eee6;}
.public-partner-content-section--tone-2{background:#fffdf8;}
.public-partner-content-section--tone-3{background:#eef0ec;}

.public-partner-content-module{
  max-width:1060px;
}

.public-partner-content-module__head{
  text-align:center;
  margin-bottom:clamp(1.4rem,2.6vw,2.2rem);
}

.public-partner-content-module__head h2,
.public-partner-contact h2{
  margin:0;
  color:var(--pp-navy);
  font-size:clamp(2.15rem,3.8vw,4.25rem);
  line-height:1.02;
  letter-spacing:-.055em;
  font-weight:620;
  text-wrap:balance;
}

.public-partner-content-module__body{
  max-width:920px;
  margin-inline:auto;
  text-align:left;
}

.public-partner-flow-text{
  color:var(--pp-muted);
  font-size:clamp(1.02rem,1rem + .2vw,1.16rem);
  line-height:1.78;
}

.public-partner-flow-text p{
  margin:0 0 1.05rem;
}

.public-partner-flow-text p:last-child{margin-bottom:0;}

/* References: centered exception */
.public-partner-content-section--references .public-partner-content-module__body,
.public-partner-content-module--center .public-partner-content-module__body,
.public-partner-testimonial,
.public-partner-testimonial-head{
  text-align:center;
}

.public-partner-reference-note{
  max-width:900px;
  margin:0 auto clamp(2rem,4vw,3rem);
  color:rgba(11,44,65,.58);
  font-size:clamp(1rem,.98rem + .12vw,1.08rem);
  line-height:1.65;
}

.public-partner-testimonials{
  max-width:1040px;
  margin-inline:auto;
}

.public-partner-testimonial{
  display:none;
  color:rgba(11,44,65,.64);
  font-size:clamp(1.05rem,1.1vw,1.22rem);
  line-height:1.75;
}

.public-partner-testimonial.is-featured{display:block;}

.public-partner-testimonial-mark{
  height:2.4rem;
  color:rgba(11,44,65,.16);
  font-family:Georgia,serif;
  font-size:5rem;
  line-height:.65;
}

.public-partner-testimonial p{
  max-width:980px;
  margin:0 auto 1.25rem;
}

.public-partner-stars{
  margin:1rem 0;
  color:#e1b52f;
  letter-spacing:.08em;
}

.public-partner-testimonial footer{
  max-width:900px;
  margin:1.1rem auto 0;
  padding-top:1rem;
  border-top:1px solid rgba(11,44,65,.10);
  display:grid;
  gap:.2rem;
  justify-content:center;
  color:rgba(11,44,65,.58);
}

.public-partner-testimonial-author{
  display:grid;
  gap:.18rem;
  text-align:center;
}

.public-partner-testimonial-author strong{color:rgba(11,44,65,.76);}
.public-partner-testimonial-author em{font-style:normal;}

.public-partner-testimonial-dots{
  display:flex;
  justify-content:center;
  gap:.6rem;
  margin-top:1.7rem;
}

.public-partner-testimonial-dots button{
  width:10px;
  height:10px;
  padding:0;
  border:0;
  border-radius:999px;
  background:rgba(11,44,65,.18);
  cursor:pointer;
}

.public-partner-testimonial-dots button.is-active{background:var(--pp-navy);}
.public-partner-testimonial-dots button:focus-visible{outline:2px solid var(--pp-gold);outline-offset:4px;}
.public-partner-empty-card{padding:1.2rem;border-radius:18px;border:1px solid var(--pp-line);background:#fff;color:var(--pp-muted);text-align:center;}

/* Quote and contact are fixed areas */
.public-partner-quote-strip{
  padding-block:clamp(2.8rem,5vw,4rem);
  color:#fffdf8;
  background:linear-gradient(180deg,var(--pp-navy) 0%,var(--pp-navy-deep) 100%);
  text-align:center;
}

.public-partner-quote-strip p{
  margin:0 0 1rem;
  color:#fffdf8;
  font-size:clamp(1.7rem,2.8vw,2.5rem);
  line-height:1.1;
  letter-spacing:-.04em;
  font-weight:700;
}

.public-partner-quote-strip blockquote{
  max-width:900px;
  margin:0 auto;
  color:#fffdf8;
  font-size:clamp(1.08rem,1.35vw,1.3rem);
  line-height:1.55;
  font-weight:760;
  font-style:italic;
}

.public-partner-contact{
  background:#fffdf8;
  padding-block:clamp(62px,7vw,96px);
}

.public-partner-contact-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,360px);
  gap:clamp(2rem,5vw,4rem);
  align-items:center;
  max-width:1060px;
}

.public-partner-contact-content h2{
  text-align:center;
  margin-bottom:clamp(1.4rem,2.4vw,2rem);
}

.public-partner-contact-content .public-partner-flow-text,
.public-partner-contact-content p{
  color:var(--pp-muted);
  text-align:left;
}

.public-partner-contact-actions{
  display:grid;
  gap:.8rem;
  align-content:center;
}

/* Fallback footer, only used if site-footer.php is missing */
.public-partner-footer{
  padding:1.4rem 0;
  background:var(--pp-navy-deep);
  color:rgba(255,253,248,.64);
}
.public-partner-footer .public-partner-shell{display:flex;justify-content:space-between;gap:1rem;align-items:center;}
.public-partner-footer a{color:var(--pp-gold-soft);font-weight:850;text-decoration:none;}

@media(max-width:1040px){
  .public-partner-hero-layout{
    grid-template-columns:minmax(180px,240px) minmax(0,1fr);
    gap:clamp(2rem,5vw,4rem);
  }
  .public-partner-avatar-wrap{width:clamp(180px,22vw,240px);}
  .public-partner-social-rail,.public-partner-social-rail.is-sticky{display:none;}
  .public-partner-socials-mobile{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-top:1rem;}
  .public-partner-socials-mobile a{display:inline-flex;align-items:center;min-height:34px;padding:.42rem .7rem;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(255,255,255,.045);color:rgba(255,253,248,.78);font-size:.84rem;font-weight:850;text-decoration:none;}
}

@media(max-width:760px){
  .public-partner-shell{width:min(calc(100% - 36px),var(--pp-max));}
  .public-partner-hero__inner{padding-block:clamp(42px,10vw,64px);}
  .public-partner-hero-layout{grid-template-columns:1fr;text-align:left;gap:1.3rem;}
  .public-partner-avatar-wrap{width:170px;}
  .public-partner-profile-content h1{font-size:clamp(2.9rem,14vw,4.7rem);}
  .public-partner-actions{display:grid;grid-template-columns:1fr;}
  .public-partner-button{width:100%;}
  .public-partner-tabs-section{padding-top:28px;}
  .public-partner-tab-list{justify-content:flex-start;gap:1.35rem;}
  .public-partner-tab-panel{font-size:1.04rem;}
  .public-partner-content-section{padding-block:clamp(52px,13vw,76px);}
  .public-partner-content-module__head h2,.public-partner-contact h2{font-size:clamp(2.1rem,10vw,3.2rem);}
  .public-partner-contact-layout{grid-template-columns:1fr;}
  .public-partner-footer .public-partner-shell{display:grid;}
}


/* --------------------------------------------------------------------------
   V17 – Hero-Overlay heller + einheitlichere Modul-Abstände
   Core bleibt unverändert.
   -------------------------------------------------------------------------- */
:root{
  --pp-profile-section-space: clamp(42px, 4.7vw, 68px);
  --pp-profile-section-space-mobile: clamp(38px, 10vw, 58px);
}

/* Hero-Hintergrundbild besser sichtbar machen */
.public-partner-cover{
  opacity:.68 !important;
  filter:saturate(.96) contrast(1.06) brightness(.92) !important;
}

.public-partner-cover::after{
  background:
    linear-gradient(90deg,rgba(6,27,42,.70) 0%,rgba(6,27,42,.52) 42%,rgba(6,27,42,.76) 100%),
    linear-gradient(180deg,rgba(6,27,42,.18) 0%,rgba(6,27,42,.48) 100%) !important;
}

.public-partner-hero__bg{
  opacity:.62;
}

/* Einheitliche Außenabstände der Inhaltsbereiche */
.public-partner-tabs-section,
.public-partner-content-section{
  padding-block: var(--pp-profile-section-space) !important;
}

/* Tabs: Reiter und Text gehören optisch enger zusammen */
.public-partner-tab-panels{
  padding-top: clamp(.75rem, 1.3vw, 1.05rem) !important;
}

/* Module: Überschrift etwas näher zum Text, aber weiterhin ruhig */
.public-partner-content-module__head{
  margin-bottom: clamp(1rem, 1.8vw, 1.45rem) !important;
}

/* Alle normalen Module behalten gleichmäßige Innenlogik */
.public-partner-content-module__body{
  max-width: 920px;
}

/* Feste Bereiche behalten eigenen Charakter, aber nicht übermäßig groß */
.public-partner-contact{
  padding-block: var(--pp-profile-section-space) !important;
}

.public-partner-quote-strip{
  padding-block: clamp(2.4rem, 4.3vw, 3.4rem) !important;
}

@media(max-width:760px){
  .public-partner-tabs-section,
  .public-partner-content-section,
  .public-partner-contact{
    padding-block: var(--pp-profile-section-space-mobile) !important;
  }

  .public-partner-tab-panels{
    padding-top: .85rem !important;
  }

  .public-partner-content-module__head{
    margin-bottom: 1rem !important;
  }
}
