@import url("/maps/sanitar/assets/sanitar-kassel.css");

/* Niestetal service guide: shared Adam tokens, map and controls with a new layout rhythm. */
.nt-hero{ background:var(--c-dark); padding:3.6rem 0 3rem; }
.nt-hero-inner{ max-width:var(--container); }
.nt-hero h1{ color:var(--c-bg) !important; max-width:980px; font-size:clamp(2.15rem,4vw,3.45rem) !important; }
.nt-hero-inner>p:not(.nt-hero-summary){ color:var(--c-bg); max-width:800px; font-size:1.08rem; }
.nt-hero-summary{ color:var(--c-bg); border-top:1px solid var(--c-text-soft); padding-top:1.15rem; margin:2rem 0 0; font-size:.88rem; font-weight:700; }
.nt-hero-summary span{ margin:0 .4rem; color:var(--primary); }

.nt-needs{ background:var(--c-bg); border-bottom:1px solid var(--c-border); padding:1.45rem 0; }
.nt-needs-ribbon{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); }
.nt-needs-ribbon a{ display:flex; flex-direction:column; gap:.22rem; min-width:0; color:var(--c-text); text-decoration:none; border-left:1px solid var(--c-border); padding:.4rem 1rem; }
.nt-needs-ribbon a:first-child{ border-left:0; padding-left:0; }
.nt-needs-ribbon strong{ font-size:.8rem; color:var(--primary-hover); text-transform:uppercase; letter-spacing:.04em; }
.nt-needs-ribbon span{ font-size:.9rem; line-height:1.4; }
.nt-needs-ribbon a:hover span{ color:var(--primary-hover); }
.nt-urgent{ margin:1.3rem 0 0; padding:.85rem 1.1rem; background:var(--primary-l); border-left:3px solid var(--primary); font-size:.9rem; }
.nt-urgent a{ color:var(--primary-hover); font-weight:700; }

.nt-heading{ max-width:750px; margin-bottom:2rem; }
.nt-heading h2,.nt-process h2,.nt-final h2{ font-size:clamp(1.8rem,3vw,2.45rem); }
.nt-heading p{ color:var(--c-text-soft); margin:.5rem 0 0; }

.nt-area{ background:var(--c-bg-alt); padding-bottom:4rem; }
.nt-map-frame .sk-map{ height:390px; }
.nt-map-info{ display:grid; grid-template-columns:minmax(150px,.28fr) minmax(0,1fr) auto; gap:1.8rem; align-items:center; padding:1.7rem 0 0; }
.nt-map-place{ display:flex; flex-direction:column; gap:.25rem; }
.nt-map-place strong{ font-size:1.35rem; }
.nt-map-place span{ color:var(--primary-hover); font-size:.92rem; font-weight:700; }
.nt-map-copy p{ color:var(--c-text-soft); font-size:.92rem; margin:0 0 .65rem; }
.nt-map-copy p:last-child{ margin-bottom:0; }
.nt-map-copy .nt-map-note{ font-size:.8rem; }
.nt-map-info .sk-button{ white-space:nowrap; }

.nt-service-list{ border-top:1px solid var(--c-border); }
.nt-service-row{ display:grid; grid-template-columns:minmax(125px,.26fr) minmax(0,.74fr); gap:2.5rem; align-items:center; padding:1.7rem 0; border-bottom:1px solid var(--c-border); min-width:0; }
.nt-service-row:nth-child(even){ grid-template-columns:minmax(0,.74fr) minmax(125px,.26fr); }
.nt-service-row:nth-child(even) .nt-service-aside{ grid-column:2; grid-row:1; justify-self:end; }
.nt-service-row:nth-child(even) .nt-service-body{ grid-column:1; grid-row:1; }
.nt-service-aside{ display:grid; place-items:center; width:96px; height:96px; background:var(--primary-l); color:var(--primary-hover); border-radius:var(--radius-lg); }
.nt-service-aside span{ font:700 1.8rem var(--font-display); }
.nt-service-aside i{ display:none; }
.nt-service-body h3{ font-size:1.28rem; margin-bottom:.45rem !important; }
.nt-service-body p{ max-width:730px; color:var(--c-text-soft); margin:0; }
.nt-pipe-strip{ margin-top:1.7rem; padding:1.2rem 1.4rem; background:var(--c-bg-alt); border-left:4px solid var(--primary); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.nt-pipe-strip>div{ display:flex; flex-direction:column; gap:.15rem; }
.nt-pipe-strip span{ color:var(--c-text-soft); }

.nt-audiences{ background:var(--c-bg-alt); }
.nt-audience-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:2px solid var(--c-text); border-bottom:1px solid var(--c-border); }
.nt-audience-grid>div{ padding:1.7rem 1.8rem; min-width:0; }
.nt-audience-grid>div:first-child{ padding-left:0; }
.nt-audience-grid>div+div{ border-left:1px solid var(--c-border); }
.nt-audience-grid span{ color:var(--primary-hover); font-size:.78rem; font-weight:700; }
.nt-audience-grid h3{ font-size:1.22rem; margin:.55rem 0 !important; }
.nt-audience-grid p{ color:var(--c-text-soft); margin:0; }

.nt-compare{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--c-border); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); }
.nt-compare>div{ padding:2rem; }
.nt-compare>div+div{ border-left:1px solid var(--c-border); background:var(--c-bg-alt); }
.nt-compare-label{ display:inline-block; color:var(--primary-hover); font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; margin-bottom:.65rem; }
.nt-compare h3{ font-size:1.2rem; }
.nt-compare p{ color:var(--c-text-soft); margin:0; }
.nt-compare-foot{ color:var(--c-text-soft); margin:1rem 0 0; }

