/* Standard für ALLE Looks (Maxim 19.10.2026). render.py hängt diese Datei als letztes Stylesheet an.
   1) Google-Widget: dunkles Glas-Kärtchen, eigene Zeile direkt unter den zwei Hero-Buttons.
   2) Buttons nie als Pille: max. 6 px Radius (Look-Klassen siehe Look-CSS, hier nur das Widget). */
.sgw-row{ display:flex; width:100%; flex-basis:100%; margin-top:22px; }
.sgw-row--cta{ margin-top:18px; }
.sgw{ display:inline-flex; align-items:center; gap:14px; padding:11px 16px 11px 11px; border-radius:6px;
  background:rgba(17,19,23,.62); border:1px solid rgba(255,255,255,.14); color:#fff; max-width:100%;
  text-decoration:none; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  transition:border-color .3s, transform .45s cubic-bezier(.2,.7,.2,1); font:inherit; text-align:left; }
a.sgw:hover{ border-color:rgba(255,255,255,.3); transform:translateY(-2px); }
.sgw-g{ display:grid; place-items:center; width:40px; height:40px; border-radius:4px; background:#fff; flex:0 0 auto; }
.sgw-glogo{ width:24px; height:24px; display:block; }
.sgw-body{ display:flex; flex-direction:column; min-width:0; }
.sgw-top{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.sgw-num{ font-weight:800; font-size:1.375rem; line-height:1; color:#fff; letter-spacing:0; }
.sgw-stars{ display:inline-flex; gap:1px; color:#FBBC04; }
.sgw-stars svg{ width:16px; height:16px; display:block; }
.sgw-sub{ font-size:.85rem; color:rgba(255,255,255,.72); margin-top:3px; line-height:1.35; }
.sgw-label{ font-size:.85rem; font-weight:600; color:rgba(255,255,255,.88); }
.sgw-title{ font-weight:700; font-size:1rem; line-height:1.25; color:#fff; }
.sgw-av{ display:flex; margin-left:4px; }
.sgw-av img{ width:34px; height:34px; border-radius:50%; object-fit:cover; border:2px solid #1B1E23; margin-left:-10px; background:#2a2e36; }
.sgw-av img:first-child{ margin-left:0; }
.sgw--voices{ align-items:flex-start; width:min(100%, 520px); }
.sgw-quotes{ position:relative; display:grid; margin-top:6px; }
.sgw-quote{ grid-area:1/1; font-size:.92rem; line-height:1.45; color:rgba(255,255,255,.9); opacity:0; transform:translateY(6px); transition:opacity .6s ease, transform .6s ease; }
.sgw-quote.is-on{ opacity:1; transform:none; }
.sgw-quote em{ font-style:normal; color:rgba(255,255,255,.6); white-space:nowrap; }
.sgw-badge{ display:grid; place-items:center; width:40px; height:40px; border-radius:4px; background:var(--accent, #2C6E8F); color:#fff; flex:0 0 auto; }
.sgw-badge svg{ width:22px; height:22px; }
@media (max-width:420px){ .sgw{ gap:12px; } .sgw-av img{ width:28px; height:28px; } }
/* Lange E-Mail-Adressen nicht mitten im Wort umbrechen (Maxim: keine Wort-Trennungen) */
a[href^="mailto:"]{ overflow-wrap:normal; word-break:normal; hyphens:none; }
@media (max-width:480px){ footer a[href^="mailto:"], .ftr a[href^="mailto:"], .footer a[href^="mailto:"]{ white-space:nowrap; font-size:.86em; } }
/* Inhaber-Karte rechts im Hero (Maxim 21.10.2026, Vorlage EB Entrümpelung), eingesetzt von _shared/owner_card.py */
.has-sowner{ position:relative; }
/* Hero mindestens Bildschirmhöhe, wächst bei niedrigen Fenstern mit statt Laufband/Karte abzuschneiden (Maxim 26.10., MY Stuckateur) */
.has-sowner{ height:auto !important; min-height:var(--hero-h, 100svh); max-height:none !important; }
.sowner{ display:none; position:relative; z-index:4; flex-direction:column; padding:0 14px 14px; border-radius:18px; overflow:hidden;
  background:linear-gradient(180deg, color-mix(in srgb, var(--so-acc) 24%, rgba(16,18,21,.55)) 0%, rgba(20,22,26,.42) 46%, rgba(14,16,19,.72) 100%);
  border:1px solid rgba(255,255,255,.16); box-shadow:0 30px 70px -30px rgba(0,0,0,.6); color:#fff; text-align:left;
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); transition:transform .6s cubic-bezier(.2,.7,.2,1); }
@media (min-width:1200px){
  .sowner{ position:absolute; display:flex; right:max(32px, calc((100vw - 1340px) / 2 - 80px)); bottom:clamp(76px, 10vh, 120px); width:clamp(330px, 25vw, 400px); }
  .sowner:hover{ transform:translateY(-4px); }
}
@media (min-width:1200px) and (max-height:760px){ .sowner{ width:clamp(300px, 22vw, 340px); } .sowner-ph{ height:clamp(150px, 24vh, 210px) !important; } }
/* unter 1200 px: Karte unter dem Textblock, Hero wird so lang wie nötig (Maxim 21.10.: „kann auch größer sein“) */
@media (max-width:1199px){
  .has-sowner{ height:auto !important; min-height:100svh; max-height:none !important; }
  .sowner.is-flow{ display:flex; width:100%; max-width:400px; margin-top:28px; }
  .sowner.is-flow .sowner-ph{ height:250px; }
}
.sowner-ph{ height:clamp(150px, 24vh, 210px) !important; } }
.sowner-ph{ position:relative; display:block; height:clamp(190px, 29vh, 290px); margin:0 -14px; }
.sowner-ph::before{ content:""; position:absolute; left:50%; top:58%; width:78%; aspect-ratio:1; transform:translate(-50%,-50%); border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb, var(--so-acc) 45%, transparent) 0%, transparent 68%); opacity:.7; }
.sowner-ph img{ position:relative; width:100%; height:100%; display:block; object-fit:cover; object-position:50% 18%; }
.sowner-ph.is-cut img{ object-fit:contain; object-position:50% 100%; }
/* Echtes Inhaberfoto: rundum gleich eingerückt wie links/rechts, nicht oben am Rahmen kleben (Maxim 26.10., KMG) */
.sowner-ph:not(.is-cut){ margin:14px 0 0 !important; border-radius:12px; overflow:hidden; }
.sowner-ph:not(.is-cut)::before{ display:none; }
.sowner-p{ position:relative; margin-top:-46px; display:flex; flex-direction:column; padding:16px 18px 14px; border-radius:12px;
  background:rgba(22,24,28,.58); border:1px solid rgba(255,255,255,.14); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); }
.sowner-n{ font-size:1.4rem; font-weight:800; line-height:1.15; color:#fff; letter-spacing:-.01em; }
.sowner-r{ margin-top:4px; font-size:.9rem; line-height:1.35; color:rgba(255,255,255,.7); }
.sowner-st{ display:flex; justify-content:space-between; gap:10px; margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.12); text-align:center; }
.sowner-st > span{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.sowner-st b{ font-size:1.12rem; font-weight:800; line-height:1.1; color:var(--so-acc); white-space:nowrap; }
.sowner-st small{ white-space:nowrap; font-size:.6rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.58); line-height:1.25; }
.sowner-g{ display:flex; align-items:center; gap:7px; margin-top:14px; padding-top:13px; border-top:1px solid rgba(255,255,255,.12); }
.sowner-glogo{ width:18px; height:18px; flex:0 0 auto; }
.sowner-g > b{ font-size:1rem; font-weight:800; color:#fff; }
.sowner-stars{ display:inline-flex; gap:1px; color:#FBBC04; }
.sowner-stars svg{ width:13px; height:13px; display:block; }
.sowner-gc{ margin-left:auto; font-size:.76rem; color:rgba(255,255,255,.62); white-space:nowrap; }
.sowner-ki{ position:absolute; z-index:2; top:12px; right:12px; font-size:.58rem; font-weight:700; letter-spacing:.06em; line-height:1; color:rgba(255,255,255,.85);
  padding:.2rem .34rem; border-radius:3px; background:rgba(11,13,15,.4); border:1px solid rgba(255,255,255,.22); pointer-events:none; }
@media (max-width:480px){ .sowner-p{ padding:15px 14px 13px; } .sowner-st{ gap:8px; } .sowner-st b{ font-size:1rem; } .sowner-st small{ font-size:.56rem; letter-spacing:.06em; } }
