:root{
    --pine-950:#0F241E;
    --pine-900:#16332B;
    --pine-800:#1E4438;
    --pine-700:#2C5A4A;
    --gold-600:#A9824C;
    --gold-500:#C29A5F;
    --gold-100:#EFE3CC;
    --cream:#F6F3EC;
    --cream-2:#EFEAE0;
    --paper:#FFFFFF;
    --ink:#21261F;
    --ink-muted:#5C6259;
    --line:#DAD4C4;
    --line-dark:rgba(246,243,236,0.16);
    --radius:2px;
    --maxw:1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;scroll-padding-top:140px;}
  [hidden]{display:none!important;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Work Sans',sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  @media (min-width:1081px){body{min-height:100vh;display:flex;flex-direction:column;}main{flex:1;}}
  h1,h2,h3,h4{
    font-family:'Fraunces',serif;
    font-weight:500;
    margin:0;
    color:var(--pine-950);
    letter-spacing:-0.01em;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
  .eyebrow{
    font-family:'Work Sans',sans-serif;
    font-size:12px;
    letter-spacing:0.16em;
    text-transform:uppercase;
    font-weight:600;
    color:var(--gold-600);
  }
  .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}

  /* ---------- Header ---------- */
  header.site{
    background:var(--pine-950);
    color:var(--cream);
    position:sticky;top:0;z-index:50;
    border-bottom:1px solid var(--line-dark);
  }
  .nav-row{
    display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;
    padding:14px clamp(24px,3vw,48px);
    max-width:1500px;margin:0 auto;min-height:80px;
    gap:24px;
  }
  .logo{
    font-family:'Fraunces',serif;
    font-size:19px;
    letter-spacing:0.02em;
    color:var(--cream);
    display:flex;align-items:center;gap:10px;min-height:44px;
    white-space:nowrap;
  }
  .logo .mark{
    width:26px;height:26px;border:1px solid var(--gold-500);
    display:flex;align-items:center;justify-content:center;
    font-size:12px;color:var(--gold-500);border-radius:50%;
  }
  nav.primary{display:flex;gap:2px;flex-wrap:wrap;justify-content:center;}
  nav.primary a{
    font-size:12px;padding:9px 10px;color:rgba(246,243,236,0.78);
    letter-spacing:0.01em;border-radius:var(--radius);
    transition:color .15s ease, background .15s ease;
    position:relative;
  }
  nav.primary a:hover{color:var(--cream);background:rgba(246,243,236,0.06);}
  nav.primary a.current{color:var(--cream);}
  nav.primary a.current::after{
    content:"";position:absolute;left:14px;right:14px;bottom:4px;height:1px;background:var(--gold-500);
  }
  .nav-right{display:flex;align-items:center;justify-self:end;gap:18px;}
  .nav-right a.contact{
    border:1px solid var(--gold-600);color:var(--gold-100);
    padding:9px 14px;font-size:13px;letter-spacing:0.03em;
    transition:background .15s ease, color .15s ease;
  }
  .nav-right a.contact:hover{background:var(--gold-600);color:var(--pine-950);}

  .subnav{background:var(--pine-900);border-top:1px solid var(--line-dark);}
  .subnav .wrap{display:flex;gap:6px;padding:0;overflow-x:auto;}
  @media (min-width:1081px){.subnav .wrap{justify-content:center;}}
  .subnav a{
    font-size:13px;padding:12px 16px;white-space:nowrap;color:rgba(246,243,236,0.62);
    border-bottom:2px solid transparent;
  }
  .subnav a.active{color:var(--cream);border-bottom-color:var(--gold-500);}
  .subnav a:hover{color:var(--cream);}

  /* ---------- Hero ---------- */
  .hero{
    background:linear-gradient(180deg, var(--pine-950) 0%, var(--pine-900) 100%);
    color:var(--cream);
    padding:64px 0 56px;
  }
  .hero h1{
    color:var(--cream);
    font-size:clamp(34px,4.4vw,54px);
    line-height:1.06;
    max-width:15ch;
    font-weight:400;
  }
  .hero h1 em{font-style:italic;color:var(--gold-500);}
  .hero p.lead{
    margin-top:20px;max-width:56ch;color:rgba(246,243,236,0.78);
    font-size:17px;
  }

  /* segmented toggle */
  .toggle{
    display:inline-flex;margin-top:34px;
    border:1px solid rgba(246,243,236,0.24);
    border-radius:999px;padding:4px;background:rgba(0,0,0,0.15);
  }
  .toggle button{
    appearance:none;border:none;background:transparent;color:rgba(246,243,236,0.7);
    padding:10px 22px;font-family:'Work Sans',sans-serif;font-size:13.5px;letter-spacing:.03em;
    min-height:44px;border-radius:999px;cursor:pointer;transition:all .18s ease;
  }
  .toggle button.is-active{background:var(--gold-500);color:var(--pine-950);font-weight:600;}
  .toggle button:not(.is-active):hover{color:var(--cream);}

  /* ---------- Sections shared ---------- */
  section{padding:76px 0;}
  section.tight{padding:56px 0;}
  .section-head{max-width:64ch;margin-bottom:44px;}
  .section-head h2{font-size:clamp(26px,3vw,34px);margin-top:10px;font-weight:400;}
  .section-head p{color:var(--ink-muted);margin-top:14px;font-size:16px;}

  /* ---------- Privatkunden panel (condensed) ---------- */
  #panel-privat{display:none;}
  #panel-privat.is-shown{display:block;}
  #panel-firmen.is-hidden{display:none;}

  .private-summary{background:var(--paper);border:1px solid var(--line);padding:40px;}
  .private-summary h3{font-size:22px;font-weight:400;}
  .private-summary p{color:var(--ink-muted);margin-top:14px;max-width:66ch;}
  .chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
  .chip{
    border:1px solid var(--line);background:var(--cream);
    padding:8px 14px;font-size:13px;color:var(--ink-muted);
  }
  .private-summary .cta-line{margin-top:26px;font-size:14.5px;}
  .private-summary .cta-line a{color:var(--pine-800);border-bottom:1px solid var(--gold-600);}

  /* ---------- Compass (signature element) ---------- */
  .compass-section{background:var(--pine-950);color:var(--cream);}
  .compass-section .section-head h2{color:var(--cream);}
  .compass-section .eyebrow{color:var(--gold-500);}
  .compass-section .section-head p{color:rgba(246,243,236,0.68);}
  .compass-grid{
    display:grid;grid-template-columns:minmax(320px,460px) 1fr;gap:56px;align-items:center;
  }
  .compass-fig{position:relative;}
  .compass-fig svg{width:100%;height:auto;}
  .compass-legend{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
  .compass-legend .item{border-left:2px solid var(--gold-600);padding-left:16px;}
  .compass-legend .item h4{color:var(--cream);font-size:16.5px;font-weight:400;}
  .compass-legend .item p{color:rgba(246,243,236,0.62);font-size:13.8px;margin-top:6px;}

  /* ---------- Category cards ---------- */
  .cards-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    background:var(--line);border:1px solid var(--line);
  }
  .card{background:var(--paper);padding:34px 30px;}
  .card .icon{width:46px;height:46px;margin-bottom:20px;color:var(--pine-800);}
  .card h3{font-size:19px;font-weight:400;}
  .card p.desc{color:var(--ink-muted);font-size:14px;margin-top:10px;}
  .card ul{list-style:none;padding:0;margin:16px 0 0;border-top:1px solid var(--line);padding-top:14px;}
  .card li{
    font-size:13.6px;color:var(--ink);padding:5px 0;
    display:flex;align-items:baseline;gap:8px;
  }
  .card li::before{content:"";width:4px;height:4px;background:var(--gold-600);border-radius:50%;flex:none;transform:translateY(-3px);}

  /* ---------- Process ---------- */
  .process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;}
  .process-grid .step{border-top:2px solid var(--gold-600);padding-top:20px;}
  .process-grid .num{
    font-family:'Fraunces',serif;font-style:italic;color:var(--gold-600);font-size:15px;
  }
  .process-grid h4{font-size:19px;font-weight:400;margin-top:10px;}
  .process-grid p{color:var(--ink-muted);font-size:14.5px;margin-top:10px;}

  /* ---------- Fragen / FAQ list ---------- */
  .faq-panel{
    background:var(--paper);border:1px solid var(--line);
    display:grid;grid-template-columns:1.1fr 1fr;
  }
  .faq-panel .img-col{
    background:var(--pine-900);
    position:relative;min-height:340px;overflow:hidden;
  }
  .faq-panel .img-col svg{position:absolute;inset:0;width:100%;height:100%;}
  .faq-panel .list-col{padding:40px;}
  .faq-panel h3{font-size:20px;font-weight:400;margin-bottom:18px;}
  .faq-panel ol{list-style:none;padding:0;margin:0;counter-reset:q;}
  .faq-panel li{
    counter-increment:q;
    padding:14px 0;border-top:1px solid var(--line);
    font-size:14.8px;display:flex;gap:14px;
  }
  .faq-panel li:first-child{border-top:none;}
  .faq-panel li::before{
    content:counter(q,decimal-leading-zero);
    font-family:'Fraunces',serif;font-style:italic;color:var(--gold-600);
    font-size:14px;flex:none;padding-top:1px;
  }

  /* ---------- CTA ---------- */
  .cta{
    background:var(--gold-100);border:1px solid var(--gold-500);
    padding:52px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;
  }
  .cta h3{font-size:24px;font-weight:400;max-width:34ch;}
  .cta p{color:var(--ink-muted);margin-top:10px;max-width:44ch;font-size:14.8px;}
  .cta a.btn{
    background:var(--pine-950);color:var(--cream);padding:14px 30px;
    font-size:13.5px;letter-spacing:.03em;white-space:nowrap;
    border:1px solid var(--pine-950);transition:opacity .15s ease;
  }
  .cta a.btn:hover{opacity:.85;}

  .site-footer{background:var(--pine-950);color:rgba(246,243,236,.5);font-size:12.5px;padding:26px 0;}
  .footer-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;}
  .site-footer nav{display:flex;gap:22px;flex-wrap:wrap;}
  .site-footer a:hover{color:var(--cream);}

  .skip-link{position:absolute;top:-100px;left:12px;z-index:100;background:var(--gold-100);color:var(--pine-950);padding:10px 16px;}
  .skip-link:focus{top:12px;}
  :focus-visible{outline:2px solid var(--gold-500);outline-offset:3px;}
  body.menu-open{overflow:hidden;}
  .menu-toggle,.mobile-cta{display:none!important;}

  @media (max-width:1100px){
    nav.primary a{font-size:11.5px;padding:9px 7px;}
    .nav-row{gap:12px;}
    .nav-right{gap:10px;font-size:13px;white-space:nowrap;}
    .nav-right a.contact{padding:9px 10px;}
  }
  @media (max-width:1080px){
    nav.primary{display:none;position:fixed;top:80px;left:0;right:0;bottom:0;background:var(--pine-950);padding:22px 32px 56px;overflow:auto;border-top:1px solid var(--line-dark);flex-direction:column;align-items:stretch;gap:0;margin:0;}
    nav.primary.is-open{display:flex;}
    nav.primary a{font-size:16px;padding:14px 0;border-bottom:1px solid var(--line-dark);}
    nav.primary a.current::after{left:0;right:auto;width:120px;bottom:6px;}
    .nav-row{display:flex;justify-content:space-between;}
    nav.primary .mobile-cta{display:block!important;}
    nav.primary .mobile-cta{color:var(--gold-100);border-bottom-color:var(--gold-600);}
    .nav-right{margin-left:auto;}
    .menu-toggle{display:flex!important;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:1px solid var(--line-dark);color:var(--cream);cursor:pointer;}
    .menu-toggle span{display:block;width:20px;height:1px;margin:0 auto;background:currentColor;}
    .compass-grid{grid-template-columns:minmax(0,1fr);}
    .compass-fig{max-width:460px;margin:0 auto;}
    .cards-grid{grid-template-columns:1fr 1fr;}
    .faq-panel{grid-template-columns:1fr;}
    .faq-panel .img-col{min-height:200px;}
    .process-grid{grid-template-columns:1fr;}
  }
  @media (max-width:700px){
    .nav-row{min-height:72px;padding:12px 20px;}
    nav.primary{top:72px;padding:20px 20px 48px;}
    .nav-right{display:none;}
    .hero{padding:56px 0 48px;}
    section{padding:58px 0;}
    section.tight{padding:46px 0;}
    .compass-legend{gap:22px;}
    .eyebrow{letter-spacing:.04em;}
    .compass-fig{width:calc(100% + 40px);max-width:none;margin-left:-20px;margin-right:-20px;}
    .faq-panel .list-col{padding:30px 24px;}
    .cta{padding:36px;}
  }
  @media (min-width:1400px){
    .hero .wrap{max-width:1500px;}
    .hero h1:not(.is-private){max-width:none;font-size:clamp(44px,3.3vw,50px);white-space:nowrap;}
    .hero h1:not(.is-private) br{display:none;}
  }
  @media (max-width:600px){
    .cards-grid{grid-template-columns:1fr;}
    .cta{flex-direction:column;align-items:flex-start;}
    .wrap{padding:0 20px;}
    .subnav .wrap{flex-direction:column;gap:0;padding:0 20px;}
    .subnav a{width:100%;min-height:44px;text-align:center;padding:12px 8px;}
    .compass-legend{grid-template-columns:1fr;}
    .private-summary{padding:28px 24px;}
    .cta a.btn{white-space:normal;}
  }
  @media (max-width:400px){
    .toggle button{padding:10px 16px;}
    .hero h1{max-width:100%;font-size:clamp(26px,8vw,34px);overflow-wrap:anywhere;}
    .logo{font-size:17px;}
  }
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*::before,*::after{transition-duration:.01ms!important;}}
