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

/* Fuldabrück uses the shared Adam tokens and local map treatment with a distinct layout. */
.sf-hero{ background:var(--c-bg-alt); border-bottom:1px solid var(--c-border); padding:4.5rem 0; }
.sf-hero-grid{ display:grid; grid-template-columns:minmax(0,1.18fr) minmax(310px,.82fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.sf-hero h1{ font-size:clamp(2.1rem,4vw,3.55rem) !important; max-width:760px; }
.sf-hero-copy>p:not(.sf-hero-note){ color:var(--c-text-soft); font-size:1.08rem; max-width:680px; }
.sf-hero .sk-button-outline{ border-color:var(--c-text); color:var(--c-text); }
.sf-hero .sk-button-outline:hover{ background:var(--c-text); color:var(--c-bg); }
.sf-hero-note{ color:var(--c-text-soft); font-size:.86rem; margin:1.4rem 0 0; }
.sf-navigator{ background:var(--c-bg); border:1px solid var(--c-border); border-radius:var(--radius-lg); box-shadow:var(--shadow-md); padding:1.8rem; min-width:0; }
.sf-navigator h2{ font-size:1.35rem; margin-bottom:1rem !important; }
.sf-navigator a{ display:flex; justify-content:space-between; gap:1rem; padding:.85rem .15rem; border-bottom:1px solid var(--c-border); color:var(--c-text); font-weight:700; text-decoration:none; }
.sf-navigator a:last-child{ border-bottom:0; }
.sf-navigator a span:last-child{ color:var(--primary-hover); }
.sf-navigator a:hover{ color:var(--primary-hover); }

.sf-problems{ background:var(--c-bg); border-bottom:1px solid var(--c-border); padding:1.7rem 0; }
.sf-problem-list{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); }
.sf-problem-list a{ display:flex; flex-direction:column; gap:.25rem; padding:.45rem 1rem; border-left:1px solid var(--c-border); color:var(--c-text); text-decoration:none; min-width:0; }
.sf-problem-list a:first-child{ border-left:0; padding-left:0; }
.sf-problem-list a:hover span{ color:var(--primary-hover); }
.sf-problem-list strong{ color:var(--primary-hover); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.sf-problem-list span{ font-weight:700; line-height:1.4; }
.sf-urgent-note{ margin:1.5rem 0 0; padding:1rem 1.25rem; background:var(--primary-l); border-left:3px solid var(--primary); color:var(--c-text); font-size:.92rem; }
.sf-urgent-note a{ color:var(--primary-hover); font-weight:700; }

.sf-section-intro{ max-width:750px; margin-bottom:2.2rem; }
.sf-section-intro h2,.sf-pricing h2,.sf-final h2{ font-size:clamp(1.8rem,3vw,2.45rem); }
.sf-section-intro p{ color:var(--c-text-soft); margin:.5rem 0 0; }
.sf-service-grid{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:1.1rem; }
.sf-service{ grid-column:span 3; min-width:0; border:1px solid var(--c-border); border-radius:var(--radius-lg); background:var(--c-bg); padding:1.55rem; box-shadow:var(--shadow-sm); }
.sf-service-large{ grid-column:span 6; padding:2rem; }
.sf-service-wide{ grid-column:span 12; display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.1fr) auto; gap:1.5rem; align-items:center; background:var(--primary-l); border-color:var(--primary-l); }
.sf-service h3{ font-size:1.12rem; margin:.45rem 0 .65rem !important; }
.sf-service-large h3,.sf-service-wide h3{ font-size:1.35rem; }
.sf-service p{ color:var(--c-text-soft); margin:0; font-size:.94rem; }
.sf-service-index{ font-size:.8rem; font-weight:700; color:var(--primary-hover); letter-spacing:.08em; }
.sf-service-wide .sk-text-link{ white-space:nowrap; }
.sf-pipe-link{ margin-top:1.2rem; padding:1.2rem 1.5rem; border:1px solid var(--c-border); border-radius:var(--radius); display:flex; align-items:center; flex-wrap:wrap; gap:.5rem 1.25rem; }
.sf-pipe-link span{ color:var(--c-text-soft); }
.sf-pipe-link .sk-text-link{ margin-left:auto; }

.sf-customers{ background:var(--c-bg-alt); }
.sf-customer-band{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); background:var(--c-dark); border-radius:var(--radius-lg); overflow:hidden; }
.sf-customer-band>div{ padding:2.3rem; min-width:0; }
.sf-customer-band>div+div{ border-left:1px solid var(--c-text-soft); }
.sf-customer-band h3{ color:var(--c-bg) !important; font-size:1.35rem; }
.sf-customer-band p{ color:var(--c-bg); margin:0; }

.sf-partner-panel{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border:1px solid var(--c-border); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); }
.sf-partner-panel>div{ padding:2rem; }
.sf-partner-panel>div+div{ border-left:1px solid var(--c-border); }
.sf-panel-label{ color:var(--primary-hover); font-weight:700; font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; }
.sf-partner-panel h3{ font-size:1.2rem; margin:.7rem 0 !important; }
.sf-partner-panel p{ color:var(--c-text-soft); margin:0; }
.sf-partner-note{ margin:1rem 0 0; color:var(--c-text-soft); }
.sf-partner-note a{ display:inline-block; }

