/* Anbieterprofile, Ranking, Zertifikat, Profilformular. Nutzt die Tokens aus portal.css (:root). */
.st{--st:var(--wald)}
.st-bronze{--st:#7A8F8A}.st-silber{--st:#2F8F7B}.st-gold{--st:#1D4D47}.st-platin{--st:#B8862B}
.stufe{display:inline-flex;align-items:center;gap:.4rem;font:800 .8rem var(--display);letter-spacing:.02em;text-transform:uppercase;padding:.3rem .7rem .3rem .35rem;border-radius:999px;background:#fff;border:1.5px solid var(--st);color:var(--tinte);text-decoration:none;white-space:nowrap}
.stufe svg{flex:none}
.stufe.leer{border-color:var(--linie);color:var(--mut);padding-left:.7rem}

/* ── Öffentliches Profil ───────────────────────── */
.ap-banner{height:240px;background:linear-gradient(120deg,var(--wald-d),var(--wald) 60%,#2A6A61);position:relative;overflow:hidden}
.ap-banner img{width:100%;height:100%;object-fit:cover;display:block}
.ap-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,33,31,0) 40%,rgba(20,33,31,.35))}
.ap-id{display:flex;gap:var(--s5);align-items:flex-start;margin-top:var(--s4);position:relative;z-index:1;flex-wrap:wrap}
.ap-logo{width:132px;height:132px;flex:none;margin-top:-80px;background:#fff;border:1px solid var(--linie);border-radius:var(--r3);box-shadow:0 6px 24px rgba(20,33,31,.12);display:flex;align-items:center;justify-content:center;padding:12px;overflow:hidden}
.ap-logo img{max-width:100%;max-height:100%;object-fit:contain}
.ap-logo span{font:800 3rem var(--display);color:var(--wald)}
.ap-name{flex:1;min-width:240px}
.ap-name h1{margin:0 0 .2em;font-size:clamp(1.7rem,3.6vw,2.6rem);overflow-wrap:anywhere}
.ap-name .ort{color:var(--mut);margin:0 0 var(--s3)}
.ap-badges{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}
.ap-aktion{display:flex;gap:var(--s3);flex-wrap:wrap;padding-top:6px}
.ap-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3);margin:var(--s5) 0}
.ap-kpis div{background:var(--grund);border-radius:var(--r2);padding:var(--s3) var(--s4);min-width:0}
.ap-kpis b{display:block;font:800 1.5rem var(--display);line-height:1.2}
.ap-kpis span{color:var(--mut);font-size:.88rem}
.ap-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s6);align-items:start}
.ap-grid > aside{display:flex;flex-direction:column;gap:var(--s4);position:sticky;top:84px}
.ap-sek{margin:0 0 var(--s6)}
.ap-sek h2{font-size:clamp(1.3rem,2.4vw,1.7rem)}
.ap-text{white-space:pre-line;max-width:70ch}
.ap-chips{display:flex;flex-wrap:wrap;gap:var(--s2);list-style:none;margin:0;padding:0}
.ap-chips li{background:var(--wald-h);color:var(--wald);font-weight:600;font-size:.92rem;padding:.35rem .8rem;border-radius:999px}
.ap-chips.gold li{background:var(--gold-h);color:var(--gold-d)}
.ap-team{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--s4)}
.ap-person{border:1px solid var(--linie);border-radius:var(--r3);padding:var(--s4);background:#fff}
.ap-person .foto{width:88px;height:88px;border-radius:50%;object-fit:cover;display:block;margin-bottom:var(--s3);background:var(--grund)}
.ap-person .ini{width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--wald-h);color:var(--wald);font:800 1.8rem var(--display);margin-bottom:var(--s3)}
.ap-person h3{margin:0;font-size:1.05rem}
.ap-person .rolle{color:var(--mut);font-size:.9rem;margin:0 0 var(--s3)}
.ap-person ul{margin:0;padding-left:1.1rem;font-size:.88rem}
.ap-person .spr{font-size:.85rem;color:var(--mut);margin:var(--s2) 0 0}
.ap-box{border:1px solid var(--linie);border-radius:var(--r3);padding:var(--s4) var(--s5);background:#fff}
.ap-box h3{font-size:1.05rem;margin-bottom:var(--s3)}
.ap-box p:last-child{margin-bottom:0}
.ap-oz{width:100%;border-collapse:collapse;font-size:.94rem}
.ap-oz td{padding:.3rem 0;border-bottom:1px solid var(--grund)}
.ap-oz td:last-child{text-align:right}
.ap-oz tr.heute td{font-weight:600}
.ap-kontakt{display:flex;flex-direction:column;gap:var(--s2)}
.ap-kontakt .btn{width:100%}
.ap-social{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.ap-social a{font-size:.88rem}
.ap-rang{display:flex;gap:var(--s4);align-items:center}
.ap-rang b{font:800 1.4rem var(--display);display:block}
@media (max-width:980px){.ap-grid{grid-template-columns:1fr;gap:var(--s5)}.ap-grid > aside{position:static}}
@media (max-width:700px){
  .ap-banner{height:150px}
  .ap-id{gap:var(--s3)}
  .ap-logo{width:96px;height:96px;padding:8px;margin-top:-60px}
  .ap-name{min-width:0;flex-basis:100%}
  .ap-aktion{width:100%}.ap-aktion .btn{flex:1}
  .ap-kpis{grid-template-columns:repeat(2,1fr)}
}

/* ── Ranking ───────────────────────────────────── */
.rk-kopf{background:linear-gradient(135deg,var(--wald-d),var(--wald));color:#fff;padding:var(--s6) 0 var(--s5)}
.rk-kopf h1{color:#fff;margin-bottom:.25em}
.rk-kopf p{color:rgba(255,255,255,.85);max-width:64ch;margin:0}
.rk-filter{display:flex;gap:var(--s3);align-items:flex-end;flex-wrap:wrap;margin:var(--s5) 0 var(--s4)}
.rk-filter label{margin:0 0 .3rem}
.rk-filter select{min-width:240px;width:auto}
.rk-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s3)}
.rk-zeile{display:grid;grid-template-columns:52px 64px minmax(0,1fr) auto 180px;gap:var(--s4);align-items:center;border:1px solid var(--linie);border-radius:var(--r3);padding:var(--s3) var(--s4);background:#fff}
.rk-zeile.top{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}
.rk-platz{font:800 1.5rem var(--display);color:var(--wald);text-align:center}
.rk-logo{width:64px;height:64px;border:1px solid var(--linie);border-radius:var(--r2);display:flex;align-items:center;justify-content:center;background:#fff;overflow:hidden}
.rk-logo img{max-width:56px;max-height:56px;object-fit:contain}
.rk-logo span{font:800 1.5rem var(--display);color:var(--wald)}
.rk-name a{font:700 1.05rem var(--display);text-decoration:none;color:var(--tinte);overflow-wrap:anywhere}
.rk-name a:hover{color:var(--wald);text-decoration:underline}
.rk-name small{display:block;color:var(--mut)}
.rk-punkte{font-size:.85rem;color:var(--mut)}
.rk-punkte b{font:800 1.15rem var(--display);color:var(--tinte)}
.balken{height:8px;border-radius:99px;background:var(--grund);overflow:hidden;margin-top:4px;position:relative}
.balken i{display:block;height:100%;background:var(--st,var(--wald));border-radius:99px}
.rk-stufen{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3);margin:var(--s4) 0}
.rk-stufen div{border:1px solid var(--linie);border-top:4px solid var(--st);border-radius:var(--r2);padding:var(--s3) var(--s4);background:#fff}
.rk-stufen b{font:800 1.1rem var(--display);display:block}
.rk-formel{width:100%;border-collapse:collapse;margin:var(--s3) 0 var(--s4)}
.rk-formel th,.rk-formel td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--linie);vertical-align:top}
.rk-formel td:nth-child(2){font:800 1.05rem var(--display);white-space:nowrap}
@media (max-width:860px){
  .rk-zeile{grid-template-columns:40px 52px minmax(0,1fr);row-gap:var(--s2)}
  .rk-logo{width:52px;height:52px}.rk-logo img{max-width:44px;max-height:44px}
  .rk-zeile .stufe,.rk-zeile .rk-punkte{grid-column:3}.rk-zeile .stufe{justify-self:start}
  .rk-platz{font-size:1.2rem}
  .rk-stufen{grid-template-columns:repeat(2,1fr)}
  .rk-filter select{min-width:0;width:100%}
  .rk-filter > div{flex:1 1 100%}
  .rk-formel thead{display:none}
  .rk-formel tr{display:block;border-bottom:1px solid var(--linie);padding:.4rem 0}
  .rk-formel td{display:block;border:0;padding:.15rem 0}
}

/* ── Zertifikat ────────────────────────────────── */
.zt{padding:var(--s5) 0 var(--s6)}
.zt-blatt{max-width:820px;margin:0 auto;background:#fff;border:2px solid var(--st);outline:6px solid var(--grund);outline-offset:0;border-radius:6px;padding:var(--s6) var(--s6) var(--s5);text-align:center;position:relative}
.zt-blatt::before{content:"";position:absolute;inset:10px;border:1px solid var(--st);border-radius:3px;pointer-events:none;opacity:.55}
.zt-oben{font:700 .82rem var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--mut);margin:0}
.zt-titel{font-size:clamp(1.6rem,4vw,2.4rem);margin:.3em 0 .2em}
.zt-name{font:800 clamp(1.4rem,3.4vw,2.1rem) var(--display);color:var(--wald);margin:var(--s4) 0 var(--s2);overflow-wrap:anywhere}
.zt-siegel{width:180px;height:180px;margin:var(--s4) auto}
.zt-siegel svg{width:100%;height:100%}
.zt-krit{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);text-align:left;margin:var(--s5) 0 var(--s4)}
.zt-krit div{background:var(--grund);border-radius:var(--r2);padding:var(--s2) var(--s3);font-size:.85rem}
.zt-krit b{display:block;font:800 1rem var(--display)}
.zt-fuss{display:flex;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;font-size:.85rem;color:var(--mut);border-top:1px solid var(--linie);padding-top:var(--s3);margin-top:var(--s4);text-align:left}
.zt-teilen{max-width:820px;margin:var(--s5) auto 0}
.zt-teilen textarea{font:500 .82rem ui-monospace,Menlo,Consolas,monospace;min-height:96px}
.zt-knoepfe{display:flex;gap:var(--s3);flex-wrap:wrap;justify-content:center;margin-top:var(--s4)}
@media (max-width:700px){.zt-blatt{padding:var(--s5) var(--s4)}.zt-krit{grid-template-columns:1fr 1fr}.zt-siegel{width:140px;height:140px}}
@media print{
  .kopf,.fuss,.zt-teilen,.zt-knoepfe,.flash{display:none !important}
  body{background:#fff}
  .zt{padding:0}
  .zt-blatt{outline:0;border-width:3px;max-width:none;break-inside:avoid}
  .zt-krit div{background:#f3f3f3 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ── Makler-Bereich: Rang-Kasten ───────────────── */
.rang-box{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s4) var(--s5);align-items:start;border:1px solid var(--linie);border-left:5px solid var(--st);border-radius:var(--r3);padding:var(--s4) var(--s5);margin:0 0 var(--s5);background:#fff}
.rang-box h2{font-size:1.25rem;margin:0 0 .2em}
.rang-box .balken{height:12px;margin:var(--s3) 0 var(--s1)}
.rang-box .marken{position:relative;height:18px;font-size:.72rem;color:var(--mut)}
.rang-box .marken span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.rang-tipps{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:var(--s2)}
.rang-tipps li{display:flex;justify-content:space-between;gap:var(--s3);align-items:baseline;border-bottom:1px dashed var(--linie);padding-bottom:var(--s2);font-size:.94rem}
.rang-tipps b{color:var(--ok);white-space:nowrap;font-family:var(--display)}
@media (max-width:640px){.rang-box{grid-template-columns:1fr;padding:var(--s4)}.rang-box .marken span:nth-child(odd){display:none}}

/* ── Makler-Bereich: Unternehmensprofil ────────── */
.pf-kopf{display:flex;gap:var(--s4);align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:var(--s4)}
.pf-fortschritt{flex:1;min-width:240px}
.pf-fortschritt .balken{height:12px}
.pf-tipps{display:flex;flex-wrap:wrap;gap:var(--s2);list-style:none;margin:var(--s3) 0 0;padding:0}
.pf-tipps a{display:inline-block;font-size:.85rem;padding:.25rem .65rem;border-radius:999px;background:var(--gold-h);color:var(--gold-d);text-decoration:none;font-weight:600}
.pf-tipps a:hover{background:var(--gold);color:var(--tinte)}
.pf-sek{margin-bottom:var(--s4);scroll-margin-top:90px}
.pf-sek h3{margin-bottom:var(--s2)}
.pf-wahl{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--s2);margin:var(--s3) 0}
.pf-wahl label{margin:0;min-width:0;overflow-wrap:anywhere;display:flex;gap:.5rem;align-items:center;border:1.5px solid var(--linie);border-radius:var(--r2);padding:.55rem .7rem;font-weight:500;cursor:pointer;min-height:44px}
.pf-wahl label:has(input:checked){border-color:var(--wald);background:var(--wald-h)}
.pf-wahl input{width:18px;height:18px;flex:none;accent-color:var(--wald);margin:0}
.pf-oz{display:grid;grid-template-columns:110px 1fr 1fr;gap:var(--s2) var(--s3);align-items:center;max-width:520px}
.pf-oz label{margin:0}
.pf-oz input{padding:.5rem .6rem;min-width:0}
.pf-zwei{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s4)}
.pf-team{display:grid;gap:var(--s3)}
.pf-person{border:1px solid var(--linie);border-radius:var(--r2);padding:var(--s3) var(--s4) var(--s4);background:var(--grund);position:relative}
.pf-person legend{font:700 .95rem var(--display);padding:0 .3rem}
.pf-person .weg{position:absolute;top:8px;right:10px}
.pf-person img{width:72px;height:72px;border-radius:50%;object-fit:cover;display:block;margin:.3rem 0}
.pf-bilder{display:grid;grid-template-columns:1fr 2fr;gap:var(--s4)}
.pf-bilder img{max-height:110px;object-fit:contain;background:#fff;border:1px solid var(--linie);border-radius:var(--r2);padding:4px;display:block;margin:.3rem 0}
.pf-leiste{position:sticky;bottom:0;background:rgba(255,255,255,.96);border-top:1px solid var(--linie);padding:var(--s3) 0;margin-top:var(--s4);display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center;z-index:5}
@media (max-width:700px){.pf-zwei,.pf-bilder{grid-template-columns:1fr}.pf-oz{grid-template-columns:76px minmax(0,1fr) minmax(0,1fr);gap:var(--s2)}.pf-oz input{padding:.45rem .3rem;font-size:.95rem}.pf-wahl{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pf-wahl label{font-size:.88rem;padding:.5rem}}
#profil-form.formular{max-width:880px}#profil-form .card{max-width:none}

/* Wettbewerb: Treppchen, Trend, Aufruf */
.rk-treppchen{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:var(--s3);align-items:end;margin:var(--s4) 0 var(--s5)}
.rk-treppchen a{position:relative;display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center;text-decoration:none;color:var(--tinte);background:#fff;border:1px solid var(--linie);border-top:5px solid var(--st,var(--wald));border-radius:var(--r3);padding:var(--s5) var(--s3) var(--s4);transition:transform .15s,box-shadow .15s}
.rk-treppchen a:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(20,48,44,.12)}
.rk-treppchen b{font:800 1.05rem var(--display);overflow-wrap:anywhere}
.rk-treppchen span{font-size:.85rem;color:var(--mut)}
.rk-treppchen .rk-stufe-1{padding-top:var(--s6);padding-bottom:var(--s5);box-shadow:0 12px 30px rgba(20,48,44,.14)}
.rk-tp-platz{position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:32px;height:32px;border-radius:50%;background:var(--wald-d,#14302C);color:#fff !important;font:800 1rem/32px var(--display);font-size:1rem !important}
.rk-stufe-1 .rk-tp-platz{background:var(--gold,#D9A441);color:#14302C !important;width:38px;height:38px;line-height:38px;top:-19px}
.rk-aufruf{display:flex;gap:var(--s4);align-items:center;justify-content:space-between;flex-wrap:wrap;background:linear-gradient(135deg,#F6F1E4,#fff);border:1px solid var(--linie);border-left:5px solid var(--gold,#D9A441);border-radius:var(--r3);padding:var(--s4);margin:0 0 var(--s4)}
.rk-aufruf div{flex:1 1 320px}
.rk-trend{font-weight:700;font-size:.8rem;margin-left:.3em}.rk-trend.auf{color:#2F8F7B}.rk-trend.ab{color:#B4432F}
.rk-abstand{display:block;font-size:.78rem;margin-top:.25rem;color:var(--mut)}
@media(max-width:640px){.rk-treppchen{grid-template-columns:1fr;gap:var(--s5)}.rk-treppchen .rk-stufe-1{order:-1}}

/* Zertifikat im Makler-Bereich: Aktionen so breit wie das Blatt, sauber umbrechend */
.zt-aktionen{max-width:820px;margin:var(--s4) auto 0;display:flex;flex-direction:column;gap:var(--s3)}
.zt-aktionen .zt-haupt{display:block;text-align:center;white-space:normal}
.zt-neben{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2)}
.zt-neben .btn{text-align:center;white-space:normal;padding-left:.6rem;padding-right:.6rem}
@media (max-width:760px){.zt-neben{grid-template-columns:1fr 1fr}}
@media print{.zt-aktionen,.mk-nav{display:none !important}}
