:root{
  --ink:#23211D;
  --ink-soft:#5C584F;
  --cream:#EEE9DE;
  --cream-deep:#EFE8D8;
  --pine:#1B3328;
  --pine-light:#284A3B;
  --pine-pale:#E4EAE3;
  --terracotta:#C5662B;
  --terracotta-text:#A15323;
  --terracotta-soft:#F0DCC9;
  --navimo:#1F9D57;
  --navimo-dark:#178047;
  --gold:#A88B4A;
  --gold-text:#7C6636;
  --line:#DCD4C0;
  --white:#FFFDF8;
  --shadow: 0 1px 2px rgba(35,33,29,0.06), 0 8px 24px rgba(35,33,29,0.06);
  --shadow-sm: 0 1px 3px rgba(35,33,29,0.08);
  --shadow-md: var(--shadow);
  --shadow-lg: 0 4px 16px rgba(27,51,40,0.12), 0 12px 32px rgba(27,51,40,0.10);
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius: var(--radius-md);
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 24px; --space-6: 32px; --space-7: 48px; --space-8: 64px;
}

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  font-family:'Inter',sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,.serif{
  font-family:'Fraunces',serif;
  font-weight:600;
  letter-spacing:-0.01em;
  color:var(--pine);
}

.mono{
  font-family:'JetBrains Mono',monospace;
  font-feature-settings:"tnum";
  font-variant-numeric:tabular-nums;
}

a{color:inherit;}

.wrap{
  max-width:1140px;
  margin:0 auto;
  padding:0 40px;
}

/* ---------- Top bar ---------- */
.topbar{
  position:sticky; top:0; z-index:50;
  background:rgba(247,243,234,0.95);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(35,33,29,0.08);
  box-shadow:0 1px 0 rgba(35,33,29,0.05), 0 4px 20px rgba(35,33,29,0.04);
  padding-top:env(safe-area-inset-top);
}
.topbar-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:0 40px;
  height:72px;
  max-width:1140px;
  margin:0 auto;
  gap:32px;
}
.brand{
  display:flex; align-items:center; gap:12px;
  text-decoration:none; flex:none;
}
.brand-logo{
  width:42px; height:42px; border-radius:12px;
  background:linear-gradient(145deg, #1B3328 0%, #2D5040 100%);
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; line-height:1;
  box-shadow:0 2px 8px rgba(27,51,40,0.25), 0 0 0 1px rgba(27,51,40,0.1);
  flex:none;
}
.brand-text{
  display:flex; flex-direction:column; gap:1px;
}
.brand-name{
  font-family:'Fraunces',serif; font-weight:600; font-size:1.2rem;
  color:var(--pine); line-height:1;
  letter-spacing:-0.02em;
}
.topnav{
  display:flex; align-items:center; gap:6px;
  flex:1; justify-content:center;
}
.topnav a{
  text-decoration:none; font-size:0.88rem; font-weight:500;
  color:var(--ink-soft); padding:8px 14px; border-radius:8px;
  transition:color .15s, background .15s;
}
.topnav a:hover{ color:var(--pine); background:rgba(27,51,40,0.06); }
.btn-nav{
  background:var(--pine); color:var(--white);
  padding:11px 22px; border-radius:10px;
  font-size:0.86rem; font-weight:700;
  text-decoration:none; flex:none; white-space:nowrap;
  transition:background .15s, box-shadow .15s, transform .12s;
  box-shadow:0 2px 8px rgba(27,51,40,0.2);
  letter-spacing:0.01em;
}
.btn-nav:hover{
  background:var(--terracotta);
  box-shadow:0 4px 16px rgba(197,102,43,0.3);
  transform:translateY(-1px);
}
/* ── navimo (Maklervergleich) — vorübergehend deaktiviert (Feature-Flag NAVIMO_ENABLED in JS).
   Nichts gelöscht: Elemente tragen class="navimo-feature" + hidden. Zum Reaktivieren: NAVIMO_ENABLED = true. ── */
[hidden]{ display:none !important; }
/* ── navimo (Maklervergleich) — grüner CTA ── */
.btn-navimo{
  display:inline-flex; align-items:center; gap:7px;
  background:var(--navimo); color:#fff;
  padding:11px 20px; border-radius:10px;
  font-size:0.86rem; font-weight:700;
  text-decoration:none; flex:none; white-space:nowrap;
  transition:background .15s, box-shadow .15s, transform .12s;
  box-shadow:0 2px 10px rgba(31,157,87,0.30);
  letter-spacing:0.01em;
}
.btn-navimo:hover{ background:var(--navimo-dark); box-shadow:0 5px 18px rgba(31,157,87,0.40); transform:translateY(-1px); }
.btn-navimo .ci{ font-size:1.02rem; line-height:1; }

/* ---------- Hero ---------- */
.hero{
  padding:72px 0 40px;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--pine-pale); color:var(--pine-light);
  font-size:0.78rem; font-weight:600; letter-spacing:0.04em;
  text-transform:uppercase;
  padding:7px 14px; border-radius:30px;
  margin-bottom:20px;
}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--terracotta);}

.hero-product-name{
  font-family:'Inter',sans-serif;
  font-size:clamp(0.85rem, 1.2vw, 1rem);
  font-weight:800;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--pine);
  margin-bottom:14px;
  display:flex; align-items:center; gap:10px;
}
.hero-product-name::before{
  content:'';
  display:inline-block; width:28px; height:3px;
  background:var(--terracotta); border-radius:2px;
}
.hero h1{
  font-size:clamp(2.4rem, 5vw, 3.8rem);
  line-height:1.05;
  max-width:860px;
  margin-bottom:16px;
  letter-spacing:-0.02em;
}
.hero-tagline{
  font-family:"Fraunces",serif;
  font-size:clamp(1.15rem, 2vw, 1.5rem);
  font-weight:400;
  font-style:italic;
  color:var(--ink-soft);
  margin-bottom:14px;
  max-width:680px;
  line-height:1.35;
}
.hero-tagline em{ color:var(--terracotta); font-style:italic; }
.hero-lead{
  font-size:1.02rem; color:var(--ink-soft); max-width:660px;
  line-height:1.6; margin:2px 0 4px;
}
.hero-lead strong{ color:var(--ink); font-weight:600; }
/* ── SEO Kantons-Sektion ── */
.seo-prose{ max-width:760px; color:var(--ink-soft); line-height:1.65; }
.seo-prose p{ margin-bottom:12px; }
.seo-prose strong{ color:var(--ink); }
.faq-list{ display:flex; flex-direction:column; gap:12px; }
.faq-item{ background:var(--white); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); overflow:hidden; transition:box-shadow .16s ease, border-color .16s ease; }
.faq-item:hover{ box-shadow:0 4px 10px rgba(35,33,29,.07),0 14px 32px rgba(35,33,29,.10); border-color:var(--pine-pale); }
.faq-item.open{ border-color:var(--pine-pale); }
.faq-q{
  width:100%; background:none; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:18px 20px; text-align:left; font-family:inherit;
  font-size:1.05rem; font-weight:600; color:var(--ink); line-height:1.4;
}
.faq-q:hover{ color:var(--pine); }
.faq-q:focus-visible{ outline:2px solid var(--pine); outline-offset:-2px; border-radius:14px; }
.faq-ico{
  flex:none; width:24px; height:24px; border-radius:50%;
  border:1.5px solid var(--line); position:relative;
  transition:border-color .2s, background .2s;
}
.faq-ico::before, .faq-ico::after{
  content:""; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  background:var(--ink-soft); transition:opacity .2s, background .2s;
}
.faq-ico::before{ width:10px; height:1.6px; }
.faq-ico::after{ width:1.6px; height:10px; }
.faq-item.open .faq-ico{ background:var(--pine); border-color:var(--pine); }
.faq-item.open .faq-ico::before{ background:#fff; }
.faq-item.open .faq-ico::after{ opacity:0; }
.faq-a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .28s ease; }
.faq-a-inner{ overflow:hidden; min-height:0; }
.faq-item.open .faq-a{ grid-template-rows:1fr; }
.faq-a p{ color:var(--ink-soft); line-height:1.6; padding:0 20px 18px; margin:0; }
.hero p.lead{
  font-size:1.15rem; color:var(--ink-soft);
  max-width:620px;
  margin-bottom:0; line-height:1.65;
}

/* ---------- Calculator shell ---------- */
.calc-shell{
  margin:40px 0 80px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow: 0 2px 4px rgba(35,33,29,0.04), 0 24px 60px rgba(27,51,40,0.08);
  overflow:hidden;
}

.calc-grid{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;
}

@media (max-width: 880px){
  .calc-grid{grid-template-columns:1fr;}
}

.calc-left{
  padding:40px 40px 40px;
  border-right:1px solid var(--line);
}
@media (max-width: 880px){
  .calc-left{border-right:none; border-bottom:1px solid var(--line);}
}

.calc-right{
  padding:40px;
  background: linear-gradient(165deg, var(--pine) 0%, #14241C 100%);
  color:var(--cream);
  position:relative;
  display:flex; flex-direction:column;
}

.step-label{
  font-size:0.78rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--terracotta);
  margin-bottom:10px;
  display:flex; align-items:center; gap:8px;
}

/* Kanton selector */
#cantonGrid, #cantonGridProfil{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(52px,1fr));
  gap:6px;
  margin-bottom:6px;
}
.canton-tile{
  border:1.5px solid var(--line);
  background:var(--cream);
  border-radius:8px;
  padding:9px 4px 7px;
  text-align:center;
  cursor:pointer;
  transition: all .12s ease;
  font-family:'JetBrains Mono',monospace;
  font-size:0.74rem;
  font-weight:600;
  color:var(--ink-soft);
  user-select:none;
}
.canton-tile:hover{
  border-color:var(--gold);
  transform:translateY(-1px);
}
.canton-tile.active{
  background:var(--pine);
  border-color:var(--pine);
  color:var(--white);
}
.canton-tile .sys-dot{
  display:block;
  width:5px;height:5px;border-radius:50%;
  margin:0 auto 4px;
  background:var(--gold);
}
.canton-tile.active .sys-dot{background:var(--terracotta-soft);}

.legend-row{
  display:flex; gap:18px; margin:14px 0 28px;
  font-size:0.8rem; color:var(--ink-soft);
}
.legend-item{display:flex; align-items:center; gap:6px;}
.legend-dot{width:8px;height:8px;border-radius:50%;}