.nt-cost{ background:var(--c-bg-alt); }
.nt-cost-factors{ list-style:none; display:flex; flex-wrap:wrap; gap:.7rem; padding:0; margin:0 0 1.5rem; }
.nt-cost-factors li{ border:1px solid var(--c-border); background:var(--c-bg); border-radius:var(--radius-pill); padding:.65rem 1rem; font-size:.87rem; font-weight:700; }
.nt-cost-bottom{ display:flex; justify-content:space-between; align-items:center; gap:1.5rem; }
.nt-cost-bottom p{ color:var(--c-text-soft); margin:0; }

.nt-process-grid{ display:grid; grid-template-columns:minmax(230px,.42fr) minmax(0,.58fr); gap:4rem; align-items:start; }
.nt-process-grid>div>p{ color:var(--c-text-soft); max-width:320px; }
.nt-process-rail{ list-style:none; margin:0; padding:0; }
.nt-process-rail li{ display:grid; grid-template-columns:54px minmax(0,1fr); gap:1rem; position:relative; padding-bottom:1.5rem; }
.nt-process-rail li:last-child{ padding-bottom:0; }
.nt-process-rail li:not(:last-child)::before{ content:""; position:absolute; left:24px; top:46px; bottom:0; width:2px; background:var(--c-border); }
.nt-process-rail li>span{ display:grid; place-items:center; width:48px; height:48px; border-radius:var(--radius-pill); background:var(--primary); color:var(--c-bg); font-weight:700; position:relative; z-index:1; }
.nt-process-rail h3{ font-size:1.1rem; margin:.15rem 0 .35rem !important; }
.nt-process-rail p{ color:var(--c-text-soft); margin:0; }

.nt-safety{ background:var(--primary-l); border-top:1px solid var(--c-border); border-bottom:1px solid var(--c-border); padding:1.65rem 0; }
.nt-safety-inner{ display:grid; grid-template-columns:minmax(220px,.35fr) minmax(0,.65fr); gap:2rem; align-items:center; }
.nt-safety h2{ font-size:1.35rem; margin:0 !important; }
.nt-safety ul{ margin:0; padding-left:1.25rem; line-height:1.7; }

.nt-faq-list{ max-width:760px; }
.nt-final{ background:var(--c-dark); padding:3.5rem 0; }
.nt-final-inner{ display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.35fr); gap:3rem; align-items:center; }
.nt-final h2{ color:var(--c-bg) !important; }
.nt-final p{ color:var(--c-bg); max-width:680px; }
.nt-final-actions{ display:flex; flex-direction:column; gap:.7rem; }
.nt-final-actions>a:last-child{ color:var(--c-bg); text-align:center; overflow-wrap:anywhere; }

.nt-needs-ribbon a:focus-visible,.nt-map-info a:focus-visible,.nt-pipe-strip a:focus-visible{ outline:3px solid var(--primary); outline-offset:3px; }

@media (max-width:1024px){
  .nt-needs-ribbon{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem 0; }
  .nt-needs-ribbon a:nth-child(4){ border-left:0; padding-left:0; }
  .nt-map-info{ grid-template-columns:minmax(140px,.3fr) minmax(0,.7fr); }
  .nt-map-info .sk-button{ grid-column:2; justify-self:start; }
}
@media (max-width:760px){
  .nt-hero{ padding:2.8rem 0 2.5rem; }
  .nt-needs-ribbon{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nt-needs-ribbon a:nth-child(3),.nt-needs-ribbon a:nth-child(5){ border-left:0; padding-left:0; }
  .nt-needs-ribbon a:nth-child(4){ border-left:1px solid var(--c-border); padding-left:1rem; }
  .nt-map-frame .sk-map{ height:300px; }
  .nt-map-info{ grid-template-columns:1fr; gap:1rem; }
  .nt-map-info .sk-button{ grid-column:auto; }
  .nt-audience-grid{ grid-template-columns:1fr; }
  .nt-audience-grid>div,.nt-audience-grid>div:first-child{ padding:1.3rem 0; }
  .nt-audience-grid>div+div{ border-left:0; border-top:1px solid var(--c-border); }
  .nt-compare,.nt-process-grid,.nt-safety-inner,.nt-final-inner{ grid-template-columns:1fr; gap:1.5rem; }
  .nt-compare>div+div{ border-left:0; border-top:1px solid var(--c-border); }
  .nt-cost-bottom{ align-items:flex-start; flex-direction:column; }
  .nt-final-actions{ max-width:420px; }
}
@media (max-width:560px){
  .nt-needs-ribbon{ grid-template-columns:1fr; }
  .nt-needs-ribbon a,.nt-needs-ribbon a:nth-child(4){ border-left:0; border-bottom:1px solid var(--c-border); padding:.55rem 0; }
  .nt-service-row,.nt-service-row:nth-child(even){ grid-template-columns:1fr; gap:.7rem; }
  .nt-service-row:nth-child(even) .nt-service-aside,.nt-service-row:nth-child(even) .nt-service-body{ grid-column:auto; grid-row:auto; justify-self:start; }
  .nt-service-aside{ width:58px; height:58px; border-radius:var(--radius); }
  .nt-service-aside span{ font-size:1.2rem; }
  .nt-map-frame .sk-map{ height:280px; }
  .nt-pipe-strip{ align-items:flex-start; flex-direction:column; }
  .nt-compare>div{ padding:1.5rem; }
}
