*{box-sizing:border-box}:root{--ink:#17212b;--muted:#66717d;--bg:#f3f6f8;--card:#fff;--accent:#1f6f62;--accent2:#164e46;--line:#dfe6e9;--soft:#eaf5f2;--warn:#fff4d8;--warnline:#e5bd58}body{margin:0;background:linear-gradient(180deg,#eef4f3 0,#f7f8f9 260px);font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--ink)}.top{height:68px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1120px)/2));position:sticky;top:0;z-index:20}.brand{font-weight:800;font-size:18px}.wa{color:var(--accent);text-decoration:none;font-weight:750}.screen{max-width:1120px;margin:auto;padding:42px 20px 72px}.hidden{display:none!important}.hero{background:var(--card);border:1px solid var(--line);border-radius:28px;box-shadow:0 18px 55px #22343b12;min-height:520px;padding:54px;display:grid;grid-template-columns:1.25fr .75fr;gap:36px;align-items:center}.hero h1{font-size:clamp(38px,6vw,68px);line-height:1.02;margin:8px 0 18px;letter-spacing:-.04em}.hero p{font-size:19px;line-height:1.65;color:var(--muted);max-width:650px}.portrait{text-align:center;align-self:end}.portrait img{max-width:310px;width:100%;display:block;margin:auto;filter:drop-shadow(0 20px 22px #17212b20)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:850;color:var(--accent)}.primary,.secondary{border:0;border-radius:14px;padding:15px 20px;font-size:16px;font-weight:800;cursor:pointer}.primary{background:var(--accent);color:#fff;box-shadow:0 8px 18px #1f6f6226}.primary:hover{background:var(--accent2)}.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.linkbtn{display:inline-block;text-decoration:none}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.chips span{background:var(--soft);color:var(--accent2);padding:8px 11px;border-radius:999px;font-size:13px;font-weight:700}.panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:0 15px 45px #22343b0d}.panel.narrow{max-width:650px;margin:auto}.panel h2{font-size:clamp(28px,4vw,42px);letter-spacing:-.03em;margin:8px 0 10px}.field{margin:16px 0}.field label{display:block;font-weight:800;margin-bottom:7px}.field input,.field textarea{width:100%;border:1px solid #cfd9dd;border-radius:12px;padding:13px 14px;font:inherit;background:#fff}.field textarea{min-height:92px;resize:vertical}.accessfield{max-width:420px}.products{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:28px 0}.product{padding:0;background:#fff;border:2px solid var(--line);border-radius:18px;overflow:hidden;text-align:left;cursor:pointer;position:relative}.product img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.product span{display:block;padding:14px}.product.active{border-color:var(--accent);box-shadow:0 0 0 3px #1f6f6217}.product.active:after{content:'✓';position:absolute;top:10px;right:10px;background:var(--accent);color:#fff;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:900}.progress{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px 20px;margin-bottom:14px;position:sticky;top:82px;z-index:10;box-shadow:0 8px 25px #22343b0b}.progress>div:first-child{display:flex;justify-content:space-between;gap:12px}.progress span{color:var(--muted);font-size:14px}.bar{height:7px;background:#e8edef;border-radius:99px;margin-top:12px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent);border-radius:99px}.period{background:var(--warn);border:1px solid var(--warnline);border-radius:18px;padding:20px 22px;margin:18px 0;font-size:16px;line-height:1.55}.period b{display:block;font-size:19px;margin-bottom:3px}.questionlist{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden}.qrow{padding:22px;border-bottom:1px solid var(--line)}.qrow:last-child{border-bottom:0}.qmeta{font-size:12px;color:var(--accent);font-weight:850;text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}.qtop{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}.qtext{font-size:17px;font-weight:680;line-height:1.48}.yn{display:grid;grid-template-columns:90px 90px;gap:8px}.choice{border:1px solid #cfd9dd;background:#fff;border-radius:12px;padding:12px 10px;font-weight:800;cursor:pointer}.choice.active{background:var(--accent);border-color:var(--accent);color:#fff}.details{margin-top:18px;background:#f7faf9;border:1px solid #d9e8e4;border-radius:16px;padding:18px}.detail-help{margin:0 0 12px;font-weight:800}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.detail-grid .field{margin:0}.detail-grid .wide{grid-column:1/-1}.small{font-size:12px;color:var(--muted);margin:0 0 5px}.compact-grid{display:grid;grid-template-columns:150px 150px;gap:10px}.compact-grid .field{margin:0}.nav{display:flex;justify-content:space-between;gap:12px;margin-top:18px}.error{background:#fff0f0;border:1px solid #e8b1b1;color:#8d2525;padding:12px 14px;border-radius:12px;margin:12px 0}.summaryitem{border-top:1px solid var(--line);padding:16px 0}.summaryitem h3{font-size:15px;margin:0 0 6px}.answer{font-weight:850;color:var(--accent);margin-bottom:6px}.consent{display:flex;gap:10px;background:#f5f7f8;padding:16px;border-radius:14px;margin-top:20px;line-height:1.45}.consent input{width:20px;height:20px;flex:none}footer{text-align:center;color:#87919a;padding:25px;font-size:13px}.help{font-size:14px!important}.done{min-height:430px}
@media(max-width:850px){.screen{padding:24px 14px 60px}.top{height:60px;padding:0 14px}.brand{font-size:16px}.hero{grid-template-columns:1fr;padding:28px 22px 0;min-height:auto;border-radius:22px}.hero h1{font-size:42px}.hero p{font-size:16px}.portrait img{max-width:210px}.products{grid-template-columns:1fr 1fr}.progress{top:70px}.qtop{grid-template-columns:1fr;gap:13px}.yn{grid-template-columns:1fr 1fr;width:100%}.choice{padding:13px}.detail-grid{grid-template-columns:1fr}.detail-grid .wide{grid-column:auto}.compact-grid{grid-template-columns:1fr 1fr}.panel{padding:23px 18px}.period{padding:17px}.qrow{padding:18px}.progress>div:first-child{display:block}.progress span{display:block;margin-top:3px}.nav{position:sticky;bottom:8px;background:#ffffffee;padding:8px;border-radius:16px;border:1px solid var(--line);z-index:9}.nav>*{flex:1}.wa{font-size:14px}}
@media(max-width:480px){.products{grid-template-columns:1fr}.product{display:grid;grid-template-columns:118px 1fr;align-items:center}.product img{height:92px;aspect-ratio:auto}.hero h1{font-size:36px}.compact-grid{grid-template-columns:1fr 1fr}.screen{padding-left:10px;padding-right:10px}.qtext{font-size:16px}}.portrait-help{display:inline-flex;align-items:center;justify-content:center;margin:14px auto 4px;padding:12px 16px;border-radius:14px;background:var(--soft);color:var(--accent2);font-weight:800;text-decoration:none;max-width:300px}.portrait-help:hover{background:#dcefeb}.screen{padding-top:34px}@media(max-width:850px){.screen{padding-top:20px}.portrait-help{font-size:14px}}
/* V8: warmer, kompakter, persoenlicher */
:root{--bg:#f6f3ed;--warm:#fbf7ef;--warm2:#f2eadc}
body{background:radial-gradient(circle at 12% 4%,#edf7f3 0,transparent 28%),linear-gradient(180deg,#f8f4ec 0,#f5f7f6 430px,#f8f7f4 100%)}
.hero{background:linear-gradient(135deg,#fff 0,#fffaf2 100%)}
.portrait img{border-radius:24px;object-fit:cover;aspect-ratio:13/16;filter:none;box-shadow:0 20px 45px #17212b22}
.progress{position:relative;top:auto;margin-bottom:22px}.period{background:transparent;border:0;border-left:4px solid var(--accent);border-radius:0;padding:5px 0 5px 16px;margin:0 0 18px}.period h2{margin:0 0 3px;font-size:24px}.period p{margin:0;color:var(--muted)}
.qrow{padding:14px 18px}.qtop{gap:14px}.qtext{font-size:16px}.qmeta{display:none}.yn{grid-template-columns:78px 78px}.choice{padding:10px 8px}.questionlist{border-radius:18px}.group-head{padding:18px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#f2f8f6,#fff)}.group-head h3{margin:0 0 5px;font-size:17px}.group-head p{margin:0;color:var(--muted);font-size:13px}.qcompact{padding-top:11px;padding-bottom:11px}.examples{margin-top:5px;font-size:12px;color:var(--muted)}.examples summary{cursor:pointer;color:var(--accent);font-weight:750}.examples div{padding:7px 0;line-height:1.45}.details{margin-top:11px;padding:14px}.detail-grid{gap:8px 12px}.field{margin:10px 0}.field input,.field textarea{padding:10px 12px}.field textarea{min-height:68px}.compact-grid{grid-template-columns:120px 120px}
.period-intro{text-align:center;padding:48px 38px;background:linear-gradient(145deg,#fff,#fff9ee)}.period-intro h1{font-size:clamp(38px,6vw,60px);margin:12px 0}.period-intro p{font-size:18px;color:var(--muted);margin:0 auto 26px;max-width:560px}.mini-progress{text-align:left;margin-bottom:38px}.mini-progress>div:first-child{display:flex;justify-content:space-between}.mini-progress span{color:var(--muted);font-size:13px}
.primary:disabled,.primary.disabled{background:#b9c4c2;color:#f5f5f5;box-shadow:none;cursor:not-allowed}
@media(min-width:851px){.questionlist .qrow{min-height:0}.qtop{grid-template-columns:minmax(0,1fr) auto}.portrait{align-self:center}.hero{min-height:480px}.nav{margin-top:14px}}
@media(max-width:850px){.progress{position:relative;top:auto}.period{margin-top:0}.qrow{padding:14px}.period-intro{padding:32px 20px}.period-intro h1{font-size:38px}.nav{position:sticky}.portrait img{max-width:250px}.group-head{padding:15px}.qcompact .qtop{grid-template-columns:1fr}.yn{width:100%;grid-template-columns:1fr 1fr}}

.primary:disabled,.primary.disabled{opacity:.42;cursor:not-allowed;box-shadow:none;filter:grayscale(.15)}
@media(max-width:850px){
  .screen{padding:12px 12px 48px}
  .hero{padding:18px 16px 14px;gap:12px;grid-template-columns:minmax(0,1fr) 104px;align-items:start;border-radius:18px}
  .hero h1{font-size:clamp(29px,9vw,36px);line-height:1.03;margin:5px 0 10px;overflow-wrap:anywhere}
  .hero p{font-size:15px;line-height:1.45;margin:8px 0 12px}
  .hero .eyebrow{font-size:10px}
  .portrait{align-self:start;display:flex;flex-direction:column;align-items:center;min-width:0}
  .portrait img{width:92px;height:116px;object-fit:cover;object-position:50% 22%;border-radius:16px;max-width:none;margin:0}
  .portrait-help{font-size:11px;line-height:1.2;padding:8px 7px;margin:7px 0 0;max-width:104px;text-align:center}
  .accessfield{margin:10px 0}.field{margin:10px 0}.field input{padding:11px 12px}
  .primary,.secondary{padding:12px 14px;font-size:15px}
  .help{display:none}
  .done{min-height:0}
}
@media(max-width:420px){
  .hero{grid-template-columns:minmax(0,1fr) 92px;padding-left:14px;padding-right:14px}
  .hero h1{font-size:29px}
  .portrait img{width:82px;height:104px}.portrait-help{max-width:92px;font-size:10.5px;padding:7px 5px}
}

.count-choices{display:flex;gap:8px;flex-wrap:wrap}.count-choice{min-width:54px;padding:11px 15px;border:1px solid #cbd8d5;border-radius:12px;background:#fff;font-weight:800;cursor:pointer}.count-choice.active{background:#1f796b;color:#fff;border-color:#1f796b}

@media(max-width:600px){#access h1,.access-card h1,.hero h1{font-size:clamp(28px,8vw,40px)!important;line-height:1.05!important;overflow-wrap:normal!important;word-break:keep-all!important;hyphens:none!important;letter-spacing:-.7px}.access-card,.hero-card{padding-left:18px!important;padding-right:18px!important}}
/* V22 mobile portrait spacing: keep advisor portrait clear of the title */
@media(max-width:850px){
  .hero{align-items:start!important;}
  .hero .portrait{padding-top:58px!important;align-self:start!important;}
}
@media(max-width:480px){
  .hero .portrait{padding-top:66px!important;}
}

/* V23 Berater-Branding */
.brand-loading .portrait{visibility:hidden}
.advisor-name{margin-top:8px;font-weight:800;color:#183b35;text-align:center;font-size:14px}
.portrait.no-photo img{background:#e7efed}
@media(max-width:720px){.advisor-name{font-size:13px;margin-top:6px}}
/* V28 consistent Du/Sie controls */
.public-segmented{display:inline-flex;gap:5px;background:#eef3f2;padding:4px;border-radius:12px;margin-top:7px}.public-segmented label{position:relative}.public-segmented input{position:absolute;opacity:0;pointer-events:none}.public-segmented span{display:block;padding:9px 16px;border-radius:9px;font-weight:800;cursor:pointer}.public-segmented input:checked+span{background:#fff;color:#176e62;box-shadow:0 1px 5px #17212b18}

/* V33: mobile form stability */
[hidden]{display:none!important}
input,textarea,select{font-size:16px}
@media(max-width:850px){
  .field input,.field textarea{font-size:16px;min-height:50px;padding:13px 14px}
  .public-form input{font-size:16px;min-height:50px;padding:13px 14px;width:100%;box-sizing:border-box}
}
/* V40 consistent customer contact bar */
.customer-contactbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px max(12px,calc((100vw - 1120px)/2));background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.contact-person{display:flex;align-items:center;gap:9px;min-width:0}.contact-person img{width:38px;height:38px;border-radius:50%;object-fit:cover;object-position:center 18%;border:1px solid var(--line)}.contact-person b{display:block;font-size:14px}.contact-person span{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.contact-wa{border:1px solid var(--line);border-radius:999px;padding:9px 12px;color:var(--accent2);text-decoration:none;font-weight:800;font-size:13px;white-space:nowrap;background:#fff}
@media(max-width:600px){.customer-contactbar{padding:7px 10px}.contact-person img{width:34px;height:34px}.contact-person span{max-width:175px}.contact-wa span{display:none}.contact-wa{width:40px;height:40px;padding:8px;display:grid;place-items:center}.screen{padding-top:14px}}

/* V44 – einheitlicher Fragebogenstandard */
.final-contact{margin-top:28px;padding-top:22px;border-top:1px solid #e5eaec}.final-contact h3{margin:0 0 4px}.final-contact textarea,.final-contact select{width:100%;box-sizing:border-box;border:1px solid #cfd8d3;border-radius:14px;padding:13px 14px;font:inherit;background:#fff}.questionlist select{width:100%;min-height:48px;border:1px solid #cfd8d3;border-radius:14px;padding:10px 12px;background:#fff;font:inherit}.customer-contactbar,.energy-head{max-width:100%;box-sizing:border-box}.customer-contactbar>*{min-width:0}
@media(max-width:520px){.customer-contactbar{padding-left:12px;padding-right:12px}.contact-person{min-width:0}.contact-name,.contact-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen,.panel,.questionlist{max-width:100%;box-sizing:border-box}.compact-grid{grid-template-columns:1fr}}

/* V45 – Mobile-first stability across all customer questionnaires */
html,body{max-width:100%;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box}
.screen,.panel,.questionlist,.qrow,.details,.final-contact,.public-start,.public-form{min-width:0;max-width:100%}
img,svg,video,canvas{max-width:100%;height:auto}
@media(max-width:700px){
  .customer-contactbar{width:100%;max-width:100%;gap:8px}
  .contact-person{flex:1;min-width:0}.contact-person>div{min-width:0}
  .contact-person b,.contact-person span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .questionlist{border-radius:16px}.qrow{padding:13px 12px}.qtop{gap:10px}
  .qtext{font-size:16px;line-height:1.4;overflow-wrap:anywhere}
  .yn,.count-choices{width:100%}.count-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .count-choice{min-width:0;width:100%;padding:12px 8px}
  .nav{left:auto;right:auto;width:100%;max-width:100%;box-sizing:border-box}
  .nav .primary,.nav .secondary{min-width:0}
  .detail-grid,.compact-grid{grid-template-columns:1fr!important}
  .field input,.field textarea,.field select{width:100%;max-width:100%}
}

/* V48: einheitliche, kompakte Mobile-Choices fuer Energie. Bewusst eigener
   Klassenname, damit die Gesundheitsfragebogen-Klasse .choice nicht kollidiert. */
.energy-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;margin-top:8px}
.energy-choice label{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;min-width:0;min-height:58px;margin:0;padding:12px 14px;border:1px solid #ccd3cf;border-radius:14px;background:#fff;box-sizing:border-box;font-weight:700;line-height:1.25;overflow-wrap:normal;word-break:normal;cursor:pointer}
.energy-choice label:has(input:checked){border-color:#2d7655;background:#eef8f3;box-shadow:0 0 0 1px #2d765522}
.energy-choice input[type=radio]{appearance:none;-webkit-appearance:none;width:22px;height:22px;min-width:22px;margin:0;border:2px solid #87928d;border-radius:50%;background:#fff}
.energy-choice input[type=radio]:checked{border:6px solid #2d7655}
.energy-confirm{display:flex;align-items:flex-start;gap:10px;padding:12px 0;line-height:1.4}
.energy-confirm input{width:20px;height:20px;flex:0 0 20px;margin-top:1px}
@media(max-width:650px){
  .energy-app{padding:0 10px 28px}
  .energy-head{display:flex;align-items:center;padding:8px 2px;margin-bottom:8px}
  .energy-advisor{margin-top:0;gap:9px}
  .energy-advisor img{width:48px;height:48px}
  .energy-advisor small{font-size:12px}.energy-advisor b{font-size:16px}
  .energy-card{padding:16px 14px;border-radius:18px}
  .energy-card h1{font-size:25px;line-height:1.15;margin:4px 0 8px}
  .energy-card h2{font-size:21px;line-height:1.2}
  .energy-choice{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .energy-choice label{min-height:54px;padding:10px 11px;font-size:15px}
  .energy-actions{gap:8px;bottom:6px;padding:7px}
  .energy-actions .btn{min-height:44px;padding:10px 12px;font-size:15px}
}
@media(max-width:360px){.energy-choice{grid-template-columns:1fr}}

/* V132 step 3: robust mobile advisor portrait layout. Keep portrait in normal flow so it can never cover headings/forms. */
@media(max-width:850px){
  #access .hero,#welcome .hero,#done .hero{
    grid-template-columns:1fr!important;
    gap:14px!important;
    padding:20px 18px 18px!important;
  }
  #access .hero .portrait,#welcome .hero .portrait,#done .hero .portrait{
    order:-1!important;
    width:100%!important;
    padding-top:0!important;
    align-self:auto!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    position:static!important;
  }
  #access .hero .portrait img,#welcome .hero .portrait img,#done .hero .portrait img{
    width:96px!important;
    height:120px!important;
    max-width:96px!important;
    margin:0 auto!important;
    object-fit:cover!important;
    object-position:50% 20%!important;
    position:static!important;
  }
  #access .hero>div:first-child,#welcome .hero>div:first-child,#done .hero>div:first-child{
    min-width:0!important;
    width:100%!important;
  }
  #access .hero h1,#welcome .hero h1,#done .hero h1{
    max-width:100%!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
}
@media(max-width:430px){
  #access .hero .portrait img,#welcome .hero .portrait img,#done .hero .portrait img{
    width:88px!important;height:110px!important;max-width:88px!important;
  }
}