.system-banner{
  border-radius:12px;
  padding:16px 18px;
  margin-bottom:30px;
  display:flex; gap:14px; align-items:flex-start;
  border:1px solid var(--line);
  background:var(--cream-deep);
}
.system-banner .sys-icon{
  width:38px; height:38px; flex:none;
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.05rem;
  background:var(--pine); color:var(--cream);
}
.system-banner h4{
  font-family:'Fraunces',serif; font-size:1rem; color:var(--pine); margin-bottom:3px; font-weight:600;
}
.system-banner p{font-size:0.86rem; color:var(--ink-soft); line-height:1.5;}
.system-banner .tag{
  display:inline-block;
  font-size:0.68rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
  padding:2px 8px; border-radius:20px;
  margin-left:8px;
  vertical-align:middle;
}
.tag-dual{background:var(--pine-pale); color:var(--pine-light);}
.tag-mono{background:var(--terracotta-soft); color:#8A4319;}
.tag-geneva{background:#E8DEF0; color:#5A3D7A;}

/* Inputs */
.field-group{margin-bottom:22px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
label{
  display:block;
  font-size:0.82rem; font-weight:600; color:var(--ink);
  margin-bottom:7px;
}
label .hint{font-weight:400; color:var(--ink-soft); font-size:0.78rem;}
.input-wrap{
  position:relative;
}
.input-wrap span.prefix{
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  color:var(--ink-soft); font-size:0.92rem; font-family:'JetBrains Mono',monospace;
  white-space:nowrap; pointer-events:none; letter-spacing:0.01em;
}
input[type="text"], input[type="number"]{
  width:100%;
  border:1.5px solid var(--line);
  background:var(--cream);
  border-radius:10px;
  padding:13px 14px 13px 52px;
  font-size:1rem;
  font-family:'JetBrains Mono',monospace;
  color:var(--ink);
  transition:border-color .15s, background .15s;
}
input[type="date"]{
  width:100%;
  border:1.5px solid var(--line);
  background:var(--cream);
  border-radius:10px;
  padding:13px 14px;
  font-size:0.92rem;
  font-family:'Inter',sans-serif;
  color:var(--ink);
}
input:focus{
  outline:none;
  border-color:var(--pine);
  background:var(--white);
}
/* Einheitliches Formular-System für alle Rechner (ggv-field): Select-Elemente
   waren zuvor völlig ungestylt (reiner Browser-Default) — hier konsistent
   mit den übrigen Eingabefeldern gemacht. */
select{
  width:100%;
  border:1.5px solid var(--line);
  background:var(--cream);
  border-radius:10px;
  padding:12px 40px 12px 14px;
  font-size:0.95rem;
  font-family:'Inter',sans-serif;
  color:var(--ink);
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%235C584F' stroke-width='2'%3E%3Cpath d='M5 7.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  background-size:16px;
  transition:border-color .15s, background-color .15s;
}
select:hover{ border-color:var(--pine-light); }
select:focus{ outline:none; border-color:var(--pine); background-color:var(--white); }
.ggv-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.ggv-field > span{ font-size:0.86rem; font-weight:600; color:var(--ink); }
.ggv-field input[type="number"],
.ggv-field input[type="text"]{ padding:12px 14px; font-family:'Inter',sans-serif; font-size:0.95rem; }
.ggv-field input:focus, .ggv-field select:focus{ box-shadow:0 0 0 3px var(--pine-pale); }
.duration-display{
  margin-top:8px;
  font-size:0.84rem;
  color:var(--pine-light);
  font-weight:600;
}

/* Wertvermehrend section */
.deduction-box{
  border:1.5px dashed var(--line);
  border-radius:14px;
  padding:18px 20px;
  margin-top:6px;
}
.deduction-row{
  display:flex; justify-content:space-between; align-items:center;
  gap:14px;
  padding:9px 0;
  border-bottom:1px solid var(--line);
}
.deduction-row:last-child{border-bottom:none;}
.deduction-row label{margin:0; flex:1; font-weight:500; font-size:0.86rem; display:flex; align-items:center; gap:6px;}
.deduction-row .input-wrap{width:160px;}
.deduction-row input{padding:8px 10px 8px 44px; font-size:0.88rem;}
.deduction-row span.prefix{font-size:0.82rem; left:10px;}

.info-dot{
  width:15px;height:15px;border-radius:50%;
  background:var(--pine-pale); color:var(--pine-light);
  font-size:0.66rem; font-weight:700;
  display:inline-flex; align-items:center; justify-content:center;
  cursor:help;
  flex:none;
  position:relative;
}
.info-dot:hover .tooltip{display:block;}
.tooltip{
  display:none;
  position:absolute; bottom:140%; left:50%; transform:translateX(-50%);
  background:var(--ink); color:var(--cream);
  font-size:0.76rem; font-weight:400; line-height:1.45;
  padding:10px 12px; border-radius:8px;
  width:230px; z-index:10;
  box-shadow:0 8px 20px rgba(0,0,0,0.2);
}
.tooltip::after{
  content:"";
  position:absolute; top:100%; left:50%; transform:translateX(-50%);
  border:6px solid transparent; border-top-color:var(--ink);
}

/* Right side - result */
.result-eyebrow{
  font-size:0.76rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--gold); margin-bottom:8px;
}
.result-canton{
  font-size:0.95rem; color:rgba(247,243,234,0.65); margin-bottom:28px;
}
.result-canton b{color:var(--cream); font-weight:600;}

.calc-right.result-empty .result-main,
.calc-right.result-empty .result-sub,
.calc-right.result-empty .rate-explain,
.calc-right.result-empty .breakdown-row,
.calc-right.result-empty .scale-wrap,
.calc-right.result-empty .result-beratung,
.calc-right.result-empty #breakdown {
  display: none;
}
.calc-right.result-empty .result-canton { display: none; }
.calc-right.result-empty .result-empty-hint { display: flex; }
.result-empty-hint {
  display: none;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 40px 24px 24px;
  gap: 14px;
  color: rgba(247,243,234,0.55);
  font-size: 0.9rem;
  line-height: 1.6;
}
.result-empty-hint .hint-icon { font-size: 2.4rem; opacity: 0.7; }
.result-empty-hint strong { color: rgba(247,243,234,0.85); font-size: 1rem; display: block; }
/* ── Beratungs-CTA: erscheint zusammen mit dem Ergebnis ── */
.ergebnis-hinweise{ margin:16px 0 4px; display:grid; gap:12px; }
.eh-item,.eh-next{ background:var(--cream); border-left:3px solid var(--pine); border-radius:10px; padding:12px 14px; }
.eh-next{ border-left-color:var(--terracotta); }
.eh-text{ margin:0 0 8px; color:var(--ink); font-size:.94rem; line-height:1.55; }
.eh-next-title{ margin:0 0 8px; font-weight:700; color:var(--pine); font-size:.88rem; letter-spacing:.03em; text-transform:uppercase; }
.eh-links{ margin:0; display:flex; flex-wrap:wrap; gap:10px 16px; }
.eh-links a{ color:var(--pine); font-weight:600; font-size:.9rem; text-decoration:none; }
.eh-links a:hover{ color:var(--terracotta); text-decoration:underline; }
.result-beratung{
  margin-top:20px; padding:18px 20px;
  background:linear-gradient(135deg, rgba(197,102,43,0.16), rgba(197,102,43,0.07));
  border:1px solid rgba(197,102,43,0.38);
  border-radius:16px;
}
.rb-eyebrow{ font-size:0.66rem; font-weight:800; letter-spacing:0.14em; text-transform:uppercase; color:#E5A572; margin-bottom:7px; }
.rb-title{ font-size:1.18rem; font-weight:800; color:#F7F3EA; line-height:1.25; margin-bottom:9px; letter-spacing:-0.01em; }
.rb-text{ font-size:0.83rem; line-height:1.6; color:rgba(247,243,234,0.8); margin:0 0 15px; }
.rb-text b{ color:#F7F3EA; font-weight:700; }
.rb-btn{
  display:block; text-align:center; text-decoration:none; cursor:pointer;
  background:#C5662B; color:#fff; font-weight:700; font-size:0.94rem;
  padding:13px 18px; border-radius:12px; transition:background .15s ease, transform .15s ease;
}
.rb-btn:hover{ background:#A8531F; transform:translateY(-1px); }
.rb-btn:active{ transform:translateY(1px); }
.rb-btn:focus-visible{ outline:2px solid var(--pine); outline-offset:2px; }
.rb-btn.navimo{ background:var(--navimo); box-shadow:0 4px 16px rgba(31,157,87,0.28); }
.rb-btn.navimo:hover{ background:var(--navimo-dark); }
.rb-secondary{ display:block; text-align:center; margin-top:13px; font-size:0.77rem; color:rgba(247,243,234,0.62); text-decoration:underline; text-underline-offset:2px; }
.rb-secondary:hover{ color:rgba(247,243,234,0.92); }
.va-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:16px; }
.va-actions [data-va-back]{
  display:inline-flex; align-items:center; justify-content:center;
  margin:0; padding:12px 20px; flex:none;
  background:var(--white); color:var(--ink); border:1.5px solid var(--line);
  border-radius:10px; font-size:0.92rem; font-weight:600; text-decoration:none;
  cursor:pointer; transition:border-color .15s, background .15s;
}
.va-actions [data-va-back]:hover{ border-color:var(--pine); background:var(--cream-deep); }
.va-actions .rb-btn{ margin:0; flex:1 1 auto; }
.rb-btn-outline{ display:inline-flex; align-items:center; justify-content:center; flex:1 1 auto; padding:13px 20px; border-radius:10px; border:1.5px solid rgba(247,243,234,0.55); background:transparent; color:#F7F3EA; font-family:inherit; font-size:0.95rem; font-weight:600; cursor:pointer; text-decoration:none; transition:background .15s,border-color .15s; }
.rb-btn-outline:hover{ background:rgba(247,243,234,0.1); border-color:rgba(247,243,234,0.85); }
.rb-btn-outline:focus-visible{ outline:2px solid var(--terracotta); outline-offset:2px; }
.rb-trust{ text-align:center; font-size:0.7rem; color:rgba(247,243,234,0.52); margin-top:11px; letter-spacing:0.01em; }
.result-main{
  margin-bottom:8px;
}
.result-main .label{font-size:0.86rem; color:rgba(247,243,234,0.6); margin-bottom:4px;}
.result-main .value{
  font-family:'Fraunces',serif;
  font-size:clamp(2.4rem, 4vw, 3.1rem);
  font-weight:600;
  color:var(--white);
  line-height:1;
}
.result-main .value sup{font-size:0.4em; font-weight:500; color:var(--terracotta-soft);}

.result-sub{
  display:flex; gap:18px;
  margin:22px 0 26px;
  padding:18px 0;
  border-top:1px solid rgba(247,243,234,0.15);
  border-bottom:1px solid rgba(247,243,234,0.15);
}
.result-sub .item{flex:1;}
.result-sub .item .l{font-size:0.74rem; color:rgba(247,243,234,0.55); margin-bottom:4px;}
.result-sub .item .v{font-family:'JetBrains Mono',monospace; font-size:1.05rem; font-weight:600; color:var(--cream);}

.rate-explain{
  background:rgba(255,255,255,0.06);
  border-radius:10px;
  padding:12px 14px;
  margin-bottom:18px;
  font-size:0.78rem;
  color:rgba(247,243,234,0.65);
  line-height:1.55;
}
.rate-explain .re-row{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:3px 0;
  border-bottom:1px dotted rgba(247,243,234,0.1);
}
.rate-explain .re-row:last-child{border-bottom:none;}
.rate-explain .re-row .rk{color:rgba(247,243,234,0.55);}
.rate-explain .re-row .rv{font-family:'JetBrains Mono',monospace; font-weight:600; color:var(--cream);}

/* waterfall breakdown */
.breakdown{margin-bottom:24px;}
.breakdown-row{
  display:flex; justify-content:space-between; align-items:baseline;
  font-size:0.86rem;
  padding:7px 0;
  border-bottom:1px dotted rgba(247,243,234,0.18);
}
.breakdown-row.total{
  border-bottom:none; border-top:1.5px solid rgba(247,243,234,0.3);
  margin-top:4px; padding-top:12px;
  font-weight:700; font-size:0.95rem;
}
.breakdown-row .k{color:rgba(247,243,234,0.75);}
.breakdown-row .v{font-family:'JetBrains Mono',monospace; color:var(--cream); font-weight:500;}
.breakdown-row .v.neg{color:var(--terracotta-soft);}
.breakdown-row .v.pos{color:#9FD8B5;}

.planned-estimate{
  display:flex; gap:12px; align-items:flex-start;
  padding:14px 16px; border-radius:12px;
}
.planned-estimate.full{
  background:#E8F3EC; border:1.5px solid rgba(27,51,40,0.2);
}
.planned-estimate.partial{
  background:#FEF3E8; border:1.5px solid rgba(197,102,43,0.2);
}
.pe-icon{
  font-size:1.2rem; font-weight:800; line-height:1; flex:none; margin-top:1px;
}
.planned-estimate.full .pe-icon{ color:var(--pine); }
.planned-estimate.partial .pe-icon{ color:var(--terracotta); }
.pe-title{
  font-weight:700; font-size:0.88rem; color:var(--ink); margin-bottom:8px;
}
.pe-rows{ margin-bottom:8px; }
.pe-row{
  display:flex; justify-content:space-between;
  font-size:0.82rem; color:var(--ink-soft);
  padding:3px 0; border-bottom:1px dotted rgba(0,0,0,0.08);
}
.pe-row:last-child{ border-bottom:none; }
.pe-row span:last-child{ font-family:'JetBrains Mono',monospace; font-weight:600; color:var(--ink); }
.pe-row.warn span{ color:var(--terracotta); }
.pe-detail{ font-size:0.78rem; color:var(--ink-soft); line-height:1.5; }

/* ===== Deferred summary box ===== */
  margin-top:12px; padding:14px 16px;
  background:rgba(159,216,181,0.12);
  border:1px solid rgba(159,216,181,0.3);
  border-radius:10px;
}
.ds-title{
  font-size:0.8rem; font-weight:700; color:#9FD8B5;
  margin-bottom:10px; text-transform:uppercase; letter-spacing:0.06em;
}
.ds-row{
  display:flex; justify-content:space-between;
  font-size:0.82rem; color:rgba(247,243,234,0.75);
  padding:4px 0; border-bottom:1px dotted rgba(247,243,234,0.1);
}
.ds-row:last-of-type{ border-bottom:none; }
.ds-row span:last-child{ font-family:'JetBrains Mono',monospace; color:rgba(247,243,234,0.9); }
.ds-note{
  font-size:0.74rem; color:rgba(247,243,234,0.45);
  margin-top:8px; line-height:1.45;
}
.deferred-row{
  background:rgba(159,216,181,0.08);
  border-radius:4px; padding:3px 0;
}


/* Prior gain box in calculator */
.prior-gain-box{
  margin-top:14px; padding:14px 16px;
  background:rgba(197,102,43,0.06);
  border:1.5px solid rgba(197,102,43,0.2);
  border-radius:12px;
}
.pgb-label{
  font-size:0.84rem; font-weight:600; color:var(--ink);
  margin-bottom:10px; display:flex; align-items:center; gap:8px;
}
.pgb-note{
  font-size:0.74rem; color:var(--ink-soft); margin-top:8px; line-height:1.4;
}

/* Scale bar */
/* Compact rate row */
.rate-compact{
  display:flex; align-items:center; gap:12px;
  padding:10px 0 12px; margin-bottom:4px;
  border-bottom:1px solid rgba(247,243,234,0.1);
}
.rate-compact-left, .rate-compact-right{ flex:1; }
.rate-compact-sep{ color:rgba(247,243,234,0.2); font-size:1.2rem; }
.rc-label{ font-size:0.66rem; color:rgba(247,243,234,0.45); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:2px; }
.rc-value{ font-family:'JetBrains Mono',monospace; font-size:1.1rem; font-weight:700; color:var(--cream); }
.rate-toggle{
  background:rgba(247,243,234,0.08); border:none; color:rgba(247,243,234,0.45);
  width:26px; height:26px; border-radius:50%; cursor:pointer; font-size:0.7rem;
  display:flex; align-items:center; justify-content:center;
  transition:background .15s, transform .2s; flex:none;
}
.rate-toggle:hover{ background:rgba(247,243,234,0.15); }
.rate-block .rate-explain{ display:none; }
.rate-block.open .rate-explain{ display:block; }
.rate-block.open ~ * .rate-toggle{ transform:rotate(180deg); }
.scale-wrap{margin-top:auto; padding-top:18px;}
.scale-label{font-size:0.74rem; color:rgba(247,243,234,0.55); margin-bottom:10px; display:flex; justify-content:space-between;}
.scale-bar{
  height:10px; border-radius:6px; overflow:hidden;
  background:rgba(247,243,234,0.12);
  display:flex;
  margin-bottom:10px;
}
.scale-bar .seg{height:100%; transition:width .3s ease;}
.scale-bar .seg-keep{background:#9FD8B5;}
.scale-bar .seg-tax{background:var(--terracotta);}
.scale-foot{display:flex; justify-content:space-between; font-size:0.76rem; color:rgba(247,243,234,0.55);}
.scale-legend{
  display:flex; flex-wrap:wrap; gap:12px;
  font-size:0.74rem; color:rgba(247,243,234,0.7);
}
.sl-item{display:flex; align-items:center; gap:6px;}
.sl-dot{width:9px; height:9px; border-radius:50%; flex:none;}

.scale-pct-row{
  display:flex; justify-content:space-between;
  margin-top:10px;
}
.scale-pct-item{display:flex; flex-direction:column; gap:2px;}
.scale-pct-item.right{text-align:right;}
.pct-big{
  font-family:'Fraunces',serif; font-size:1.6rem; font-weight:600;
  color:#9FD8B5; line-height:1;
}
.pct-big.red{color:#E88060;}
.pct-label{font-size:0.72rem; color:rgba(247,243,234,0.55); font-weight:600; letter-spacing:0.04em; text-transform:uppercase;}
.pct-chf{font-family:'JetBrains Mono',monospace; font-size:0.82rem; color:rgba(247,243,234,0.7); margin-top:2px;}

.disclaimer-mini{
  font-size:0.72rem; color:rgba(247,243,234,0.45);
  margin-top:20px; line-height:1.5;
}

/* ---------- Wissen section ---------- */
.section{padding:70px 0;}
.section-head{max-width:640px; margin-bottom:46px;}
.section-head h2{font-size:clamp(1.6rem,3vw,2.15rem); margin-bottom:14px;}
.section-head p{color:var(--ink-soft); font-size:1.04rem;}

.qa-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}


.qa-more{display:inline-block;margin-top:12px;color:var(--pine);font-weight:600;font-size:.9rem;text-decoration:none;}
.qa-more:hover{color:var(--terracotta);}
.qa-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:16px;
  padding:30px 26px;
}
.qa-num{
  font-family:'JetBrains Mono',monospace;
  font-size:0.78rem; font-weight:600;
  color:var(--terracotta);
  background:var(--terracotta-soft);
  display:inline-block;
  padding:3px 9px; border-radius:20px;
  margin-bottom:16px;
}
.qa-card h3{font-size:1.12rem; margin-bottom:10px; line-height:1.3;}
.qa-card p{color:var(--ink-soft); font-size:0.92rem;}
.qa-card .formula{
  margin-top:14px;
  background:var(--cream-deep);
  border-radius:10px;
  padding:12px 14px;
  font-family:'JetBrains Mono',monospace;
  font-size:0.82rem;
  color:var(--pine-light);
}

/* ---------- Wertvermehrend vs Werterhaltend ---------- */
.compare-wrap{
  display:grid; grid-template-columns:1fr 1fr;
  gap:16px;
  border-radius:0; overflow:visible;
  border:none;
}


.compare-col{
  padding:28px 28px 24px;
  border-radius:16px;
}
.compare-col.yes{
  background:var(--pine);
  color:var(--cream);
  border:2px solid transparent;
}
.compare-col.no{
  background:#FEF3EE;
  border:2px solid rgba(197,102,43,0.25);
}

.compare-col-badge{
  display:inline-flex; align-items:center; gap:7px;
  padding:5px 12px; border-radius:20px;
  font-size:0.72rem; font-weight:800; letter-spacing:0.06em;
  text-transform:uppercase; margin-bottom:14px;
}
.compare-col.yes .compare-col-badge{
  background:rgba(159,216,181,0.2);
  color:#9FD8B5;
  border:1px solid rgba(159,216,181,0.3);
}
.compare-col.no .compare-col-badge{
  background:rgba(197,102,43,0.12);
  color:var(--terracotta);
  border:1px solid rgba(197,102,43,0.25);
}

.compare-col h3{
  font-size:1.15rem; margin-bottom:4px;
  display:flex; align-items:center; gap:10px;
  font-family:'Fraunces',serif; font-weight:600;
}
.compare-col.yes h3{color:var(--white);}
.compare-col.no h3{color:var(--terracotta);}
.compare-col .sub{
  font-size:0.82rem; margin-bottom:20px;
}
.compare-col.no .sub{color:rgba(197,102,43,0.7);}
.compare-col.yes .sub{color:rgba(247,243,234,0.6);}

.compare-list{list-style:none;}
.compare-list li{
  padding:9px 0;
  border-bottom:1px solid rgba(0,0,0,0.06);
  font-size:0.9rem;
  display:flex; gap:10px; align-items:flex-start;
}
.compare-col.yes .compare-list li{border-bottom:1px solid rgba(247,243,234,0.1);}
.compare-col.no .compare-list li{border-bottom:1px solid rgba(197,102,43,0.1);}
.compare-list li:last-child{border-bottom:none;}
.compare-list .ico{flex:none; font-weight:700; font-size:0.95rem; margin-top:1px;}
.compare-col.yes .ico{color:#9FD8B5;}
.compare-col.no .ico{color:var(--terracotta);}

/* ---------- USP box ---------- */
.usp-box{
  background:linear-gradient(135deg, var(--terracotta-soft) 0%, var(--cream-deep) 100%);
  border-radius:20px;
  padding:44px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:30px;
  align-items:center;
  border:1px solid var(--line);
  margin-bottom:60px;
}

.usp-icon{
  width:64px; height:64px;
  background:var(--terracotta);
  border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  color:white; font-size:1.8rem;
  flex:none;
}
.usp-box h3{font-size:1.3rem; margin-bottom:10px;}
.usp-box p{color:var(--ink-soft); font-size:0.98rem; max-width:640px;}
.usp-box .cta-link{
  display:inline-flex; align-items:center; gap:6px;
  margin-top:16px;
  color:var(--terracotta); font-weight:600; font-size:0.92rem;
  text-decoration:none;
}

/* ---------- footer ---------- */
footer{
  border-top:1px solid var(--line);
  padding:40px 0;
  margin-top:40px;
}
.footer-inner{
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:16px;
  font-size:0.85rem; color:var(--ink-soft);
}
.footer-disclaimer{
  font-size:0.72rem !important;
  max-width:1140px; margin:0 auto 24px;
  padding:0 28px;
  font-size:0.78rem; color:var(--ink-soft);
  line-height:1.6;
  border-top:1px dotted var(--line);
  padding-top:24px;
}

@media (max-width:600px){
  .field-row{grid-template-columns:1fr;}
  .calc-left, .calc-right{padding:28px 22px;}
  .topnav{display:none;}
}

/* Accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
.canton-tile:focus-visible{
  outline:2.5px solid var(--terracotta);
  outline-offset:2px;
}
.canton-tile{outline:none;}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important; scroll-behavior:auto !important; animation:none !important;}
}

.field-error{
  font-size:0.8rem;
  color:#B43A1F;
  margin-top:6px;
  display:none;
}
.field-error.show{display:block;}
input.invalid{border-color:#B43A1F; background:#FBEAE3;}

/* ===== Ersatzbeschaffung ===== */
.seller-section{
  padding:32px 0 24px;
}
.section-number{
  display:flex; align-items:center; gap:10px;
  font-size:0.72rem; font-weight:800; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--terracotta);
  margin-bottom:10px;
}
.section-number::before{
  content:''; width:24px; height:2px;
  background:var(--terracotta); border-radius:2px;
}
.section-number-2{
  padding-top:32px;
}
.repl-section{padding:0 0 40px;}
.repl-intro-text{color:var(--ink-soft);font-size:0.96rem;line-height:1.6;margin-bottom:22px;max-width:680px;}
.repl-intro{max-width:680px; margin-bottom:30px;}
.repl-intro h2{font-size:clamp(1.5rem,2.6vw,1.9rem); margin-bottom:12px;}
.repl-intro p{color:var(--ink-soft); font-size:1rem;}

.repl-cards{
  display:grid; grid-template-columns:1fr 1fr 1fr;
  gap:18px;
  margin-bottom:24px;
}
@media (max-width:880px){.repl-cards{grid-template-columns:1fr;}}

.repl-card{
  background:var(--white);
  border:2px solid var(--line);
  border-radius:16px;
  padding:24px 22px;
  cursor:pointer;
  transition: border-color .15s, transform .15s;
  position:relative;
}
.repl-card:hover{border-color:var(--gold); transform:translateY(-2px);}
.repl-card.active{border-color:var(--pine); background:var(--pine-pale);}
.repl-card .check{
  position:absolute; top:18px; right:18px;
  width:22px; height:22px; border-radius:50%;
  border:2px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-size:0.7rem; color:transparent;
  background:var(--cream);
}
.repl-card.active .check{
  border-color:var(--pine); background:var(--pine); color:var(--white);
}
.repl-card .ico{font-size:1.5rem; margin-bottom:12px; display:block;}
.repl-card h4{font-family:'Fraunces',serif; font-size:1.05rem; color:var(--pine); margin-bottom:6px; font-weight:600; padding-right:26px;}
.repl-card p{font-size:0.86rem; color:var(--ink-soft); line-height:1.45;}

.repl-detail{
  display:none;
  background:var(--cream-deep);
  border:1px solid var(--line);
  border-radius:16px;
  padding:26px 28px;
  margin-top:10px;
}
.repl-detail.show{display:block;}
.repl-detail .canton-badge{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--pine); color:var(--cream);
  font-size:0.78rem; font-weight:700;
  padding:5px 12px; border-radius:20px;
  margin-bottom:14px;
}
.repl-detail h4{font-family:'Fraunces',serif; font-size:1.15rem; color:var(--pine); margin-bottom:10px;}
.repl-detail .frist-row{
  display:flex; align-items:baseline; gap:10px;
  margin-bottom:14px;
}
.repl-detail .frist-row .frist-label{font-size:0.82rem; color:var(--ink-soft);}
.repl-detail .frist-row .frist-value{
  font-family:'JetBrains Mono',monospace; font-weight:700; font-size:1.1rem; color:var(--terracotta);
}
.repl-detail p.desc{font-size:0.92rem; color:var(--ink); line-height:1.6; margin-bottom:16px;}
.repl-detail a.official-link{
  display:inline-flex; align-items:center; gap:6px;
  color:var(--pine); font-weight:600; font-size:0.88rem;
  text-decoration:none;
  border-bottom:1.5px solid var(--gold);
  padding-bottom:2px;
}
.repl-detail a.official-link:hover{color:var(--terracotta); border-color:var(--terracotta);}

.repl-note{
  display:none;
  margin-top:16px;
  background:#FBF3E3;
  border:1px solid #E8D4A0;
  border-radius:12px;
  padding:16px 18px;
  font-size:0.88rem;
  color:#6B5217;
  line-height:1.55;
}
.repl-note.show{display:block;}
.repl-note strong{color:#4A3A0F;}

.prior-deferred-box{
  display:none;
  margin-top:14px;
  border:1.5px dashed var(--line);
  border-radius:12px;
  padding:16px 18px;
}
.prior-deferred-box.show{display:block;}
.prior-deferred-box label{font-size:0.86rem; margin-bottom:8px;}
.prior-deferred-box .hint-small{font-size:0.78rem; color:var(--ink-soft); margin-top:6px; line-height:1.5;}

.btn-scroll-down{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--pine); color:var(--white);
  padding:12px 22px; border-radius:30px;
  font-size:0.9rem; font-weight:600;
  text-decoration:none;
  transition:background .15s, transform .15s;
}
.btn-scroll-down:hover{background:var(--terracotta); transform:translateY(-1px);}

/* ===== SelfOccupied checkbox ===== */
.self-occ-wrap{
  margin-top:14px;
  padding:12px 16px;
  background:var(--pine-pale);
  border:1.5px solid rgba(27,51,40,0.15);
  border-radius:10px;
}
.self-occ-label{
  display:flex; align-items:center; gap:12px;
  cursor:pointer; user-select:none;
}
.self-occ-label input[type="checkbox"]{display:none;}
.self-occ-check{
  width:20px; height:20px; border-radius:5px;
  border:2px solid var(--pine); background:var(--white);
  flex:none; position:relative; transition:background .15s;
}
.self-occ-label input:checked + .self-occ-check{
  background:var(--pine);
}
.self-occ-label input:checked + .self-occ-check::after{
  content:"✓"; position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  color:var(--white); font-size:0.7rem; font-weight:700;
}
.self-occ-text{font-size:0.88rem; color:var(--ink); line-height:1.4;}

/* ===== Haltedauer Hint Box ===== */
.dur-hint-box{
  margin-top:10px;
  padding:12px 16px;
  background:linear-gradient(135deg, #E8F3EC 0%, #F5EDDE 100%);
  border:1.5px solid rgba(27,51,40,0.2);
  border-radius:10px;
  font-size:0.82rem;
  color:var(--ink);
  line-height:1.55;
}
.dur-hint-box .dh-title{
  font-weight:700; font-size:0.86rem; color:var(--pine);
  margin-bottom:6px; display:flex; align-items:center; gap:6px;
}
.dur-hint-box .dh-row{
  display:flex; justify-content:space-between;
  padding:3px 0; border-bottom:1px dotted rgba(27,51,40,0.1);
  font-size:0.8rem;
}
.dur-hint-box .dh-row:last-child{border-bottom:none;}
.dur-hint-box .dh-row .dk{color:var(--ink-soft);}
.dur-hint-box .dh-row .dv{font-weight:600; color:var(--pine);}
.dur-hint-box .dh-row .dv.red{color:var(--terracotta);}
.dur-hint-box .dh-next{
  margin-top:8px; padding:6px 10px;
  background:rgba(27,51,40,0.06); border-radius:6px;
  font-size:0.78rem; color:var(--ink-soft);
}

/* ===== Ad Banner ===== */
.ad-banner{
  margin:40px auto 0;
  max-width:900px;
  background:linear-gradient(135deg, #FDEFD8 0%, #F9E4C4 100%);
  border:1.5px solid rgba(197,102,43,0.2);
  border-radius:16px;
  padding:20px 28px;
  display:flex; align-items:center; gap:20px;
}
.ad-banner .ad-tag{
  font-size:0.65rem; font-weight:700; letter-spacing:0.08em;
  color:var(--terracotta); text-transform:uppercase;
  border:1px solid var(--terracotta); border-radius:4px;
  padding:2px 6px; flex:none; align-self:flex-start;
}
.ad-banner .ad-content{flex:1;}
.ad-banner .ad-title{font-family:'Fraunces',serif; font-size:1.05rem; font-weight:600; color:var(--ink); margin-bottom:4px;}
.ad-banner .ad-text{font-size:0.84rem; color:var(--ink-soft); line-height:1.5;}
.ad-banner .ad-cta{
  display:inline-block; margin-top:10px;
  background:var(--terracotta); color:var(--white);
  padding:8px 18px; border-radius:20px;
  font-size:0.84rem; font-weight:600; text-decoration:none;
  transition:background .15s;
}
.ad-banner .ad-cta:hover{background:var(--pine);}


/* ===== Side Ad Column — rechts neben Inhalt ===== */
.side-ad-col{
  position:fixed;
  top:50%;
  transform:translateY(-50%);
  width:160px;
  display:none;
  flex-direction:column;
  gap:12px;
  z-index:90;
}
.side-ad-col-left{ left:calc(50% - 760px); }
.side-ad-col-right{ right:calc(50% - 760px); }
@media(min-width:1520px){ .side-ad-col{ display:flex; } }

.side-ad-unit{
  width:160px;
  background:var(--white);
  border:1px solid #E0DBD1;
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 1px 3px rgba(0,0,0,0.08);
}
.side-ad-werbung{
  font-size:0.55rem; font-weight:700; letter-spacing:0.12em;
  text-transform:uppercase; color:#AAA49A;
  text-align:center;
  padding:5px 0 4px;
  border-bottom:1px solid #EDE8DF;
  background:#FAFAF8;
}
.side-ad-img{
  width:160px;
  background:linear-gradient(160deg, #1B3328 0%, #2D5040 100%);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  padding:22px 16px 20px;
  text-align:center;
  gap:10px;
}
.side-ad-img-icon{
  width:48px; height:48px; border-radius:12px;
  background:var(--terracotta);
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; margin-bottom:2px;
}
.side-ad-img-title{
  font-family:'Fraunces',serif;
  font-size:0.9rem; font-weight:600;
  color:var(--white); line-height:1.25;
}
.side-ad-img-sub{
  font-size:0.66rem; color:rgba(247,243,234,0.65);
  line-height:1.45;
}
.side-ad-img-price{
  font-family:'JetBrains Mono',monospace;
  font-size:0.75rem; color:var(--gold);
  font-weight:700; margin-top:2px;
}
.side-ad-body2{
  padding:12px 12px 10px;
  background:var(--white);
}
.side-ad-cta{
  display:block;
  background:var(--terracotta); color:var(--white);
  padding:9px 10px; border-radius:5px;
  font-size:0.73rem; font-weight:700;
  text-decoration:none; text-align:center;
  transition:background .15s;
  margin-bottom:7px;
}
.side-ad-cta:hover{ background:#A8431A; }
.side-ad-secondary{
  display:block; text-align:center;
  font-size:0.65rem; color:var(--pine);
  font-weight:600; text-decoration:none;
  padding:2px 0;
}
.side-ad-secondary:hover{ text-decoration:underline; }
.side-ad-footer2{
  padding:6px 12px 8px;
  background:#F7F4EE;
  border-top:1px solid #EDE8DF;
  font-size:0.58rem; color:#AAA49A;
  text-align:center;
}

/* ===== Guided Step Flow ===== */
.guided-step{
  transition: opacity .4s ease, transform .4s ease;
}
.guided-step.locked{
  opacity:0; pointer-events:none;
  height:0; overflow:hidden;
  transform:translateY(20px);
}
.guided-step.unlocked{
  opacity:1; pointer-events:all;
  height:auto; overflow:visible;
  transform:translateY(0);
}
/* Special for calc-shell which is a section */
section.calc-shell.guided-step.locked{
  display:none;
}
section.calc-shell.guided-step.unlocked{
  display:block;
}

/* ===== Seller Type Toggle ===== */
.seller-toggle-wrap{
  margin-bottom:28px;
  padding:18px 20px;
  background:var(--white);
  border:1.5px solid var(--line);
  border-radius:14px;
}
.seller-toggle-label{
  font-size:0.78rem; font-weight:700; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--ink-soft);
  margin-bottom:10px;
}
.seller-toggle{ display:flex; gap:10px; }
.st-btn{
  flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 16px; border:2px solid var(--line); border-radius:10px;
  background:var(--cream); font-size:0.9rem; font-weight:600;
  font-family:'Inter',sans-serif; color:var(--ink-soft);
  cursor:pointer; transition:all .15s;
}
.st-btn.active{ border-color:var(--pine); background:var(--pine); color:var(--white); }
.st-btn:hover:not(.active){ border-color:var(--pine); color:var(--pine); }
.st-ico{ font-size:1.1rem; }
.seller-note{ margin-top:10px; font-size:0.8rem; line-height:1.55; color:var(--ink-soft); display:none; }
.seller-note.show{ display:block; }
.seller-note.warn{
  color:#8B4000; background:#FEF3E8; border-radius:8px;
  padding:8px 12px; border-left:3px solid var(--terracotta);
}

/* ===== Mobile ===== */
{
  .wrap{ padding:0 14px; }
  .profil-card{ padding:16px 14px 18px; border-radius:16px; }
  .canton-tile{ min-height:40px; font-size:0.72rem; }
  .repl-card h4{ font-size:0.95rem; }
  .deduction-row{ flex-direction:column; gap:8px; }
  .deduction-row .input-wrap{ width:100%; }
  .breakdown-row .k, .breakdown-row .v{ font-size:0.78rem; }
  .result-main{ font-size:clamp(2rem,9vw,3rem); }
}

  .canton-tile{ padding:6px 2px; font-size:0.68rem; }
  .result-sub{ grid-template-columns:1fr 1fr; }
}





.contact-left h2{color:var(--white);}
.contact-trust{margin-top:30px; display:flex; flex-direction:column; gap:12px;}
.trust-item{display:flex; align-items:center; gap:12px; font-size:0.92rem; color:rgba(247,243,234,0.8);}
.trust-ico{
  width:22px; height:22px; border-radius:50%;
  background:var(--terracotta); color:var(--white);
  display:flex; align-items:center; justify-content:center;
  font-size:0.72rem; font-weight:700; flex:none;
}



.cform{display:flex; flex-direction:column; gap:18px;}
.cfield{display:flex; flex-direction:column; gap:7px;}
.cfield-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}

.cfield label{font-size:0.84rem; font-weight:600; color:var(--ink);}
.cfield input, .cfield textarea{
  border:1.5px solid var(--line);
  background:var(--cream);
  border-radius:10px;
  padding:12px 16px;
  font-size:0.95rem;
  font-family:'Inter',sans-serif;
  color:var(--ink);
  transition:border-color .15s, background .15s;
  resize:vertical;
}
.cfield input:focus, .cfield textarea:focus{
  outline:none; border-color:var(--pine); background:var(--white);
}
.btn-send{
  width:100%;
  background:var(--pine); color:var(--white);
  border:none; border-radius:12px;
  padding:15px 24px;
  font-size:1rem; font-weight:600; font-family:'Inter',sans-serif;
  cursor:pointer;
  transition:background .15s, transform .15s;
}
.btn-send:hover{background:var(--terracotta); transform:translateY(-1px);}
.form-note{font-size:0.76rem; color:var(--ink-soft); margin-top:10px; text-align:center;}
.form-success{
  text-align:center; padding:40px 20px;
}
.success-ico{
  width:56px; height:56px; border-radius:50%;
  background:var(--pine-pale); color:var(--pine);
  font-size:1.4rem; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 16px;
}
/* ══ Simplified Result Panel ══ */
.result-stats{
  display:flex; align-items:center;
  margin:14px 0 20px; padding:14px 0;
  border-top:1px solid rgba(247,243,234,0.12);
  border-bottom:1px solid rgba(247,243,234,0.12);
}
.rs-item{ flex:1; }
.rs-label{ font-size:0.64rem; text-transform:uppercase; letter-spacing:0.08em; color:rgba(247,243,234,0.45); margin-bottom:3px; }
.rs-value{ font-family:'JetBrains Mono',monospace; font-size:1.15rem; font-weight:700; color:var(--cream); }
.rs-divider{ width:1px; height:36px; background:rgba(247,243,234,0.12); margin:0 16px; flex:none; }
.breakdown-clean{ margin-bottom:18px; }
.bc-row{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:6px 0; border-bottom:1px solid rgba(247,243,234,0.07);
  font-size:0.82rem; color:rgba(247,243,234,0.65);
}
.bc-row:last-child{ border-bottom:none; }
.bc-row span:last-child{ font-family:'JetBrains Mono',monospace; color:rgba(247,243,234,0.85); }
.bc-row.total{ font-weight:700; color:var(--cream); border-top:1px solid rgba(247,243,234,0.15); padding-top:8px; }
.bc-row.tax{ color:#FFD580; font-weight:700; margin-top:4px; border-bottom:none; font-size:0.86rem; }
.bc-row.deferred span{ color:#9FD8B5; }
.detail-toggle{
  width:100%; background:rgba(247,243,234,0.06); border:1px solid rgba(247,243,234,0.1);
  border-radius:8px; color:rgba(247,243,234,0.45); font-size:0.73rem; font-weight:600;
  padding:9px 14px; cursor:pointer; text-align:left; margin-top:16px;
  transition:background .15s; font-family:'Inter',sans-serif; letter-spacing:0.03em;
}
.detail-toggle:hover{ background:rgba(247,243,234,0.1); }
.detail-body{ display:none; padding-top:12px; }
.detail-body.open{ display:block; }

/* ══ Content Zone ══ */
.content-zone-divider{
  margin-top:80px;
  margin-bottom:40px;
  padding-top:28px;
  border-top:2px solid var(--line);
}
.czd-line{ display:none; }
.czd-heading{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.czd-main-title{
  font-family:'Fraunces', serif;
  font-size:clamp(2rem, 4vw, 3.2rem);
  font-weight:600;
  color:var(--ink);
  line-height:1.05;
  letter-spacing:-0.02em;
  margin-bottom:6px;
}
.czd-subtitle{
  font-size:1rem;
  color:var(--terracotta);
  font-style:italic;
  font-family:'Fraunces', serif;
  font-weight:400;
}
.czd-title{
  font-family:'Fraunces', serif;
  font-size:clamp(1.6rem, 3vw, 2.4rem);
  font-weight:600;
  color:var(--ink);
  line-height:1.1;
  letter-spacing:-0.01em;
}
.content-zone{
  background:transparent;
  padding-top:0;
}

/* ══ Step placeholder cards (locked visual) ══ */

.steuerwert-compare-box{
  margin-top:10px; padding:12px 14px;
  background:rgba(247,243,234,0.06);
  border:1px solid rgba(247,243,234,0.12);
  border-radius:8px;
}
.acb-row{
  display:flex; justify-content:space-between;
  padding:4px 0; color:rgba(247,243,234,0.55);
  border-bottom:1px dotted rgba(247,243,234,0.1);
  font-family:'JetBrains Mono',monospace; font-size:0.75rem;
}
.acb-row:last-of-type{ border-bottom:none; }
.acb-winner{
  margin-top:8px; padding:6px 10px;
  background:rgba(159,216,181,0.12);
  border-radius:5px; color:#9FD8B5;
  font-weight:600; font-size:0.78rem;
}

/* ══ Altbesitzregel ══ */
.steuerwert-wrap{
  margin-top:12px; padding:14px 16px;
  background:linear-gradient(135deg, #E8F3EC 0%, #F5F0E8 100%);
  border:1.5px solid rgba(27,51,40,0.18); border-radius:12px;
}
.steuerwert-header{
  display:flex; align-items:flex-start; gap:10px; margin-bottom:12px;
}
.steuerwert-icon{ font-size:1.2rem; flex:none; margin-top:1px; }
.steuerwert-title{ font-weight:700; font-size:0.88rem; color:var(--pine); }
.steuerwert-sub{ font-size:0.76rem; color:var(--ink-soft); margin-top:2px; line-height:1.4; }
.steuerwert-toggle-label{
  display:flex; align-items:center; gap:10px;
  cursor:pointer; font-size:0.84rem; color:var(--ink); margin-bottom:0;
}
.steuerwert-toggle-label input[type="checkbox"]{ display:none; }
.steuerwert-chk{
  width:18px; height:18px; border-radius:4px;
  border:2px solid var(--pine); background:var(--white); flex:none;
  position:relative; transition:background .15s;
}
.steuerwert-toggle-label input:checked + .steuerwert-chk{ background:var(--pine); }
.steuerwert-toggle-label input:checked + .steuerwert-chk::after{
  content:"✓"; position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%); color:var(--white); font-size:0.65rem; font-weight:700;
}
.steuerwert-input{ margin-top:14px; padding-top:12px; border-top:1px solid rgba(27,51,40,0.12); }
.step-placeholder{
  margin-top:10px; margin-bottom:4px;
  padding:16px 20px;
  border:1.5px dashed rgba(197,102,43,0.25);
  border-radius:16px;
  font-size:0.84rem; color:var(--ink-soft);
  display:flex; align-items:center; gap:10px;
}
.step-placeholder .sp-lock{ font-size:1rem; opacity:0.4; }

.form-success h4{font-family:'Fraunces',serif; font-size:1.3rem; color:var(--pine); margin-bottom:8px;}
.form-success p{color:var(--ink-soft); font-size:0.95rem;}

/* ══ Modern Step Headers ══ */
.step-header{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:16px;
  padding:28px 0 0;
}
.step-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:var(--pine);
  color:var(--white);
  font-size:0.8rem;
  font-weight:800;
  font-family:'Inter',sans-serif;
  letter-spacing:0.04em;
  flex:none;
  box-shadow:0 2px 12px rgba(27,51,40,0.22);
}
.step-label-text{
  font-size:0.82rem;
  font-weight:800;
  letter-spacing:0.11em;
  text-transform:uppercase;
  color:var(--ink);
}
.step-header-content .step-num{
  background:var(--terracotta);
  font-size:1rem;
  box-shadow:0 2px 8px rgba(197,102,43,0.25);
}

/* ══ Altbesitzregel ══ */
.steuerwert-wrap{
  margin-top:12px; padding:14px 16px;
  background:linear-gradient(135deg, #E8F3EC 0%, #F5F0E8 100%);
  border:1.5px solid rgba(27,51,40,0.18); border-radius:12px;
}
.steuerwert-header{
  display:flex; align-items:flex-start; gap:10px; margin-bottom:12px;
}
.steuerwert-icon{ font-size:1.2rem; flex:none; margin-top:1px; }
.steuerwert-title{ font-weight:700; font-size:0.88rem; color:var(--pine); }
.steuerwert-sub{ font-size:0.76rem; color:var(--ink-soft); margin-top:2px; line-height:1.4; }
.steuerwert-toggle-label{
  display:flex; align-items:center; gap:10px;
  cursor:pointer; font-size:0.84rem; color:var(--ink); margin-bottom:0;
}
.steuerwert-toggle-label input[type="checkbox"]{ display:none; }
.steuerwert-chk{
  width:18px; height:18px; border-radius:4px;
  border:2px solid var(--pine); background:var(--white); flex:none;
  position:relative; transition:background .15s;
}
.steuerwert-toggle-label input:checked + .steuerwert-chk{ background:var(--pine); }
.steuerwert-toggle-label input:checked + .steuerwert-chk::after{
  content:"✓"; position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%); color:var(--white); font-size:0.65rem; font-weight:700;
}
.steuerwert-input{ margin-top:14px; padding-top:12px; border-top:1px solid rgba(27,51,40,0.12); }
.step-placeholder{
  margin-top:0;
}

/* Remove old section-number styles - replaced by step-header */
.section-number{ display:none; }
.section-number-2{ display:none; }

/* ══ Profil Section ══ */
.profil-card{
  background:var(--white);
  border:1px solid rgba(35,33,29,0.09);
  border-radius:20px;
  padding:28px 32px 32px;
  box-shadow:0 2px 4px rgba(35,33,29,0.03), 0 8px 32px rgba(27,51,40,0.06);
  max-width:800px;
}

.profil-section{ padding:40px 0 0; }
.profil-grid{ display:flex; flex-direction:column; gap:28px; max-width:900px; }
.profil-block{ display:flex; flex-direction:column; gap:10px; }
.profil-block-canton{ max-width:700px; animation: fadeSlideUp .3s ease; }
.profil-label{
  font-size:0.78rem; font-weight:700; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--ink-soft); margin-bottom:4px;
}
.system-banner-profil{
  margin-top:10px; padding:10px 14px;
  background:var(--white); border:1px solid var(--line); border-radius:10px;
}
@keyframes fadeSlideUp{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}
/* ══ Wichtig toggle ══ */
.wichtig-toggle{
  display:flex; align-items:center; gap:8px; cursor:pointer; user-select:none;
  padding:9px 14px; background:#FEF9F0;
  border:1px solid rgba(197,102,43,0.2); border-radius:8px;
  font-size:0.84rem; font-weight:600; color:var(--ink); margin-bottom:0;
}
.wichtig-toggle .wt-icon{ color:var(--terracotta); font-size:0.9rem; flex:none; }
.wichtig-toggle .wt-label{ flex:1; }
.wichtig-toggle .wt-arrow{ color:var(--ink-soft); transition:transform .2s; font-size:0.7rem; }
.wichtig-toggle.open .wt-arrow{ transform:rotate(180deg); }
.wichtig-body{
  display:none; padding:12px 14px;
  font-size:0.82rem; color:var(--ink-soft); line-height:1.6;
  background:#FFFBF5; border:1px solid rgba(197,102,43,0.15);
  border-top:none; border-radius:0 0 8px 8px;
}
.wichtig-toggle.open + .wichtig-body{ display:block; }

/* ═══════════════════════════════════════════════════
   MOBILE — Comprehensive overhaul (≤ 768px)
   All touch targets ≥ 44px · Readable fonts · No overflow
═══════════════════════════════════════════════════ */
@media(max-width:768px){

  /* ── Wrap ── */
  .wrap{ padding:0 16px; }

  /* ── Topbar ── */
  .topbar-inner{ padding:0 18px; height:60px; }
  .topnav{ display:none; }
  .btn-nav{ display:none; }
  .brand-logo{ width:36px; height:36px; font-size:1.2rem; border-radius:10px; }
  .brand-name{ font-size:1.05rem; }

  /* ── Hero ── */
  .hero{ padding:20px 0 24px; }
  .hero h1{ font-size:clamp(1.8rem, 7.5vw, 2.6rem); line-height:1.08; }
  .hero-tagline{ font-size:0.95rem; margin-bottom:10px; }
  .eyebrow{ font-size:0.68rem; }

  /* ── Step headers ── */
  .step-header{ gap:10px; padding:20px 0 0; margin-bottom:12px; }
  .step-num{ width:32px; height:32px; font-size:0.7rem; }
  .step-label-text{ font-size:0.72rem; letter-spacing:0.09em; }

  /* ── Profil card ── */
  .profil-card{ padding:18px 16px 20px; border-radius:16px; }
  .profil-label{ font-size:0.7rem; margin-bottom:6px; }
  .seller-toggle{ flex-direction:column; gap:8px; }
  .st-btn{ min-height:52px; font-size:0.9rem; border-radius:12px; }
  .st-ico{ font-size:1.2rem; }

  /* ── Canton grid ── */
  #cantonGrid, #cantonGridProfil{
    grid-template-columns: repeat(6, 1fr);
    gap:5px;
  }
  .canton-tile{
    min-height:46px; font-size:0.72rem;
    padding:8px 2px; border-radius:8px;
    flex-direction:column; gap:2px;
  }
  .sys-dot{ width:5px; height:5px; }
  .legend-row{ flex-wrap:wrap; gap:10px; margin-top:10px; font-size:0.76rem; }

  /* System banner in profil */
  .system-banner-profil, .system-banner{
    padding:10px 12px; border-radius:10px;
  }
  .canton-banner-name{ font-size:0.92rem; flex-wrap:wrap; }
  .canton-system-badge{ font-size:0.62rem; padding:3px 9px; }
  .canton-info-badge{ font-size:0.68rem; padding:4px 9px; }
  .canton-law-link{ font-size:0.72rem; padding:4px 9px; }
  .canton-banner-meta{ gap:7px; flex-wrap:wrap; }

  /* ── Ersatzbeschaffung ── */
  .repl-section{ padding:0 0 28px; }
  .repl-cards{
    grid-template-columns:1fr;
    gap:10px;
  }
  .repl-card{ padding:16px 14px; border-radius:14px; }
  .repl-card .ico{ font-size:1.3rem; margin-bottom:8px; }
  .repl-card h4{ font-size:0.97rem; }
  .repl-card p{ font-size:0.82rem; }
  .repl-intro-text{ font-size:0.88rem; }
  .repl-state-box{ margin-top:12px; }
  .repl-detail{ padding:14px; }
  .frist-row{ font-size:0.82rem; }
  .btn-scroll-down{ padding:11px 20px; font-size:0.86rem; }
  .wichtig-toggle{ font-size:0.80rem; padding:9px 12px; }

  /* Steuerwert option */
  .steuerwert-wrap{ padding:12px 14px; border-radius:10px; }
  .steuerwert-title{ font-size:0.82rem; }
  .steuerwert-sub{ font-size:0.72rem; }
  .steuerwert-toggle-label{ font-size:0.82rem; gap:8px; }

  /* Planned estimate */
  .planned-estimate{ padding:12px; gap:10px; }
  .pe-title{ font-size:0.82rem; }
  .pe-detail{ font-size:0.74rem; }
  .pe-row{ font-size:0.78rem; }

  /* ── Calc shell ── */
  .calc-shell{ margin:20px 0 40px; border-radius:16px; }
  .calc-grid{ grid-template-columns:1fr; }
  .calc-left{
    padding:22px 18px 24px;
    border-right:none;
    border-bottom:1px solid var(--line);
    order:1;
  }
  .calc-right{
    padding:24px 18px 28px;
    order:2;
    border-radius:0 0 16px 16px;
  }
  .seller-toggle-wrap{ padding:14px; border-radius:12px; }

  /* ── Inputs ── */
  input[type="text"], input[type="number"]{
    min-height:50px; font-size:1rem;
    padding:14px 14px 14px 52px;
    border-radius:10px;
  }
  input[type="date"]{
    min-height:50px; font-size:0.9rem;
    padding:14px; border-radius:10px;
  }
  .input-wrap span.prefix{ font-size:0.88rem; }
  .field-row{ gap:10px; }

  /* Duration hint */
  .dur-hint-box{ font-size:0.8rem; padding:10px 12px; }
  .dh-title{ font-size:0.78rem; }
  .dh-row{ font-size:0.76rem; }
  .dh-next{ font-size:0.73rem; }
  #durationDisplay{ font-size:0.85rem; }

  /* Deduction rows */
  .deduction-row{
    flex-direction:column; gap:6px; align-items:flex-start;
  }
  .deduction-row .input-wrap{ width:100%; max-width:100%; }
  .deduction-row input{ padding:12px 12px 12px 44px; }

  /* Self-occupied checkbox */
  .self-occ-wrap{ padding:10px 14px; border-radius:10px; }
  .self-occ-text{ font-size:0.84rem; }

  /* ── Result panel (right) ── */
  .result-eyebrow{ font-size:0.7rem; margin-bottom:6px; }
  .result-canton{ font-size:0.82rem; margin-bottom:10px; }
  .result-main{ font-size:clamp(2.2rem, 9vw, 3.2rem); margin-bottom:14px; }
  .result-empty-hint .hint-icon{ font-size:2rem; }
  .result-empty-hint{ font-size:0.84rem; padding:28px 16px 16px; }

  /* Rate row */
  .rate-compact{ gap:8px; padding:8px 0 10px; }
  .rc-label{ font-size:0.6rem; }
  .rc-value{ font-size:1rem; }

  /* Breakdown */
  .breakdown-row .k{ font-size:0.78rem; }
  .breakdown-row .v{ font-size:0.8rem; font-family:'JetBrains Mono',monospace; }
  .breakdown-row.total .k,
  .breakdown-row.total .v{ font-size:0.86rem; }

  /* Deferred box */
  .deferred-summary-box{ padding:11px 12px; }
  .ds-title{ font-size:0.74rem; }
  .ds-row{ font-size:0.76rem; }
  .ds-note{ font-size:0.70rem; }

  
/* Prior gain box in calculator */
.prior-gain-box{
  margin-top:14px; padding:14px 16px;
  background:rgba(197,102,43,0.06);
  border:1.5px solid rgba(197,102,43,0.2);
  border-radius:12px;
}
.pgb-label{
  font-size:0.84rem; font-weight:600; color:var(--ink);
  margin-bottom:10px; display:flex; align-items:center; gap:8px;
}
.pgb-note{
  font-size:0.74rem; color:var(--ink-soft); margin-top:8px; line-height:1.4;
}

/* Scale bar */
  .scale-wrap{ padding-top:14px; }
  .pct-big{ font-size:1.3rem; }
  .pct-label{ font-size:0.64rem; letter-spacing:0.06em; }
  .pct-chf{ font-size:0.74rem; }

  /* ── Wissensbereich ── */
  .czd-main-title{ font-size:clamp(1.5rem, 6vw, 2.2rem); }
  .czd-subtitle{ font-size:0.9rem; }
  .content-zone-divider{ margin-top:60px; margin-bottom:32px; }

  .section-head h2{ font-size:clamp(1.3rem, 5vw, 1.8rem); }
  .qa-grid{ grid-template-columns:1fr; gap:12px; }
  .qa-card{ padding:18px 16px; }
  .qa-card h3{ font-size:1rem; }
  .qa-card p{ font-size:0.84rem; }
  .code-block{ font-size:0.8rem; padding:10px 12px; }

  /* Compare boxes */
  .compare-wrap{ grid-template-columns:1fr; gap:10px; }
  .compare-col{ padding:18px 16px; border-radius:12px; }
  .compare-col h3{ font-size:1rem; }
  .compare-list li{ font-size:0.84rem; padding:8px 0; }
  .compare-col-badge{ font-size:0.66rem; padding:3px 9px; }

  /* USP / Factor box */
  .usp-box{ grid-template-columns:1fr; gap:14px; padding:20px 16px; }
  .usp-icon{ width:44px; height:44px; border-radius:10px; font-size:1.2rem; }

  /* Ads horizontal banner */
  .ad-banner{ padding:16px; gap:12px; flex-direction:column; }
  .ad-banner .ad-title{ font-size:0.95rem; }
  .ad-banner .ad-text{ font-size:0.82rem; }

  /* Contact form */
  
  
  
  
  .cfield-row{ grid-template-columns:1fr; }
  .cfield input, .cfield textarea{ font-size:1rem; min-height:48px; border-radius:8px; }
  .btn-send{ font-size:0.94rem; min-height:52px; border-radius:10px; }
  .trust-item{ font-size:0.86rem; }

  /* Footer */
  .footer-inner{
    flex-direction:column; gap:8px; align-items:flex-start;
    font-size:0.75rem;
  }
  .legal{ font-size:0.72rem; }

  /* Side ads: always hide */
  .side-ad-col{ display:none !important; }

  /* Step placeholders */
  .step-placeholder{ font-size:0.8rem; padding:13px 14px; }
  .sp-lock{ font-size:0.9rem; }
}

/* ── Very small phones ── */
@media(max-width:390px){
  .wrap{ padding:0 12px; }
  .hero h1{ font-size:clamp(1.6rem, 7vw, 2rem); }
  #cantonGrid, #cantonGridProfil{ grid-template-columns: repeat(5,1fr); gap:4px; }
  .canton-tile{ min-height:40px; font-size:0.66rem; }
  .result-main{ font-size:2rem; }
  .st-btn{ font-size:0.82rem; min-height:48px; }
  .repl-card{ padding:14px 12px; }
}
/* ══ Hamburger + Mobile Menu ══ */
.desktop-only{ display:flex; }
.burger{
  display:none;
  flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer;
  padding:8px; margin:-8px;
  width:44px; height:44px; align-items:center; justify-content:center;
}
.burger span{
  display:block; width:22px; height:2px;
  background:var(--ink); border-radius:2px;
  transition:transform .25s, opacity .25s;
}
.burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ── Navigation: Dropdown "Rechner & Tools" ── */
.nav-drop{ position:relative; display:inline-block; }
.nav-drop-trigger{ display:inline-flex; align-items:center; gap:5px; }
.nav-caret{ width:14px; height:14px; flex:none; vertical-align:-1px; fill:none; stroke:currentColor; stroke-width:2.25; stroke-linecap:round; stroke-linejoin:round; opacity:.75; transition:transform .18s ease; }
.nav-drop:hover .nav-caret, .nav-drop:focus-within .nav-caret{ transform:rotate(180deg); }
.nav-panel{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
  min-width:640px; background:var(--white); border:1px solid var(--line); border-radius:16px;
  box-shadow:0 14px 40px rgba(27,51,40,.16); padding:18px 20px; z-index:120;
  opacity:0; visibility:hidden; pointer-events:none; transition:opacity .16s ease, transform .16s ease;
}
.nav-drop:hover .nav-panel, .nav-drop:focus-within .nav-panel{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(2px);
}
.nav-featured{ display:flex; align-items:center; gap:12px; background:var(--pine-pale); border:1px solid var(--pine);
  border-radius:12px; padding:12px 14px; margin-bottom:16px; text-decoration:none; transition:background .15s ease; }
.nav-featured:hover{ background:#dcebe1; }
.nav-featured-icon{ font-size:1.6rem; line-height:1; flex-shrink:0; }
.nav-featured-text{ display:flex; flex-direction:column; gap:1px; flex:1; }
.nav-featured-tag{ font-size:.68rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--terracotta); }
.nav-featured-name{ font-weight:700; color:var(--pine); font-size:.98rem; }
.nav-featured-sub{ font-size:.82rem; color:var(--ink-soft); }
.nav-featured-arrow{ font-size:1.2rem; color:var(--pine); flex-shrink:0; }
.mm-featured{ display:flex; align-items:center; gap:10px; background:var(--pine-pale); border:1px solid var(--pine);
  border-radius:10px; padding:10px 12px; margin:6px 4px 10px; text-decoration:none; }
.mm-featured-icon{ font-size:1.3rem; }
.mm-featured-text{ display:flex; flex-direction:column; gap:1px; }
.mm-featured-tag{ font-size:.64rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--terracotta); }
.mm-featured-name{ font-weight:700; color:var(--pine); font-size:.92rem; }
.vfe-hint{ color:var(--ink-soft); margin:12px 0; }
.vfe-out{ border-radius:12px; padding:14px 16px; margin:14px 0; border-left:4px solid var(--pine); background:var(--pine-pale); }
.vfe-out.vfe-warn{ border-left-color:var(--terracotta); background:#f9f1e9; }
.vfe-out.vfe-ja{ border-left-color:#2f7a4f; background:#e8f2ec; }
.vfe-title{ font-weight:700; font-size:1rem; color:var(--pine); margin:0 0 4px; }
.vfe-amount{ font-size:1.5rem; font-weight:700; color:var(--ink); margin:0 0 6px; }
.knk-result{ margin-top:14px; }
.knk-legende{ display:flex; align-items:center; gap:10px; margin:0 0 8px; font-size:.86rem; color:var(--ink-soft); }
.knk-legende:last-of-type{ margin-bottom:16px; }
.knk-top-trust{ font-size:.84rem; color:var(--ink-soft); margin:0 0 18px; display:flex; flex-wrap:wrap; gap:4px 10px; align-items:center; }
.knk-top-trust a{ color:var(--pine); font-weight:600; text-decoration:none; }
.tool-hero{ display:flex; align-items:center; gap:18px; background:var(--pine-pale); border:2px solid var(--pine);
  border-radius:20px; padding:20px 22px; margin:4px 0 18px; text-decoration:none;
  box-shadow:0 4px 16px rgba(27,51,40,.1); transition:transform .15s ease, box-shadow .15s ease; }
.tool-hero:hover{ transform:translateY(-3px); box-shadow:0 8px 24px rgba(27,51,40,.18); }
.tool-hero-icon{ font-size:2.4rem; line-height:1; flex-shrink:0; }
.tool-hero-body{ display:flex; flex-direction:column; gap:3px; flex:1; }
.tool-hero-tag{ font-size:.72rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--terracotta); }
.tool-hero-name{ font-size:1.18rem; font-weight:700; color:var(--pine); }
.tool-hero-text{ font-size:.94rem; color:var(--ink-soft); line-height:1.5; }
.tool-hero-ideal{ font-size:.86rem; color:var(--pine); font-style:italic; margin-top:2px; }
.tool-hero-arrow{ font-size:1.6rem; color:var(--pine); flex-shrink:0; }
.tool-ideal{ font-size:.82rem; color:var(--pine); font-style:italic; margin-top:2px; }
@media (max-width:640px){ .tool-hero{ flex-wrap:wrap; } }
.nav-panel-inner{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px 22px; }
.nav-col-title{ margin:0 0 8px; font-size:.74rem; font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; color:var(--terracotta); }
.nav-panel a{ display:flex; align-items:center; gap:8px; padding:6px 8px; margin:0 -8px;
  border-radius:8px; color:var(--ink); font-size:.92rem; font-weight:500; text-decoration:none; }
.nav-panel a:hover{ background:var(--cream); color:var(--pine); }
.nav-ico{ font-size:1rem; line-height:1; }
.nav-col-all{ grid-column:1 / -1; border-top:1px solid var(--line); padding-top:12px; margin-top:2px; }
.nav-all{ font-weight:700 !important; color:var(--pine) !important; }
@media (max-width:1100px){ .nav-panel{ min-width:0; width:92vw; max-width:640px; } }
/* ── Mobile-Menü: Gruppen ── */
.mm-group{ margin:14px 0 4px; padding:0 4px; font-size:.72rem; font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; color:var(--terracotta); }
.mm-nav a.mm-sub{ padding-left:14px; font-size:.94rem; }
.mobile-menu{
  position:fixed; top:0; right:0;
  width:min(320px, 85vw); height:100vh; height:100dvh;
  background:var(--white);
  box-shadow:-4px 0 32px rgba(35,33,29,0.18);
  z-index:200; display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(0.4,0,0.2,1);
  padding:0;
  padding-top:env(safe-area-inset-top);
  padding-bottom:env(safe-area-inset-bottom);
}
.mobile-menu.open{ transform:translateX(0); }

.mm-overlay{
  display:none; position:fixed; inset:0;
  background:rgba(23,22,18,0.6);
  backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
  z-index:199; opacity:0; transition:opacity .3s;
}
.mm-overlay.open{ display:block; opacity:1; }

.mm-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 24px 14px;
  border-bottom:1px solid var(--line);
  background:var(--pine);
}
.mm-brand{ font-size:1.05rem; font-weight:700; color:var(--cream); letter-spacing:-0.01em; }
.mm-close{
  background:rgba(247,243,234,0.1); border:none; border-radius:50%;
  width:36px; height:36px; color:var(--cream);
  font-size:0.9rem; cursor:pointer; display:flex;
  align-items:center; justify-content:center;
  transition:background .15s;
}
.mm-close:hover{ background:rgba(247,243,234,0.2); }

.mm-nav{
  flex:1; display:flex; flex-direction:column;
  padding:12px 0; overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.mm-nav a{
  display:flex; align-items:center; gap:14px;
  padding:16px 24px; text-decoration:none;
  color:var(--ink); font-size:1rem; font-weight:500;
  transition:background .15s;
  border-bottom:1px solid var(--line);
  min-height:56px;
}
.mm-nav a:last-child{ border-bottom:none; }
.mm-nav a:hover{ background:var(--cream-deep); }
.mm-ico{ font-size:1.3rem; flex:none; width:28px; text-align:center; }

.mm-toggle{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  padding:16px 24px; background:none; border:none; border-bottom:1px solid var(--line);
  color:var(--ink); font-size:1rem; font-weight:600; font-family:inherit;
  cursor:pointer; min-height:56px; text-align:left;
}
.mm-toggle:hover{ background:var(--cream-deep); }
.mm-chevron{ width:14px; height:14px; flex:none; fill:none; stroke:currentColor; stroke-width:2.25; stroke-linecap:round; stroke-linejoin:round; color:var(--ink-soft); transition:transform .25s ease; }
.mm-toggle[aria-expanded="true"] .mm-chevron{ transform:rotate(180deg); }
.mm-panel{
  display:grid; grid-template-rows:0fr;
  background:var(--cream); border-bottom:1px solid var(--line);
  transition:grid-template-rows .28s ease;
}
.mm-panel.mm-panel-open{ grid-template-rows:1fr; }
.mm-panel-inner{ overflow:hidden; min-height:0; padding:0 0; }
.mm-panel.mm-panel-open .mm-panel-inner{ padding:4px 0 10px; }
.mm-panel .mm-group{ padding:10px 24px 4px; margin:0; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-soft); font-weight:700; }
.mm-panel a.mm-sub{ border-bottom:none; min-height:44px; padding:9px 24px; }
.mm-panel a.mm-all{ border-bottom:none; min-height:40px; padding:9px 24px; font-weight:600; color:var(--pine); }
.mm-sub-grid{ display:grid; grid-template-columns:1fr 1fr; }
.mm-sub-grid a.mm-sub{ padding:9px 12px; font-size:0.88rem; }
.mm-sub-grid a.mm-sub:nth-child(odd){ border-right:1px solid var(--line); }

.mm-cta-wrap{
  padding:14px 24px 14px;
  border-top:1px solid var(--line);
  background:var(--cream);
}
.mm-cta{
  display:block; width:100%;
  background:var(--pine); color:var(--white);
  text-align:center; padding:16px 20px;
  border-radius:12px; text-decoration:none;
  font-size:1rem; font-weight:700;
  transition:background .15s;
}
.mm-cta:hover{ background:var(--terracotta); }
.mm-cta-sub{ text-align:center; font-size:0.76rem; color:var(--ink-soft); margin-top:6px; }

@media(max-width:768px){
  .burger{ display:flex; }
  .desktop-only{ display:none; }
  .topnav{ display:none; }
}

/* ══ KONTAKTFORMULAR — sf-contact ══ */
.sf-contact{display:grid;grid-template-columns:1fr 1.5fr;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 6px 36px rgba(27,51,40,0.10);border:1px solid rgba(27,51,40,0.08);}
.sf-contact-left{background:linear-gradient(155deg,#1B3328 0%,#0E1F17 100%);padding:48px 40px;display:flex;flex-direction:column;gap:0;}
.sf-badge{display:inline-block;background:rgba(255,255,255,0.12);color:rgba(247,243,234,0.75);border:1px solid rgba(255,255,255,0.18);padding:5px 14px;border-radius:9999px;font-size:0.66rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:24px;}
.sf-heading{font-family:'Fraunces',serif;font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:600;color:#fff;line-height:1.2;margin:0 0 16px;}
.sf-desc{font-size:0.9rem;color:rgba(247,243,234,0.6);line-height:1.65;margin:0 0 32px;}
.sf-checks{display:flex;flex-direction:column;gap:14px;margin-top:auto;}
.sf-check{display:flex;align-items:center;gap:12px;font-size:0.92rem;color:rgba(247,243,234,0.88);}
.sf-ico{width:22px;height:22px;border-radius:50%;background:#C5662B;color:#fff;display:flex;align-items:center;justify-content:center;font-size:0.65rem;font-weight:800;flex:none;}
.sf-contact-right{padding:48px 44px;background:#ffffff;display:flex;flex-direction:column;justify-content:center;}
.sf-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.sf-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
.sf-field label{font-weight:600;font-size:0.86rem;color:#1B3328;}
.sf-opt{font-weight:400;color:#999;font-size:0.78rem;}
.sf-field input,.sf-field textarea{background:#EEE9DE;border:1.5px solid transparent;border-radius:10px;padding:12px 14px;font-family:inherit;font-size:0.95rem;color:#23211D;transition:border-color .2s,background .2s,box-shadow .2s;width:100%;box-sizing:border-box;}
.sf-field input:focus,.sf-field textarea:focus{outline:none;border-color:#C5662B;background:#fff;box-shadow:0 0 0 3px rgba(197,102,43,0.12);}
.sf-field textarea{min-height:110px;resize:vertical;}
.sf-btn{width:100%;padding:15px 20px;background:#C5662B;color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 4px 16px rgba(197,102,43,0.3);transition:background .2s,transform .15s;margin-bottom:10px;}
.sf-btn:hover{background:#A8431A;transform:translateY(-1px);}
.sf-note{text-align:center;font-size:0.76rem;color:#999;margin:0;}
@media(max-width:768px){.sf-contact{grid-template-columns:1fr;}.sf-contact-left{padding:32px 24px;}.sf-contact-right{padding:32px 24px;}.sf-row{grid-template-columns:1fr;}}
/* ══ KONTAKTFORMULAR end ══ */

/* ══ FEHLER MELDEN ══ */
.report-trigger{
  display:inline-flex; align-items:center; gap:5px;
  background:none; border:none; padding:0; margin:0;
  font-family:inherit; font-size:0.8rem; color:var(--terracotta);
  cursor:pointer; text-decoration:underline; text-underline-offset:2px;
  transition:color .15s;
}
.report-trigger:hover{ color:#A8431A; }
.report-trigger.in-result{ margin-top:8px; }
.pdf-report-btn{
  display:block; width:100%; margin:14px 0 4px; padding:13px 18px;
  background:var(--white); color:var(--pine); border:1.5px solid var(--pine);
  border-radius:12px; font-family:inherit; font-size:0.95rem; font-weight:600;
  cursor:pointer; transition:background 0.15s, color 0.15s, transform 0.05s;
}
.pdf-report-btn:hover{ background:var(--pine); color:var(--cream); }
.pdf-report-btn:active{ transform:translateY(1px); }
.pdf-report-btn:focus-visible{ outline:2px solid var(--terracotta); outline-offset:2px; }
.footer-report-link{
  background:none; border:none; padding:6px 4px; margin:-6px -4px; font-family:inherit;
  color:inherit; text-decoration:underline; text-underline-offset:2px;
  cursor:pointer; font-size:inherit; display:inline-block;
}
.footer-report-link:hover{ color:var(--gold); }

.report-overlay{
  display:none; position:fixed; inset:0; z-index:300;
  background:rgba(15,25,20,0.55); opacity:0; transition:opacity .25s;
  align-items:center; justify-content:center; padding:20px;
}
.report-overlay.open{ display:flex; opacity:1; }
.report-modal{
  background:#fff; width:100%; max-width:480px; max-height:90vh; overflow-y:auto;
  border-radius:18px; box-shadow:0 24px 70px rgba(0,0,0,0.35);
  transform:translateY(12px); transition:transform .25s;
}
.report-overlay.open .report-modal{ transform:translateY(0); }
.report-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 24px; background:var(--pine); color:#fff;
  border-radius:18px 18px 0 0;
}
.report-head strong{ font-size:1.05rem; font-weight:700; }
.report-x{
  background:none; border:none; color:#fff; font-size:1.3rem; line-height:1;
  cursor:pointer; opacity:0.8; padding:0 4px;
}
.report-x:hover{ opacity:1; }
.report-body{ padding:22px 24px 24px; }
.report-intro{ font-size:0.88rem; color:var(--ink-soft); line-height:1.5; margin:0 0 16px; }
.report-context{
  background:var(--cream); border:1px solid var(--line); border-radius:10px;
  padding:12px 14px; font-size:0.8rem; color:var(--ink-soft);
  margin-bottom:18px; line-height:1.6;
}
.report-context strong{ color:var(--ink); }
.report-label{
  display:block; font-size:0.78rem; font-weight:700; color:var(--pine);
  text-transform:uppercase; letter-spacing:0.03em; margin:0 0 6px;
}
.report-input{
  width:100%; box-sizing:border-box; padding:11px 13px; margin-bottom:15px;
  border:1.5px solid var(--line); border-radius:9px; background:var(--cream);
  font-family:inherit; font-size:0.92rem; color:var(--ink); transition:border-color .15s,box-shadow .15s;
}
.report-input:focus{ outline:none; border-color:var(--terracotta); background:#fff; box-shadow:0 0 0 3px rgba(197,102,43,0.12); }
textarea.report-input{ resize:vertical; min-height:90px; }
.report-check{ display:flex; align-items:flex-start; gap:9px; margin:14px 0 4px; font-size:0.85rem; line-height:1.45; color:var(--ink-soft); cursor:pointer; }
.report-check input{ margin-top:2px; width:17px; height:17px; flex-shrink:0; accent-color:var(--pine); cursor:pointer; }
.report-check a{ color:var(--terracotta); }
.report-actions{ display:flex; gap:10px; margin-top:4px; }
.report-send{
  flex:1; padding:13px 18px; background:var(--terracotta); color:#fff; border:none;
  border-radius:12px; font-family:inherit; font-size:0.95rem; font-weight:700; cursor:pointer;
  box-shadow:0 4px 14px rgba(197,102,43,0.28); transition:background .2s,transform .15s;
}
.report-send:hover{ background:#A8431A; transform:translateY(-1px); }
.report-send:active{ transform:translateY(1px); }
.report-send:focus-visible{ outline:2px solid var(--pine); outline-offset:2px; }
.report-copy{
  padding:13px 16px; background:var(--pine-pale); color:var(--pine); border:1.5px solid var(--line);
  border-radius:10px; font-family:inherit; font-size:0.9rem; font-weight:600; cursor:pointer; transition:background .15s;
}
.report-copy:hover{ background:#D9E2D7; }
.report-success{
  margin-top:16px; padding:14px 16px; background:var(--pine-pale); border:1px solid #B9CDBE;
  border-radius:10px; color:var(--pine); font-size:0.88rem; line-height:1.5;
}
.report-err{ color:var(--terracotta); font-size:0.8rem; margin:-8px 0 12px; display:none; }

/* ===== Mobile-Feinschliff (UI) ===== */
html, body{ overflow-x:hidden; }
@media (max-width:768px){
  /* Verhindert iOS-Auto-Zoom beim Antippen von Eingabefeldern (alle <16px werden angehoben) */
  input, select, textarea{ font-size:16px !important; }
  /* Sicherheitsnetz gegen horizontales Scrollen bei breiten Elementen */
  .scale-wrap, #breakdown, .breakdown, table{ max-width:100%; }
}
@media (max-width:430px){
  .calc-left, .calc-right{ padding:24px 18px; }
  .result-main{ font-size:clamp(1.9rem, 8.5vw, 2.4rem); }
  .wrap{ padding:0 14px; }
}
/* Anker-Offset wegen sticky Topbar – Sprung landet sauber, nicht verdeckt */
#kontakt, #contactForm{ scroll-margin-top:84px; }

/* ===== Druck: sauberer Ergebnis-Ausdruck (nur @media print, Screen unberührt) ===== */
@media print {
  *, *::before, *::after { background:transparent !important; box-shadow:none !important; text-shadow:none !important; }
  html, body { background:#fff !important; color:#000 !important; font-size:11pt; line-height:1.4; }
  @page { margin:1.6cm; }
  a { color:#000 !important; text-decoration:none !important; }

  /* Navigation, werbliche & interaktive Elemente sowie Nicht-Ergebnis-Inhalte ausblenden */
  .topnav, .mm-nav, .mobile-menu, .breadcrumb, footer, .skip-link,
  #consentBanner, #consentReject, .report-overlay,
  .profil-section, .repl-section, .related-block, .related-cols, section.section,
  .pdf-report-btn, .report-trigger, .rb-btn, .rb-secondary, .rb-btn-outline,
  [class*="navimo"], button {
    display:none !important;
  }

  /* Berechnungsdetails im Druck immer aufgeklappt zeigen */
  .detail-body { display:block !important; }

  /* Hero auf reinen Titel reduzieren */
  .hero { padding:0 0 8pt !important; }
  .hero-lead, .hero form, .hero .btn, .hero button { display:none !important; }
  .hero h1 { font-size:18pt !important; color:#000 !important; }

  /* Einspaltig, volle Breite */
  .container, main, .wrap { max-width:100% !important; width:auto !important; margin:0 !important; padding:0 !important; }
  #rechner { border:0 !important; padding:0 !important; box-shadow:none !important; }
  .calc-grid { display:block !important; }
  .calc-left, .calc-right { width:100% !important; max-width:100% !important; float:none !important; display:block !important; page-break-inside:avoid; }
  .calc-right { border:1.5pt solid #000 !important; border-radius:0 !important; padding:10pt !important; margin-top:12pt !important; }

  /* Ergebnis prominent, Eingaben lesbar */
  #taxAmount { font-size:22pt !important; font-weight:700 !important; color:#000 !important; }
  input { border:1pt solid #999 !important; color:#000 !important; }
  .input-wrap { border:0 !important; }
  h1, h2, h3 { page-break-after:avoid; color:#000 !important; }
}
/* Phase 2: Breadcrumb + interne Verlinkung (dezent, im bestehenden Design) */
.breadcrumb{font-size:.8rem;color:var(--ink-soft);padding:10px 0 0;}
.breadcrumb .wrap{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.breadcrumb a{color:var(--ink-soft);text-decoration:none;}
.breadcrumb a:hover{color:var(--pine);}
.breadcrumb .bc-sep{opacity:.4;}
.breadcrumb [aria-current=page]{color:var(--gold);font-weight:600;font-style:italic;text-decoration:none;}
.footer-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:880px;margin:18px auto 0;text-align:left;font-size:.86rem;}
.footer-col-title{font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--gold);margin:0 0 10px;}
.footer-col{display:flex;flex-direction:column;gap:7px;}
@media(max-width:640px){.footer-cols{grid-template-columns:1fr 1fr;gap:22px 18px;text-align:left;}}
.skip-link{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--pine);color:var(--cream);padding:10px 16px;border-radius:0 0 8px 0;font-weight:600;text-decoration:none;}
.skip-link:focus{left:0;}
main{display:block;}
.legal-page h2{font-size:1.15rem;margin:22px 0 8px;}
.legal-page p{line-height:1.65;margin:0 0 12px;}
.legal-page mark.todo{background:#ffe9a8;color:#7a5a00;padding:1px 6px;border-radius:4px;font-weight:600;font-style:normal;}
.quellen-list{list-style:none;padding:0;margin:8px 0 0;}
.quellen-list li{padding:10px 0;border-bottom:1px solid var(--line);line-height:1.5;}
.quellen-list .q-src{font-size:.82rem;color:var(--ink-soft);}
.quellen-list a{color:var(--pine);}
#hub{padding-top:8px;}
.deduction-hint{background:var(--pine-pale);border-radius:10px;padding:10px 14px;font-size:.82rem;line-height:1.5;color:var(--ink);margin:0 0 14px;}
.cmp-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.9rem;}
.cmp-table th,.cmp-table td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top;line-height:1.45;}
.cmp-table thead th{background:var(--pine);color:var(--cream);font-weight:600;}
.cmp-table tbody tr:nth-child(even){background:var(--cream-deep);}
.markt-table td:first-child{color:var(--ink-soft);}
.markt-wert{font-weight:700;font-size:1.02rem;color:var(--pine);}
.markt-top-stand{font-size:.8rem;font-weight:600;color:var(--ink-soft);margin:-4px 0 18px;}
.markt-table thead th:first-child{border-top-left-radius:10px;}
.markt-table thead th:last-child{border-top-right-radius:10px;}
@media(max-width:560px){.cmp-table{font-size:.82rem;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}.cmp-table th,.cmp-table td{padding:7px 8px;}}
.hub-head{text-align:center;max-width:640px;margin:0 auto 26px;}
.hub-eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--terracotta);margin-bottom:8px;}
.hub-title{font-size:clamp(1.4rem,4vw,2rem);margin:0 0 8px;color:var(--pine);}
.hub-sub{color:var(--ink-soft);font-size:.98rem;line-height:1.55;margin:0;}
.hub-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch;}
.hub-card{display:flex;flex-direction:column;gap:9px;height:100%;padding:26px 22px;background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;}
.hub-card:hover{transform:translateY(-3px);box-shadow:0 4px 10px rgba(35,33,29,.07),0 14px 32px rgba(35,33,29,.10);border-color:var(--pine-pale);}
.hub-card:focus-visible{outline:2px solid var(--pine);outline-offset:2px;}
.hub-ico{font-size:1.7rem;}
.hub-card-title{font-size:1.05rem;font-weight:700;color:var(--ink);}
.hub-card-desc{font-size:.86rem;color:var(--ink-soft);line-height:1.5;flex:1;}
.hub-card-meta{font-size:.84rem;font-weight:600;color:var(--pine);margin-top:6px;}
@media(max-width:900px){.hub-grid{grid-template-columns:repeat(2,1fr);gap:16px;}}
@media(max-width:520px){.hub-grid{grid-template-columns:1fr;}.hub-card{padding:22px 20px;}}
.consent-banner{position:fixed;left:0;right:0;bottom:0;z-index:1900;background:var(--pine);color:var(--cream);padding:14px 18px calc(14px + env(safe-area-inset-bottom));display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;justify-content:center;box-shadow:0 -2px 16px rgba(0,0,0,.18);}
.consent-banner .consent-text{margin:0;font-size:.86rem;line-height:1.5;max-width:640px;}
.consent-banner .consent-text a{color:var(--cream);text-decoration:underline;}
.consent-actions{display:flex;gap:10px;flex-shrink:0;}
.consent-btn{padding:12px 20px;min-height:44px;border-radius:8px;font-size:.86rem;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid transparent;}
.consent-accept{background:var(--gold);color:var(--ink);}
.consent-accept:hover{filter:brightness(1.05);}
.consent-reject{background:transparent;color:var(--cream);border-color:rgba(255,255,255,.5);}
.consent-reject:hover{background:rgba(255,255,255,.1);}
.consent-btn:focus-visible{outline:2px solid var(--cream);outline-offset:2px;}
.footer-col a{color:inherit;text-decoration:none;opacity:.82;}
.footer-col a:hover{opacity:1;text-decoration:underline;}
.kanton-list,.wissen-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;}
.lex-search-wrap{margin:0 0 18px;}
.lex-search{width:100%;max-width:480px;padding:12px 16px;border:1.5px solid var(--line);border-radius:12px;font-size:.98rem;font-family:inherit;background:var(--white);color:var(--ink);}
.lex-search:focus{outline:none;border-color:var(--pine);box-shadow:0 0 0 3px var(--pine-pale);}
.lex-az{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 26px;}
.lex-az a{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--white);border:1px solid var(--line);color:var(--pine);font-weight:600;font-size:.84rem;text-decoration:none;}
.lex-az a:hover{background:var(--pine-pale);border-color:var(--pine);}
.lex-kat-section{margin-bottom:8px;}
.lex-kat-title{font-size:1.05rem;font-weight:700;color:var(--pine);margin:0 0 14px;padding-bottom:8px;border-bottom:2px solid var(--pine-pale);}
.lex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;}
.lex-card{position:relative;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);scroll-margin-top:90px;}
.lex-term{font-size:1rem;font-weight:700;color:var(--ink);margin:0 0 6px;}
.lex-kurz{font-size:.88rem;line-height:1.55;color:var(--ink-soft);margin:0 0 10px;}
.lex-more{font-size:.84rem;font-weight:600;color:var(--pine);text-decoration:none;}
.lex-more:hover{text-decoration:underline;}
.lex-empty{padding:24px;text-align:center;color:var(--ink-soft);font-size:.92rem;}
@media(max-width:560px){.lex-grid{grid-template-columns:1fr;}.lex-az a{width:28px;height:28px;}}
.kanton-list a,.wissen-list a{color:var(--pine);text-decoration:none;}
.kanton-list a:hover,.wissen-list a:hover{text-decoration:underline;}
/* Phase 3: Inhaltselemente (Tabelle, Quellen, Kontextlinks) im bestehenden Design */
.gg-table{width:100%;border-collapse:collapse;margin:10px 0 6px;font-size:.9rem;}
.gg-table th,.gg-table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);}
.gg-table th{color:var(--ink);font-weight:600;}
.gg-table td:last-child,.gg-table th:last-child{text-align:right;white-space:nowrap;}
.quellen{margin:4px 0 0;padding-left:18px;}
.quellen a{color:var(--pine);}
.weiter-links{color:var(--ink-soft);font-size:.9rem;margin:0;}
.weiter-links a{color:var(--pine);text-decoration:none;}
.weiter-links a:hover{text-decoration:underline;}
/* Phase 3 UX: Karten, Boxen, Hinweise, Tabellen, Rechner-Rueckfuehrung, vorbereitete Slots (nur bestehende Tokens) */
.kanton-content .section{max-width:880px;}
.h1-canton{color:var(--gold);font-style:italic;}
.gg-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px;}
.ueberblick .lead p{margin:0;font-size:1.02rem;color:var(--ink);line-height:1.65;}
.fakten{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none;}
.fakten li{background:var(--cream-deep);border:1px solid var(--line);border-radius:20px;padding:5px 12px;font-size:.82rem;color:var(--ink);}
.section-head h2 .sh-ico{margin-right:8px;font-style:normal;}
.info-box{display:flex;gap:12px;background:var(--pine-pale);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:16px 0;}
.merk-box{background:var(--terracotta-soft);border-left:3px solid var(--terracotta);border-radius:8px;padding:14px 16px;margin:16px 0;}
.law-note{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--ink-soft);background:var(--cream-deep);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:14px 0;}
.info-box .bx-ico,.merk-box .bx-ico,.law-note .bx-ico{font-size:1.1rem;line-height:1.4;flex:none;}
.law-note .bx-ico{color:var(--gold);}
.info-box p,.merk-box p,.law-note div{margin:0;color:var(--ink-soft);line-height:1.6;}
.merk-box p{color:var(--ink);}
.steps{list-style:none;counter-reset:s;padding:0;margin:12px 0;}
.steps li{position:relative;padding-left:40px;margin-bottom:12px;color:var(--ink-soft);line-height:1.6;}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:1px;width:27px;height:27px;border-radius:50%;background:var(--pine);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;}
.calc-back{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:.9rem;font-weight:600;color:var(--terracotta);text-decoration:none;}
.calc-back:hover{color:var(--pine);}
.gg-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:.9rem;background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.gg-table thead th{background:var(--cream-deep);color:var(--ink);font-weight:600;}
.gg-table th,.gg-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);}
.gg-table tbody tr:last-child td{border-bottom:none;}
.gg-table td:last-child,.gg-table th:last-child{text-align:right;white-space:nowrap;}
.kanton-content ul:not(.fakten):not(.steps):not(.related-cols){padding-left:20px;margin:8px 0;}
.kanton-content ul:not(.fakten):not(.steps):not(.related-cols) li{margin-bottom:7px;color:var(--ink-soft);line-height:1.55;}
.related-block{background:var(--cream-deep);border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px;}
.related-block h2{font-size:1rem;margin:0 0 12px;}
.related-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;list-style:none;padding:0;}
.related-cols h3{font-size:.85rem;color:var(--pine);margin:0 0 6px;}
.related-cols a{display:block;color:var(--ink-soft);text-decoration:none;font-size:.9rem;padding:2px 0;}
.related-cols a:hover{color:var(--pine);}
/* Vorbereitete, aktuell INAKTIVE Slots (Phase 4/5: CTA/Navimo, Gemeinden) */
.cta-slot,.gemeinden-slot{display:none;}
html.cta-enabled .cta-slot{display:block;}
html.gemeinden-enabled .gemeinden-slot{display:block;}
.cta-box{background:var(--pine);color:var(--cream);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow);}
.cta-box .cta-title{font-size:1.1rem;font-weight:700;margin-bottom:6px;}
.cta-box p{margin:0 0 14px;color:rgba(238,233,222,.82);}
.cta-btn{display:inline-block;background:var(--terracotta);color:#fff;font-weight:700;padding:11px 20px;border-radius:10px;text-decoration:none;}
.cta-btn:hover{background:#A8531F;}
/* Phase 3b: Premium-Cards je Themenblock (nur bestehende Tokens) */
.kanton-content .section{margin-bottom:26px;}
.kanton-card{background:var(--white);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:30px 34px;}
.kanton-card > *:last-child{margin-bottom:0;}
.kanton-card .section-head{margin-bottom:16px;}
.kanton-card .section-head h2{display:flex;align-items:center;gap:13px;margin:0;font-size:1.25rem;line-height:1.3;}
.content-flow{padding:6px 2px;}
.lead-note{max-width:720px;margin:0 auto 22px;padding:0 2px;color:var(--ink-soft);line-height:1.6;}
.content-flow > *:last-child{margin-bottom:0;}
.content-flow .section-head{margin-bottom:14px;}
.content-flow .section-head h2{margin:0;font-size:1.25rem;line-height:1.3;color:var(--pine);}
.content-flow p{margin:0 0 14px;}
.content-flow table{margin:14px 0;}
.kanton-content .checklist{list-style:none;background:var(--cream-deep);border-radius:12px;padding:16px 18px 16px 20px;margin:14px 0;}
.kanton-content .checklist li{position:relative;padding-left:26px;margin-bottom:8px;color:var(--ink-soft);line-height:1.55;}
.kanton-content .checklist li:last-child{margin-bottom:0;}
.kanton-content .checklist li::before{content:"\2713";position:absolute;left:0;top:0;color:var(--terracotta);font-weight:700;}
.kanton-card .section-head h2 .sh-ico{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;border-radius:12px;background:var(--pine-pale);font-size:1.1rem;margin:0;}
.nk-controls{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));}
.kontakt-form{display:grid;gap:14px;max-width:560px;}
.kontakt-form textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;color:var(--ink);background:var(--white);}
.kf-status{margin:0;min-height:1.2em;font-size:.92rem;color:var(--ink-soft);}
.kf-status.kf-ok{color:#2f7a4f;font-weight:600;}
.kf-status.kf-error{color:#9a3b2f;font-weight:600;}
.ue-banner{max-width:1180px;margin:0 auto 14px;padding:12px 16px;background:#e8f2ec;border-left:4px solid #2f7a4f;border-radius:10px;color:#1f5637;font-size:.94rem;line-height:1.55;}
.cta-hero,.cta-end{background:var(--pine-pale);border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:var(--shadow);}
.cta-hero h2{margin:0 0 8px;color:var(--pine);}
.cta-hero p,.cta-end p{margin:0 0 14px;color:var(--ink-soft);line-height:1.6;}
.cta-tool{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--terracotta);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);}
.cta-tool-text{margin:0;flex:1 1 260px;color:var(--ink);line-height:1.55;}
.cta-btn{display:inline-block;text-decoration:none;}
.cta-inline{background:var(--cream);border-left:3px solid var(--pine);border-radius:8px;padding:12px 14px;margin:14px 0;color:var(--ink-soft);line-height:1.6;}
.cta-inline-link{white-space:nowrap;font-weight:600;}
.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:14px;}
.tool-card{display:flex;flex-direction:column;gap:6px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:16px 18px;text-decoration:none;box-shadow:var(--shadow);transition:transform .15s ease,box-shadow .15s ease;}
.tool-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(27,51,40,.12);}
.tool-icon{font-size:1.6rem;line-height:1;}
.tool-name{font-weight:700;color:var(--pine);font-size:1.02rem;}
.tool-text{color:var(--ink-soft);font-size:.9rem;line-height:1.5;}
.tw-hero{background:linear-gradient(135deg,var(--pine) 0%,var(--pine-light) 100%);color:var(--white);border-radius:var(--radius-lg);padding:var(--space-7) var(--space-6);margin-bottom:var(--space-6);}
.tw-hero-eyebrow{font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--terracotta-soft);margin:0 0 var(--space-2);}
.tw-hero h1{color:var(--white);margin:0 0 var(--space-3);}
.tw-hero p{color:rgba(255,253,248,.82);font-size:1.05rem;max-width:640px;margin:0 0 var(--space-5);}
.tw-hero-quicklinks{display:flex;flex-wrap:wrap;gap:var(--space-3);}
.tw-hero-quicklinks a{background:rgba(255,253,248,.12);border:1.5px solid rgba(255,253,248,.3);color:var(--white);padding:10px 18px;border-radius:999px;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;}
.tw-hero-quicklinks a:hover{background:rgba(255,253,248,.22);border-color:rgba(255,253,248,.55);}
.nav-box{background:var(--white);border:2px solid var(--pine);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6);margin-bottom:var(--space-6);}
.nav-box-eyebrow{font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--terracotta-text);margin:0 0 var(--space-2);}
.nav-box h2{margin:0 0 var(--space-2);font-size:1.35rem;}
.nav-box p{color:var(--ink-soft);margin:0 0 var(--space-5);}
.nav-box-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-3);}
.nav-box-opt{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);background:var(--cream-deep);border:1.5px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4) var(--space-3);text-decoration:none;color:var(--ink);font-weight:600;font-size:.92rem;text-align:center;transition:border-color .15s,transform .15s,box-shadow .15s;}
.nav-box-opt:hover{border-color:var(--pine);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.nav-box-opt-icon{font-size:1.6rem;}
.nav-box-followup{margin-top:var(--space-4);}
.nav-kanton-label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:600;color:var(--ink-soft);max-width:280px;}
.nav-kanton-label span{font-weight:400;font-size:.78rem;}
.nav-kanton-label select{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:.9rem;background:var(--white);color:var(--ink);}
.search-trigger{background:none;border:none;font-size:1.15rem;cursor:pointer;padding:12px 12px;min-height:44px;border-radius:999px;transition:background .15s;line-height:1;display:inline-flex;align-items:center;gap:6px;}
.search-trigger-label{font-size:.85rem;font-weight:600;color:var(--ink-soft);}
.search-trigger:hover,.search-trigger[aria-expanded="true"]{background:var(--pine-pale);}
.search-panel{display:none;}
.search-panel:not([hidden]){display:block;position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg);padding:var(--space-5);z-index:150;}
.search-panel-inner{display:flex;align-items:center;gap:var(--space-3);max-width:760px;margin:0 auto;}
.search-input{flex:1;padding:12px 16px;border:1.5px solid var(--pine);border-radius:var(--radius-md);font-size:1rem;font-family:inherit;}
.search-close{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:8px;color:var(--ink-soft);}
.search-results{max-width:760px;margin:var(--space-4) auto 0;}
.search-result-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2);}
.search-result-list a{display:flex;align-items:center;gap:var(--space-3);background:var(--cream-deep);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);text-decoration:none;color:var(--ink);font-weight:600;font-size:.92rem;}
.search-result-list a:hover{background:var(--pine-pale);}
.search-empty{color:var(--ink-soft);font-size:.9rem;}
@media(max-width:640px){.search-panel-inner{flex-wrap:wrap;}}
.assistant-trigger{position:fixed;right:20px;bottom:20px;z-index:180;width:56px;height:56px;border-radius:50%;background:var(--pine);color:var(--white);border:none;font-size:1.4rem;cursor:pointer;box-shadow:var(--shadow-lg);transition:transform .15s;}
.assistant-trigger:hover{transform:scale(1.06);background:var(--terracotta);}
.assistant-panel{display:none;}
.assistant-panel:not([hidden]){display:flex;flex-direction:column;position:fixed;right:20px;bottom:88px;z-index:180;width:360px;max-width:calc(100vw - 40px);height:480px;max-height:70vh;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--line);overflow:hidden;}
.assistant-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--pine);color:var(--white);font-weight:700;font-size:.95rem;}
.assistant-header .search-close{color:var(--white);}
.assistant-header-actions{display:flex;align-items:center;gap:6px;}
.assistant-reset{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.4);color:var(--white);border-radius:999px;padding:5px 11px;font-size:.76rem;font-weight:600;cursor:pointer;}
.assistant-reset:hover{background:rgba(255,255,255,.28);}
.assistant-messages{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px;}
.ai-msg{font-size:.88rem;line-height:1.5;}
.ai-msg p{margin:0 0 8px;}
.ai-msg-bot{background:var(--cream-deep);border-radius:var(--radius-sm);padding:10px 12px;align-self:flex-start;max-width:100%;}
.ai-msg-user{background:var(--pine-pale);border-radius:var(--radius-sm);padding:10px 12px;align-self:flex-end;max-width:85%;color:var(--pine);font-weight:600;}
.ai-followup{font-size:.82rem;margin-top:8px;}
.ai-followup-priority{background:var(--terracotta-soft);border-radius:var(--radius-sm);padding:8px 10px;font-weight:600;color:var(--terracotta-text);}
.assistant-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);}
.assistant-form input{flex:1;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:.88rem;font-family:inherit;}
.ai-quickreplies{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.ai-quickreply{background:var(--white);border:1.5px solid var(--pine);color:var(--pine);border-radius:999px;padding:11px 16px;min-height:44px;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s;}
.ai-quickreply:hover:not(:disabled){background:var(--pine);color:var(--white);}
.ai-quickreply:disabled{opacity:.5;cursor:default;}
@media(max-width:640px){.assistant-panel:not([hidden]){right:12px;left:12px;width:auto;bottom:80px;}.assistant-trigger{right:16px;bottom:16px;}}
.nav-box-opt.active{border-color:var(--pine);background:var(--pine-pale);}
.nav-box-result{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--line);}
.nav-result-label{font-size:.8rem;font-weight:700;color:var(--ink-soft);margin:0 0 var(--space-3);}
.nav-result-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2);}
.nav-result-list a{display:flex;align-items:center;gap:var(--space-3);background:var(--cream-deep);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);text-decoration:none;color:var(--ink);font-weight:600;font-size:.92rem;transition:background .15s;}
.nav-result-list a:hover{background:var(--pine-pale);}
.nav-result-typ{flex:none;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--terracotta-text);background:var(--terracotta-soft);border-radius:999px;padding:2px 9px;}
.nav-result-more{margin:var(--space-3) 0 0;font-size:.88rem;}
.nav-result-empty,.nav-result-loading{color:var(--ink-soft);font-size:.9rem;margin:0;}
.praxis-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5);}
.praxis-card-tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--terracotta-text);background:var(--terracotta-soft);border-radius:999px;padding:3px 12px;margin-bottom:var(--space-3);}
.praxis-card h3{margin:0 0 var(--space-2);font-size:1.05rem;}
.praxis-card p{color:var(--ink-soft);font-size:.92rem;margin:0;}
.tw-subnav{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-6);}
.tw-subnav a{background:var(--white);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:.85rem;font-weight:600;color:var(--ink-soft);text-decoration:none;transition:border-color .15s,color .15s;}
.tw-subnav a:hover,.tw-subnav a.active{border-color:var(--pine);color:var(--pine);}
.va-progress{height:8px;background:var(--line);border-radius:999px;overflow:hidden;margin:2px 0 20px;}
.va-bar{height:100%;width:10%;background:#2f7a4f;transition:width .3s ease;}
.va-step-label{font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--terracotta);margin:0 0 4px;}
.va-h{margin:0 0 12px;color:var(--pine);font-size:1.08rem;}
.va-msg{min-height:1.2em;color:#9a3b2f;font-size:.88rem;margin:8px 0 0;}
.va-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;align-items:center;}
.va-dash{margin-top:4px;}
.va-welcome-back{background:var(--pine-pale);border:1.5px solid var(--pine);border-radius:var(--radius-md);padding:20px 22px;margin-top:4px;}
.va-welcome-back p{color:var(--ink-soft);margin:6px 0 0;}
.va-reset-btn{color:var(--terracotta-text);border-color:var(--terracotta);}
.va-lead{color:var(--ink-soft);margin:0 0 14px;font-size:.94rem;}
.va-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:20px;}
.va-card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow);}
.va-card span{display:block;font-size:.78rem;color:var(--ink-soft);margin-bottom:4px;}
.va-card strong{display:block;font-size:1.24rem;color:var(--pine);}
.va-card em{display:block;font-style:normal;font-size:.78rem;color:var(--ink-soft);margin-top:2px;}
.va-card-main{border-left:4px solid var(--terracotta);}
.va-next{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.va-next li{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:space-between;background:var(--cream);border-radius:10px;padding:10px 14px;}
.va-next li span{flex:1 1 220px;font-size:.92rem;color:var(--ink);line-height:1.5;}
.va-next li a{font-weight:700;color:var(--pine);text-decoration:none;white-space:nowrap;}
.va-privacy{margin:16px 0 0;font-size:.78rem;color:var(--ink-soft);}
.vf-timeline{list-style:none;padding:0;margin:16px 0 0;position:relative;}
.vf-phase{position:relative;padding:0 0 22px 26px;border-left:2px solid var(--line);}
.vf-phase:last-child{border-left-color:transparent;padding-bottom:4px;}
.vf-phase::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--pine);}
.vf-phase.vf-ziel::before{background:var(--terracotta);width:16px;height:16px;left:-9px;}
.vf-zeit{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--terracotta);margin-bottom:4px;}
.vf-titel{font-size:1.04rem;color:var(--pine);margin:0 0 8px;}
.vf-punkte{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.vf-punkte li{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:.92rem;line-height:1.55;color:var(--ink-soft);}
.vf-punkte a{font-weight:600;color:var(--pine);text-decoration:none;white-space:nowrap;}
.vf-punkte a:hover{color:var(--terracotta);text-decoration:underline;}
.vf-warn{background:#f9f1e9;border-left:4px solid var(--terracotta);border-radius:10px;padding:12px 14px;margin:12px 0;color:var(--ink);line-height:1.55;}
.vf-hint{color:var(--ink-soft);margin:12px 0;}
.eb-out{border-radius:12px;padding:14px 16px;margin:14px 0;border-left:4px solid var(--pine);background:var(--pine-pale);}
.eb-out.eb-ja{border-left-color:#2f7a4f;background:#e8f2ec;}
.eb-out.eb-teil{border-left-color:var(--terracotta);background:#f9f1e9;}
.eb-out.eb-nein{border-left-color:#9a3b2f;background:#f7ece9;}
.eb-title{font-weight:700;font-size:1.06rem;color:var(--pine);margin:0 0 6px;}
.eb-warn{margin:10px 0 0;font-size:.9rem;color:#9a3b2f;line-height:1.55;}
.eb-links{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:14px;}
.eb-links a{font-weight:600;color:var(--pine);text-decoration:none;}
.dc-situation{background:var(--pine-pale);border-radius:12px;padding:14px 16px;margin:0 0 16px;display:grid;gap:8px;}
.dc-sit-title{margin:0 0 4px;font-weight:700;color:var(--pine);font-size:.9rem;}
.dc-progress{height:10px;background:var(--line);border-radius:999px;overflow:hidden;margin:8px 0;}
.dc-bar{height:100%;width:0;background:#2f7a4f;transition:width .3s ease;}
.dc-score{margin:0 0 8px;color:var(--ink-soft);font-size:.92rem;}
.dc-summary{margin:0 0 16px;padding:12px 14px;border-radius:10px;line-height:1.55;font-size:.94rem;}
.dc-summary.dc-warn{background:#f7ece9;color:#9a3b2f;}
.dc-summary.dc-mid{background:#f7f0e6;color:var(--terracotta);}
.dc-summary.dc-ok{background:#e8f2ec;color:#2f7a4f;}
.dc-row{border-top:1px solid var(--line);padding:10px 0;}
.ak-group .dc-row:first-of-type{border-top:none;}
.dc-row.dc-ok{opacity:.62;}
.dc-check{display:flex;gap:8px;align-items:center;flex-wrap:wrap;cursor:pointer;}
.dc-label{font-weight:600;color:var(--ink);}
.dc-woher{display:block;margin-top:4px;font-style:normal;font-size:.82rem;color:var(--pine);}
.dc-missing{margin-top:18px;}
.dc-h{font-size:1rem;color:var(--pine);margin:16px 0 8px;}
.dc-list{list-style:none;padding:0;margin:0;display:grid;gap:10px;}
.dc-list li{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--terracotta);border-radius:10px;padding:10px 12px;}
.dc-list-krit li{border-left-color:#9a3b2f;}
.dc-list strong{display:block;color:var(--ink);}
.dc-list span{display:block;font-size:.88rem;color:var(--ink-soft);line-height:1.5;margin:4px 0;}
.dc-list em{font-style:normal;font-size:.82rem;color:var(--pine);}
.ak-uebernahme{display:inline-block;margin:6px 0 14px;text-decoration:none;}
.ak-group{border:1px solid var(--line);border-radius:14px;padding:0;margin:0 0 14px;background:var(--white);overflow:hidden;}
.ak-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;font-weight:700;color:var(--pine);font-size:1.02rem;}
.ak-group summary::-webkit-details-marker{display:none;}
.ak-group summary::after{content:"+";font-size:1.3rem;font-weight:400;color:var(--ink-soft);flex-shrink:0;transition:transform .15s ease;}
.ak-group[open] summary::after{content:"\2212";}
.ak-group-count{margin-right:auto;font-weight:500;font-size:.82rem;color:var(--ink-soft);background:var(--cream);border-radius:999px;padding:2px 9px;}
.ak-group-body{padding:0 16px 8px;}
.ak-row{border-top:1px solid var(--line);padding:12px 0;}
.ak-group-body .ak-row:first-of-type{border-top:none;}
.ak-row.ak-aktiv{background:var(--cream);border-radius:8px;padding-left:10px;padding-right:10px;}
.ak-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;}
.ak-label{font-weight:600;color:var(--ink);}
.ak-badge{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap;}
.ak-b-ja{background:#e4f0e8;color:#2f7a4f;}
.ak-b-teil{background:#f7e9df;color:var(--terracotta);}
.ak-b-nein{background:#f0e6e4;color:#9a3b2f;}
.ak-info{margin:6px 0 10px;font-size:.88rem;color:var(--ink-soft);line-height:1.5;}
.ak-controls{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-end;}
.ak-amount{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--ink-soft);}
.ak-amount input{width:150px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font:inherit;}
.ak-check{display:flex;gap:6px;align-items:center;font-size:.82rem;color:var(--ink-soft);}
.ak-result{margin-top:8px;}
.ak-sums{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:12px 0;}
.ak-sum{border-radius:12px;padding:12px 14px;background:var(--white);border:1px solid var(--line);}
.ak-sum span{display:block;font-size:.8rem;color:var(--ink-soft);margin-bottom:4px;}
.ak-sum strong{font-size:1.18rem;color:var(--pine);}
.ak-s-ja{border-left:4px solid #2f7a4f;}.ak-s-teil{border-left:4px solid var(--terracotta);}.ak-s-nein{border-left:4px solid #9a3b2f;}
.ak-beleg{margin:10px 0;font-size:.9rem;line-height:1.55;}
.ak-beleg.ak-warn{color:#9a3b2f;}.ak-beleg.ak-ok{color:#2f7a4f;}
.ap-result{border-radius:12px;padding:16px 18px;margin:14px 0;border-left:4px solid var(--pine);background:var(--pine-pale);}
.ap-result.ap-ja{border-left-color:#2f7a4f;}
.ap-result.ap-teil{border-left-color:var(--terracotta);}
.ap-result.ap-nein{border-left-color:#9a3b2f;}
.ap-title{font-weight:700;color:var(--pine);margin:0 0 6px;font-size:1.05rem;}
.ggv-table tr.nk-info td{background:var(--cream);color:var(--ink-soft);font-size:.9rem;font-style:italic;}
.nk-hint{display:block;margin-top:4px;font-size:.75rem;color:var(--ink-soft);line-height:1.35;}
.ggv-table tr.nk-total td{font-weight:700;color:var(--pine);border-top:2px solid var(--pine);background:var(--pine-pale);}
.kanton-content .kurz-box{background:var(--pine-pale);border-left:4px solid var(--pine);border-radius:12px;padding:16px 18px;margin:4px 0 8px;}
.kanton-content .kurz-label{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--pine);font-weight:700;margin:0 0 6px;}
.kanton-content .kurz-text{margin:0;color:var(--ink);font-size:1.02rem;line-height:1.6;}
.kanton-content .steps-list{margin:8px 0 8px 20px;padding:0;}
.kanton-content .steps-list li{margin-bottom:10px;color:var(--ink-soft);line-height:1.55;padding-left:4px;}
.summary-box{background:var(--pine-pale);border-radius:12px;padding:16px 18px;margin:16px 0;}
.summary-box strong{color:var(--pine);}
.warum-slot{display:none;}
html.warum-enabled .warum-slot{display:block;}
@media(max-width:600px){.kanton-card{padding:22px 20px;border-radius:14px;}.kanton-card .section-head h2 .sh-ico{width:34px;height:34px;min-width:34px;}}
/* Phase 3c: Premium-Komponenten (Fakt-Kacheln, Rechen-Flow, Tip/Warn, Timeline, Calc-CTA, Vergleich-Slot) */
.uebersicht-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700;margin:0 0 14px;}
.fakt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0;}
.fakt-tile{background:var(--cream-deep);border:1px solid var(--line);border-radius:14px;padding:16px 18px;}
.fakt-tile .ft-label{display:flex;align-items:center;gap:7px;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:600;margin-bottom:7px;}
.fakt-tile .ft-value{font-size:1.3rem;font-weight:800;color:var(--pine);line-height:1.1;}
@media(max-width:640px){.fakt-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:400px){.fakt-grid{grid-template-columns:1fr;}}
.calc-flow{margin:6px 0;}
.calc-flow .cf-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;background:var(--cream-deep);border:1px solid var(--line);border-radius:12px;padding:14px 18px;}
.calc-flow .cf-label{color:var(--ink-soft);font-size:.92rem;}
.calc-flow .cf-value{font-weight:700;color:var(--ink);white-space:nowrap;font-size:1.02rem;}
.calc-flow .cf-arrow{display:flex;justify-content:center;color:var(--gold);font-size:1rem;line-height:1;margin:7px 0;}
.calc-flow .cf-minus .cf-value{color:var(--terracotta);}
.calc-flow .cf-total{background:var(--pine);border-color:var(--pine);}
.calc-flow .cf-total .cf-label{color:rgba(238,233,222,.85);font-weight:600;}
.calc-flow .cf-total .cf-value{color:var(--white);font-size:1.3rem;font-weight:800;}
.tip-box,.warn-box{display:flex;gap:12px;border-radius:12px;padding:14px 16px;margin:16px 0;border:1px solid var(--line);}
.tip-box{background:var(--pine-pale);}
.warn-box{background:var(--terracotta-soft);border-color:var(--terracotta);border-left-width:3px;}
.tip-box .bx-ico,.warn-box .bx-ico{font-size:1.15rem;flex:none;line-height:1.35;}
.tip-box .bx-title,.warn-box .bx-title{font-weight:700;display:block;margin-bottom:2px;font-size:.9rem;}
.tip-box .bx-title{color:var(--pine);}
.warn-box .bx-title{color:var(--terracotta);}
.tip-box p,.warn-box p{margin:0;color:var(--ink-soft);line-height:1.55;font-size:.92rem;}
.timeline{list-style:none;padding:0;margin:12px 0;}
.timeline li{position:relative;padding-left:44px;padding-bottom:20px;color:var(--ink-soft);line-height:1.6;}
.timeline li:last-child{padding-bottom:0;}
.timeline li::before{content:"";position:absolute;left:13px;top:6px;bottom:-6px;width:2px;background:var(--line);}
.timeline li:last-child::before{display:none;}
.timeline li .tl-dot{position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--pine);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;}
.calc-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;background:var(--pine-pale);border:1px solid var(--line);border-radius:16px;padding:20px 24px;}
.calc-cta .cc-text{font-weight:600;color:var(--pine);margin:0;}
.calc-cta .cc-btn{background:var(--terracotta);color:#fff;font-weight:700;padding:11px 20px;border-radius:10px;text-decoration:none;white-space:nowrap;}
.calc-cta .cc-btn:hover{background:#A8531F;}
.vergleich-slot{display:none;}
html.vergleich-enabled .vergleich-slot{display:block;}
/* Phase 3d: Konsistentes Spacing-System + Premium-Feinschliff (nur bestehende Tokens) */
.kanton-content .section{padding:0;margin:0 0 22px;max-width:880px;}
.kanton-content .section:last-child{margin-bottom:0;}
.kanton-card{padding:28px 30px;}
.kanton-card > *{margin-top:0;margin-bottom:0;}
.kanton-card > * + *{margin-top:16px;}
.kanton-card .section-head{max-width:none;margin:0;}
.section-head .eyebrow-sm{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-text);font-weight:700;margin:0 0 6px;}
.kanton-content .num{font-weight:700;color:var(--pine);}
.kanton-content .faq-list{max-width:none;}
.kanton-content .faq-item{background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden;transition:box-shadow .16s ease,border-color .16s ease;}
.kanton-content .faq-item:last-child{margin-bottom:0;}
.kanton-content .faq-item:hover{box-shadow:0 4px 10px rgba(35,33,29,.07),0 14px 32px rgba(35,33,29,.10);border-color:var(--pine-pale);}
.kanton-content .faq-q{padding:18px 20px;width:100%;transition:color .15s;}
.kanton-content .faq-q:hover{color:var(--pine);}
.kanton-content .faq-a p{padding:0 20px 18px;margin:0;color:var(--ink-soft);line-height:1.65;}
.quellen{list-style:none;margin:0;padding:0;}
.quellen li{display:flex;gap:11px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line);}
.quellen li:last-child{border-bottom:none;padding-bottom:0;}
.quellen li::before{content:"\2713";color:var(--terracotta);font-weight:700;flex:none;line-height:1.5;}
.quellen a{color:var(--pine);text-decoration:none;line-height:1.5;}
.quellen a:hover{text-decoration:underline;}
.calc-cta .cc-eyebrow{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-weight:700;margin-bottom:4px;}
.calc-cta .cc-body{flex:1 1 auto;min-width:200px;}
.calc-flow .cf-total{padding:18px 22px;}
.calc-flow .cf-total .cf-value{font-size:1.5rem;}
@media(max-width:600px){.kanton-card{padding:22px 18px;}.kanton-content .section{margin-bottom:16px;}.calc-cta{flex-direction:column;align-items:stretch;}.calc-cta .cc-btn{width:100%;text-align:center;}.calc-flow .cf-row{flex-direction:column;gap:3px;align-items:flex-start;}.calc-flow .cf-value{font-size:1.05rem;}.calc-flow .cf-total .cf-value{font-size:1.35rem;}.fakt-tile .ft-value{font-size:1.2rem;}}
/* Phase 3 Review: Kanton-Chip-Navigation (Voll-Mesh) + Hub-Liste */
.kt-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;}
.kt-chip{display:inline-block;background:var(--white);border:1px solid var(--line);border-radius:20px;padding:5px 13px;font-size:.85rem;color:var(--pine);text-decoration:none;transition:background .15s,border-color .15s;}
.kt-chip:hover{background:var(--pine-pale);border-color:var(--pine);}
.kt-chip.kt-current{background:var(--pine);border-color:var(--pine);color:var(--cream);font-weight:700;}
.kanton-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 20px;}
.kanton-list li a{color:var(--ink-soft);text-decoration:none;font-size:.92rem;display:block;padding:4px 0;}
.kanton-list li a:hover{color:var(--pine);}
/* Phase 4A: Wissens-Guides */
.wissen-list{list-style:none;padding:0;margin:0;display:grid;gap:12px;}
.wl-more-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease;}
.wl-more-panel .wissen-list{overflow:hidden;min-height:0;margin-top:12px;}
.wl-more-panel.wl-open{grid-template-rows:1fr;}
.wl-more-btn{display:block;margin:10px 0 0;padding:13px 4px;min-height:44px;background:none;border:none;color:var(--pine);font-weight:600;font-size:.88rem;font-family:inherit;cursor:pointer;text-align:left;}
.wl-more-btn:hover{text-decoration:underline;}
.reg-planned{display:block;font-size:0.78rem;color:var(--ink-soft);font-weight:normal;margin-top:2px;}
.wissen-list li a{display:block;background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:16px 18px;text-decoration:none;transition:border-color .15s,background .15s;}
.wissen-list li a:hover{border-color:var(--pine);background:var(--pine-pale);}
.wissen-list li a strong{display:block;color:var(--pine);font-size:1.05rem;margin-bottom:4px;}
.wissen-list li a span{display:block;color:var(--ink-soft);font-size:.9rem;line-height:1.45;}
.stand-hinweis{color:var(--ink-soft);font-size:.85rem;font-style:italic;margin:6px 0 0;}
/* W7: Interaktiver Kantonsvergleich */
.ggv-controls{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;margin-bottom:14px;}
.ggv-field{display:flex;flex-direction:column;gap:5px;font-size:.82rem;color:var(--ink-soft);font-weight:600;}
.ggv-field input{padding:9px 12px;border:1px solid var(--line);border-radius:10px;font-size:1rem;font-family:inherit;color:var(--ink);background:var(--white);min-width:150px;}
.ggv-field input:focus{outline:none;border-color:var(--pine);}
.ggv-check{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--ink);cursor:pointer;font-weight:600;}
.ggv-check input{width:17px;height:17px;accent-color:var(--pine);}
.ggv-summary{background:var(--pine-pale);border-radius:10px;padding:12px 16px;font-size:.95rem;color:var(--ink);line-height:1.55;margin:0 0 14px;}
.ggv-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
@media(max-width:560px){
  .ggv-table, .ggv-table thead, .ggv-table tbody, .ggv-table tr, .ggv-table td{display:block;width:100%;}
  .ggv-table thead{display:none;}
  .ggv-table tr{margin-bottom:10px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--white);}
  .ggv-table tr.nk-total,.ggv-table tr.ggv-min,.ggv-table tr.ggv-max{border-color:var(--pine);border-width:2px;}
  .ggv-table td{border:none;padding:4px 0;text-align:right;display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
  .ggv-table td:first-child{display:block;text-align:left;font-weight:700;padding:0 0 8px;margin-bottom:6px;border-bottom:1px solid var(--line);}
  .ggv-table td[data-label]:not(:first-child)::before{content:attr(data-label);font-weight:500;color:var(--ink-soft);flex:none;}
  .ggv-tablewrap{overflow-x:visible;}
}
.ggv-table{width:100%;}
.ggv-table th:first-child,.ggv-table td:first-child{width:52px;text-align:center;color:var(--ink-soft);}
.ggv-table .ggv-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.ggv-table a{color:var(--pine);text-decoration:none;font-weight:600;}
.ggv-table a:hover{text-decoration:underline;}
.ggv-table tr.ggv-min td{background:var(--pine-pale);}
.ggv-table tr.ggv-max td{background:var(--terracotta-soft);}
.ggv-note{font-size:.82rem;color:var(--ink-soft);line-height:1.55;margin:12px 0 0;}
.ggv-note a{color:var(--pine);}
@media(max-width:600px){.ggv-field input{min-width:0;width:100%;}.ggv-field{flex:1 1 140px;}}