.sf-pricing{ background:var(--c-bg-alt); }
.sf-pricing-grid{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:3rem; align-items:center; }
.sf-pricing-grid>div:first-child>p{ max-width:660px; color:var(--c-text-soft); }
.sf-pricing .sk-button{ margin-top:.4rem; }
.sf-factor-panel{ border:1px solid var(--c-border); border-radius:var(--radius-lg); background:var(--c-bg); padding:2rem; }
.sf-factor-panel h3{ font-size:1.15rem; }
.sf-factor-panel ul{ margin:0; padding-left:1.2rem; line-height:1.9; color:var(--c-text-soft); }

.sf-timeline{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.2rem; position:relative; }
.sf-timeline::before{ content:""; position:absolute; left:1.1rem; right:1.1rem; top:1.1rem; height:2px; background:var(--c-border); }
.sf-timeline li{ min-width:0; position:relative; padding-top:3.2rem; }
.sf-timeline li>span{ position:absolute; top:0; left:0; display:grid; place-items:center; width:2.2rem; height:2.2rem; background:var(--primary); color:var(--c-bg); border-radius:var(--radius-pill); font-weight:700; }
.sf-timeline h3{ font-size:1.05rem; }
.sf-timeline p{ color:var(--c-text-soft); margin:0; font-size:.92rem; }

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

.sf-area{ background:var(--c-bg-alt); }
.sf-area-grid{ display:grid; grid-template-columns:minmax(280px,.42fr) minmax(0,.58fr); gap:2.2rem; align-items:center; }
.sf-area-copy p{ color:var(--c-text-soft); margin:0 0 1rem; }
.sf-area-copy .sf-map-note{ font-size:.82rem; }
.sf-area-actions{ display:flex; align-items:center; flex-wrap:wrap; gap:1rem; margin-top:1.4rem; }
.sf-area .sk-map{ height:400px; }

.sf-faq{ background:var(--c-bg); }
.sf-faq-panel{ border:1px solid var(--c-border); border-radius:var(--radius-lg); padding:0 2rem; background:var(--c-bg-alt); }
.sf-faq-panel .sk-faq-item:first-child{ border-top:0; }

.sf-final{ background:var(--c-dark); padding:3.8rem 0; }
.sf-final-grid{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(260px,.55fr); gap:3rem; align-items:center; }
.sf-final h2{ color:var(--c-bg) !important; }
.sf-final p{ color:var(--c-bg); max-width:700px; }
.sf-contact-actions{ display:flex; flex-direction:column; gap:.8rem; align-items:stretch; }
.sf-contact-actions>a:last-child{ color:var(--c-bg); text-align:center; overflow-wrap:anywhere; }

.sf-navigator a:focus-visible,.sf-problem-list a:focus-visible,.sf-pipe-link a:focus-visible,.sf-area-actions a:focus-visible{ outline:3px solid var(--primary); outline-offset:3px; }

@media (max-width:1024px){
  .sf-hero-grid{ grid-template-columns:minmax(0,1fr) minmax(280px,.8fr); gap:2rem; }
  .sf-problem-list{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem 0; }
  .sf-problem-list a:nth-child(4){ border-left:0; padding-left:0; }
  .sf-service{ grid-column:span 6; }
  .sf-service-wide{ grid-column:span 12; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); }
  .sf-service-wide .sk-text-link{ grid-column:1 / -1; }
}
@media (max-width:760px){
  .sf-hero{ padding:3rem 0; }
  .sf-hero-grid,.sf-customer-band,.sf-partner-panel,.sf-pricing-grid,.sf-safety-inner,.sf-area-grid,.sf-final-grid{ grid-template-columns:1fr; }
  .sf-customer-band>div+div,.sf-partner-panel>div+div{ border-left:0; border-top:1px solid var(--c-border); }
  .sf-problem-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sf-problem-list a:nth-child(3),.sf-problem-list a:nth-child(5){ border-left:0; padding-left:0; }
  .sf-problem-list a:nth-child(4){ border-left:1px solid var(--c-border); padding-left:1rem; }
  .sf-area .sk-map{ height:300px; }
  .sf-timeline{ grid-template-columns:1fr; gap:1rem; }
  .sf-timeline::before{ left:1.05rem; right:auto; top:1rem; bottom:1rem; width:2px; height:auto; }
  .sf-timeline li{ padding:0 0 0 3.3rem; min-height:2.2rem; }
  .sf-contact-actions{ max-width:420px; }
}
@media (max-width:560px){
  .sf-problem-list{ grid-template-columns:1fr; }
  .sf-problem-list a,.sf-problem-list a:nth-child(4){ border-left:0; padding:.55rem 0; border-bottom:1px solid var(--c-border); }
  .sf-service,.sf-service-large,.sf-service-wide{ grid-column:span 12; padding:1.5rem; }
  .sf-service-wide{ display:block; }
  .sf-service-wide .sk-text-link{ display:inline-block; margin-top:1rem; white-space:normal; }
  .sf-pipe-link .sk-text-link{ margin-left:0; }
  .sf-customer-band>div,.sf-partner-panel>div{ padding:1.6rem; }
  .sf-faq-panel{ padding:0 1.1rem; }
  .sf-area-actions{ align-items:stretch; flex-direction:column; }
  .sf-area .sk-map{ height:280px; }
}
