/* ===================================================================
   Netzwerk-Basis-CSS – gleicher Look wie nuernberg360, mit CSS-Variablen
   die jede Site überschreibt (--p-pri, --p-dark, --p-accent).
   =================================================================== */
:root{
  --p-dark:#0c1e33;
  --p-dark2:#162b45;
  --p-pri:#1d7a52;
  --p-pri-d:#155f3f;
  --p-accent:#FFB703;
  --p-bg:#f5f7fa;
  --p-card:#fff;
  --p-border:#e3e9ef;
  --p-muted:#7a8a99;
  --p-text:#1a2734;
  --p-radius:14px;
}
*,*::before,*::after{box-sizing:border-box;}
html,body{font-family:'Inter','Segoe UI',Arial,sans-serif;background:var(--p-bg);color:var(--p-text);max-width:100%;overflow-x:hidden;}
a{color:var(--p-pri);text-decoration:none;}
a:hover{color:var(--p-pri-d);text-decoration:underline;}
img{max-width:100%;height:auto;}

/* Top-Strip */
.top-strip{background:var(--p-dark);color:#fff;font-weight:500;font-size:.85rem;}
.top-strip a{color:#fff;}
.top-strip a:hover{color:var(--p-accent);text-decoration:none;}
.top-strip .top-strip-cta,
.top-strip a[href^="tel:"]{display:inline-flex;align-items:center;gap:.4rem;color:#fff;padding:.22rem .55rem;border-radius:6px;}
.top-strip .top-strip-cta:hover,
.top-strip a[href^="tel:"]:hover{background:rgba(255,255,255,.08);}

/* Navbar */
.portal-nav{background:#fff;border-bottom:1px solid var(--p-border);padding:.55rem 0;box-shadow:0 2px 12px rgba(0,0,0,.04);}
.portal-nav.is-scrolled{
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  box-shadow:0 4px 20px rgba(12,30,51,.08);
}
.portal-nav .container{max-width:1320px;}
.portal-nav .navbar-brand{display:flex;align-items:center;gap:.6rem;text-decoration:none!important;}
.portal-nav .brand-mark{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,var(--p-pri-d) 0%,var(--p-pri) 60%,#34a36e 100%);color:#fff;font-weight:900;font-size:1.5rem;line-height:1;flex-shrink:0;box-shadow:0 4px 12px rgba(12,30,51,.18);}
.portal-nav .brand-text{display:flex;flex-direction:column;line-height:1.1;}
.portal-nav .brand-name{font-weight:800;font-size:1.05rem;color:var(--p-dark);letter-spacing:-.5px;}
.portal-nav .brand-sub{font-size:.68rem;color:var(--p-muted);font-weight:500;margin-top:2px;}
.portal-nav .nav-link{color:#243b53;font-weight:500;padding:.45rem .8rem;}
.portal-nav .nav-link:hover,.portal-nav .nav-link.active{color:var(--p-pri);}
.portal-nav .dropdown-menu{border:1px solid var(--p-border);border-radius:10px;padding:.5rem;box-shadow:0 8px 30px rgba(0,0,0,.1);}
.portal-nav .dropdown-item:hover{background:#e8f4ee;color:var(--p-pri);}
.portal-nav .dropdown-item i{color:var(--p-pri);margin-right:.4rem;}

/* Hamburger */
.portal-nav .navbar-toggler{border:0;box-shadow:none;padding:.4rem .55rem;border-radius:8px;}
.portal-nav .navbar-toggler:focus{box-shadow:none;}
@media(min-width:992px){.portal-nav .navbar-toggler{display:none !important;}}

/* Nav-Suche */
.nav-search{display:flex;align-items:stretch;background:#f3f6fa;border:1px solid var(--p-border);border-radius:10px;overflow:hidden;height:38px;margin-left:.4rem;}
.nav-search input{border:0;outline:0;background:transparent;padding:0 .8rem;font-size:.88rem;width:170px;color:var(--p-text);}
.nav-search button{border:0;background:var(--p-pri);color:#fff;padding:0 .9rem;cursor:pointer;}
.nav-search button:hover{background:var(--p-pri-d);}
@media(max-width:991px){.nav-search{margin:.8rem 0 0;width:100%;height:42px;}.nav-search input{width:100%;}}

/* Hero */
.hero{position:relative;background:linear-gradient(135deg,var(--p-dark) 0%,var(--p-dark2) 50%,var(--p-pri) 100%);border-radius:22px;padding:4.5rem 2.5rem;color:#fff;overflow:hidden;margin-bottom:2rem;}
.hero::before{content:'';position:absolute;inset:0;background-image:
   radial-gradient(circle at 12% 18%, rgba(255,183,3,.18), transparent 35%),
   radial-gradient(circle at 90% 80%, rgba(255,255,255,.10), transparent 38%),
   radial-gradient(circle at 65% 30%, rgba(76,127,175,.18), transparent 40%);pointer-events:none;}
.hero-content{position:relative;max-width:820px;}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.45rem;background:rgba(255,255,255,.12);backdrop-filter:blur(6px);padding:.35rem .85rem;border-radius:99px;font-size:.78rem;font-weight:600;letter-spacing:.3px;margin-bottom:1.2rem;border:1px solid rgba(255,255,255,.18);}
.hero-eyebrow i{color:var(--p-accent);}
.hero h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:900;letter-spacing:-1px;line-height:1.05;margin-bottom:1rem;}
.hero h1 .highlight{color:var(--p-accent);}
.hero p.hero-lead{font-size:clamp(1rem,2vw,1.2rem);opacity:.95;margin-bottom:2rem;max-width:620px;}
.hero-search{background:#fff;border-radius:14px;padding:.55rem;display:flex;gap:.5rem;align-items:center;box-shadow:0 12px 28px rgba(0,0,0,.20);}
.hero-search input{flex:1;border:0;outline:0;padding:.9rem 1.1rem;font-size:1.05rem;color:var(--p-text);background:transparent;border-radius:10px;min-width:0;}
.hero-search select{border:0;outline:0;padding:.9rem 0.7rem;background:#f3f6fa;border-radius:10px;font-size:.95rem;}
.hero-search button{background:var(--p-pri);color:#fff;border:0;border-radius:10px;padding:.9rem 1.6rem;font-weight:700;cursor:pointer;flex-shrink:0;}
.hero-search button:hover{background:var(--p-pri-d);}
.hero-trust{display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:1.7rem;font-size:.85rem;}
.hero-trust span{display:inline-flex;align-items:center;gap:.4rem;}
.hero-trust i{color:var(--p-accent);}

/* Master-Cards */
.master-section{margin-bottom:3rem;}
.master-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.master-card{position:relative;border-radius:20px;overflow:hidden;text-decoration:none;color:#fff;min-height:240px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 10px 30px rgba(12,30,51,.12);transition:.3s cubic-bezier(.2,.8,.3,1);background:var(--bg);}
.master-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(12,30,51,.22);text-decoration:none;color:#fff;}
.master-card .master-bg{position:absolute;inset:0;background:var(--bg);}
.master-card .master-bg::before{content:'';position:absolute;inset:0;background:
  radial-gradient(circle at 80% 20%,rgba(255,255,255,.18),transparent 40%),
  radial-gradient(circle at 20% 80%,rgba(0,0,0,.15),transparent 40%);}
.master-content{position:relative;padding:1.7rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;flex:1;justify-content:flex-end;}
.master-icon{font-size:2.4rem;line-height:1;opacity:.95;margin-bottom:auto;align-self:flex-start;}
.master-title{font-size:1.35rem;font-weight:900;letter-spacing:-.5px;margin:0;line-height:1.15;}
.master-subline{font-size:.88rem;opacity:.92;margin:0;font-weight:500;}
.master-cta{display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;font-weight:700;margin-top:.7rem;padding:.6rem 0;border-top:1px solid rgba(255,255,255,.22);}
.master-cta i{transition:transform .25s;}
.master-card:hover .master-cta i{transform:translateX(5px);}
@media(max-width:1100px){.master-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.master-grid{grid-template-columns:1fr;}.master-card{min-height:200px;}}

/* Process Section */
.process-section{background:#fff;border:1px solid var(--p-border);border-radius:18px;padding:2rem;margin-bottom:3rem;}
.process-row{display:flex;align-items:stretch;gap:0;margin-top:1rem;flex-wrap:nowrap;}
.process-step{flex:1;padding:1.2rem;text-align:center;}
.process-step .step-num{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--p-pri),#34a36e);color:#fff;font-weight:900;font-size:1.25rem;margin-bottom:.6rem;box-shadow:0 6px 14px rgba(29,122,82,.3);}
.process-step h4{font-weight:800;font-size:1.05rem;margin-bottom:.4rem;color:var(--p-dark);}
.process-step p{font-size:.86rem;color:var(--p-muted);margin:0;}
.process-arrow{display:flex;align-items:center;justify-content:center;color:var(--p-pri);font-size:1.6rem;padding:0 .3rem;}
@media(max-width:768px){.process-row{flex-direction:column;}.process-arrow{transform:rotate(90deg);padding:.3rem 0;}}

/* Sections */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;}
.section-head h2{font-size:1.65rem;font-weight:900;color:var(--p-dark);margin:0;letter-spacing:-.5px;}
.section-head .section-sub{color:var(--p-muted);font-size:.95rem;margin-top:.3rem;}
.section-head .section-link{font-weight:600;color:var(--p-pri);}

/* Service-Grid */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
.svc-card{background:#fff;border:1px solid var(--p-border);border-radius:14px;padding:1.2rem;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.5rem;transition:.2s;}
.svc-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.08);border-color:var(--p-pri);text-decoration:none;color:inherit;}
.svc-card .svc-ico{width:46px;height:46px;border-radius:11px;background:linear-gradient(135deg,#e8f4ee,#d3ecde);color:var(--p-pri);display:inline-flex;align-items:center;justify-content:center;font-size:1.4rem;}
.svc-card .svc-name{font-weight:800;color:var(--p-dark);font-size:1.05rem;}
.svc-card .svc-kurz{font-size:.85rem;color:var(--p-muted);line-height:1.4;}
@media(max-width:1000px){.svc-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:700px){.svc-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:430px){.svc-grid{grid-template-columns:1fr;}}

/* Dienstleister-Cards */
.dl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;grid-auto-rows:1fr;}
.dl-card{background:#fff;border:1px solid var(--p-border);border-radius:14px;padding:1.2rem;display:flex;flex-direction:column;gap:.7rem;transition:.2s;height:100%;text-decoration:none;color:inherit;}
.dl-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.08);border-color:var(--p-pri);text-decoration:none;color:inherit;}
.dl-head{display:flex;align-items:center;gap:.85rem;}
.dl-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--p-pri),#34a36e);color:#fff;font-weight:800;font-size:1rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.dl-firma{font-weight:800;color:var(--p-dark);font-size:1rem;line-height:1.2;}
.dl-ansprech{font-size:.8rem;color:var(--p-muted);margin-top:2px;}
.dl-check{color:var(--p-pri);font-size:1.3rem;margin-left:auto;line-height:1;}
.dl-desc{font-size:.85rem;line-height:1.45;color:#3b4d5e;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.dl-gewerke{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:auto;}
.dl-gewerk{background:#f0f6f3;color:var(--p-pri);padding:.22rem .6rem;border-radius:99px;font-size:.72rem;font-weight:600;}
.dl-meta{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--p-muted);border-top:1px solid var(--p-border);padding-top:.55rem;}
.dl-meta .stars{color:#f5a623;}
@media(max-width:1000px){.dl-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.dl-grid{grid-template-columns:1fr;}}

/* Formular */
.form-card{background:#fff;border:1px solid var(--p-border);border-radius:18px;padding:2rem;box-shadow:0 4px 14px rgba(0,0,0,.04);}
.form-card h2,.form-card h3{font-weight:900;color:var(--p-dark);margin-bottom:.4rem;}
.form-card label{font-weight:600;color:var(--p-dark);font-size:.88rem;margin-bottom:.25rem;}
.form-card .form-control,
.form-card .form-select{border-radius:10px;border:1px solid var(--p-border);padding:.7rem .85rem;font-size:.95rem;}
.form-card .form-control:focus,.form-card .form-select:focus{border-color:var(--p-pri);box-shadow:0 0 0 .2rem rgba(29,122,82,.15);}
.form-card .btn-primary,
.btn-pri{background:var(--p-pri);border-color:var(--p-pri);color:#fff;font-weight:700;padding:.75rem 1.4rem;border-radius:10px;}
.form-card .btn-primary:hover,
.btn-pri:hover{background:var(--p-pri-d);border-color:var(--p-pri-d);color:#fff;}

/* Footer */
.portal-footer{background:var(--p-dark);color:#cfd9e3;padding:3rem 0 1.5rem;margin-top:4rem;}
.portal-footer .footer-title{color:#fff;font-weight:800;font-size:.95rem;margin-bottom:.7rem;}
.portal-footer a{color:#cfd9e3;}
.portal-footer a:hover{color:var(--p-accent);text-decoration:none;}
.portal-footer .brand-footer{display:flex;align-items:center;gap:.6rem;color:#fff;}
.portal-footer .brand-mark{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--p-pri-d),var(--p-pri));color:#fff;font-weight:900;font-size:1.3rem;}
.portal-footer hr{border-color:rgba(255,255,255,.1);}
.portal-footer .footer-bottom{font-size:.82rem;color:#9aa8b6;}

/* Utility */
.tag{display:inline-flex;align-items:center;gap:.3rem;background:#e8f4ee;color:var(--p-pri-d);padding:.25rem .7rem;border-radius:99px;font-size:.78rem;font-weight:600;}
.tag.tag-yellow{background:#fff5d6;color:#a06000;}
.tag.tag-red{background:#ffe2e2;color:#a30000;}
.tag.tag-blue{background:#e2eeff;color:#1a4a85;}
.tag.tag-purple{background:#f0e2ff;color:#5e2f96;}

.stars{display:inline-flex;gap:1px;color:#f5a623;font-size:.95rem;}
.stars .bi-star-fill{color:#f5a623;}
.stars .bi-star{color:#dde5ec;}

/* Vergleich (für reinigungsexperten24) */
.cmp-row{display:grid;grid-template-columns:60px 1fr 110px 130px 100px;gap:.8rem;align-items:center;padding:1rem;border:1px solid var(--p-border);border-radius:12px;background:#fff;margin-bottom:.7rem;}
.cmp-row .cmp-rank{font-weight:900;color:var(--p-pri);font-size:1.3rem;text-align:center;background:#e8f4ee;border-radius:8px;padding:.4rem 0;}
.cmp-row .cmp-firma{font-weight:800;color:var(--p-dark);}
.cmp-row .cmp-sub{font-size:.8rem;color:var(--p-muted);}
.cmp-row .cmp-price{text-align:right;font-weight:900;font-size:1.15rem;color:var(--p-pri);}
.cmp-row .cmp-price small{display:block;font-size:.72rem;color:var(--p-muted);font-weight:500;}
.cmp-row .cmp-rating{text-align:center;}
.cmp-row .cmp-rating .num{font-weight:800;font-size:1.1rem;}
.cmp-row .cmp-btn{text-align:right;}
.cmp-row .cmp-btn .btn{background:var(--p-pri);color:#fff;font-weight:700;padding:.55rem 1rem;border-radius:8px;border:0;font-size:.85rem;}
.cmp-row .cmp-btn .btn:hover{background:var(--p-pri-d);}
@media(max-width:768px){
  .cmp-row{grid-template-columns:1fr;text-align:left;}
  .cmp-row .cmp-rank{width:40px;}
  .cmp-row .cmp-price,.cmp-row .cmp-rating,.cmp-row .cmp-btn{text-align:left;}
}

/* Ankaufs-Stepper */
.steps{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap;}
.step{flex:1;min-width:160px;background:#fff;border:1px solid var(--p-border);border-radius:14px;padding:1rem 1.2rem;display:flex;align-items:center;gap:.8rem;}
.step .step-n{width:34px;height:34px;border-radius:50%;background:#e3e9ef;color:var(--p-muted);display:inline-flex;align-items:center;justify-content:center;font-weight:900;flex-shrink:0;}
.step.active .step-n{background:var(--p-pri);color:#fff;}
.step.done .step-n{background:#34a36e;color:#fff;}
.step strong{display:block;color:var(--p-dark);font-size:.95rem;}
.step span{font-size:.78rem;color:var(--p-muted);}

/* === COOKIE BANNER (übernommen von nuernberg360) === */
.nw-cookie{position:fixed;bottom:1.5rem;left:1.5rem;right:1.5rem;z-index:9999;display:flex;justify-content:center;pointer-events:none;}
.nw-cookie.hidden{display:none;}
.nw-cookie-card{background:#fff;border-radius:18px;box-shadow:0 25px 50px rgba(12,30,51,.25), 0 0 0 1px rgba(12,30,51,.08);max-width:680px;width:100%;padding:1.8rem 1.8rem 1.4rem;position:relative;pointer-events:auto;animation:nwcb-slide .4s cubic-bezier(.2,.8,.3,1);}
@keyframes nwcb-slide{from{transform:translateY(30px);opacity:0;}to{transform:none;opacity:1;}}
.nw-cookie-close{position:absolute;top:.7rem;right:.85rem;background:transparent;border:0;font-size:1.6rem;line-height:1;color:#9aa7b3;cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.15s;}
.nw-cookie-close:hover{background:#f0f4f8;color:var(--p-dark);}
.nw-cookie-head{display:flex;gap:1rem;margin-bottom:1.1rem;}
.nw-cookie-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--p-pri-d),var(--p-pri));color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;box-shadow:0 6px 14px rgba(0,0,0,.2);}
.nw-cookie-head h3{font-size:1.1rem;font-weight:800;margin:.15rem 0 .35rem;color:var(--p-dark);}
.nw-cookie-head p{font-size:.88rem;color:#5a6b7b;margin:0;line-height:1.45;}
.nw-cookie-options{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.2rem;background:#f6f8fb;padding:.8rem;border-radius:12px;}
.nw-cookie-opt{display:flex;gap:.7rem;align-items:flex-start;padding:.55rem .65rem;border-radius:8px;cursor:pointer;transition:.15s;font-weight:400;margin:0;}
.nw-cookie-opt:hover{background:#fff;}
.nw-cookie-opt.locked{cursor:default;opacity:.85;}
.nw-cookie-opt.locked:hover{background:transparent;}
.nw-cookie-opt input[type=checkbox]{margin-top:.15rem;width:18px;height:18px;accent-color:var(--p-pri);cursor:pointer;flex-shrink:0;}
.nw-cookie-opt input[type=checkbox]:disabled{cursor:not-allowed;}
.nw-cookie-opt strong{display:block;font-size:.92rem;color:var(--p-dark);font-weight:700;margin-bottom:.1rem;}
.nw-cookie-opt span{font-size:.78rem;color:#7a8a99;line-height:1.4;}
.nw-cookie-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end;margin-bottom:.85rem;}
.nw-cb{border:0;border-radius:10px;padding:.7rem 1.15rem;font-size:.88rem;font-weight:700;cursor:pointer;transition:.18s;display:inline-flex;align-items:center;gap:.4rem;font-family:inherit;}
.nw-cb-ghost{background:transparent;color:#7a8a99;}
.nw-cb-ghost:hover{background:#f0f4f8;color:var(--p-dark);}
.nw-cb-secondary{background:rgba(0,0,0,.04);color:var(--p-pri);}
.nw-cb-secondary:hover{background:rgba(0,0,0,.07);}
.nw-cb-primary{background:linear-gradient(135deg,var(--p-pri-d),var(--p-pri));color:#fff;box-shadow:0 6px 14px rgba(0,0,0,.18);}
.nw-cb-primary:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(0,0,0,.22);}
.nw-cookie-footer{text-align:center;font-size:.78rem;color:#9aa7b3;border-top:1px solid #eef2f6;padding-top:.7rem;}
.nw-cookie-footer a{color:#7a8a99;text-decoration:none;}
.nw-cookie-footer a:hover{color:var(--p-pri);text-decoration:underline;}

.nw-cookie-reopen{position:fixed;bottom:1rem;left:1rem;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.06);color:#7a8a99;font-size:1rem;cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.08);z-index:998;display:flex;align-items:center;justify-content:center;transition:.18s;opacity:.7;}
.nw-cookie-reopen.hidden{display:none;}
.nw-cookie-reopen:hover{opacity:1;transform:scale(1.1);color:var(--p-pri);box-shadow:0 6px 16px rgba(0,0,0,.15);}

@media(max-width:600px){
  .nw-cookie{bottom:.6rem;left:.6rem;right:.6rem;}
  .nw-cookie-card{padding:1.3rem 1.2rem 1.1rem;border-radius:14px;}
  .nw-cookie-head h3{font-size:1rem;}
  .nw-cookie-head p{font-size:.83rem;}
  .nw-cookie-actions{flex-direction:column-reverse;}
  .nw-cb{width:100%;justify-content:center;}
  .nw-cookie-reopen{bottom:.5rem;left:.5rem;width:32px;height:32px;font-size:.9rem;opacity:.55;}
}

/* Container variants */
.container-narrow{max-width:880px;margin:0 auto;}
