/* =========================================================================
   Schlüsseldienst Söhrewald – Adam Haustechnik Service 24
   Page-scoped styles. Reuses tokens from /css/global.css only.
   No :root, no new global variables, no new fonts.
   ========================================================================= */

body.soehrewald-page { background: var(--c-bg); font-family: var(--font-body); color: var(--c-text); }
body.soehrewald-page h1, body.soehrewald-page h2, body.soehrewald-page h3 {
  font-family: var(--font-display); font-weight: 800; letter-spacing: -0.01em;
}
body.soehrewald-page .sw-container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

/* ---------- Buttons ---------- */
body.soehrewald-page .sw-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  font-family: var(--font-body); font-weight: 700; font-size: .95rem;
  padding: .85rem 1.5rem; border-radius: var(--radius);
  border: 1.5px solid transparent; cursor: pointer; text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
  white-space: nowrap;
}
body.soehrewald-page .sw-btn:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
body.soehrewald-page .sw-btn-lg { padding: 1rem 1.8rem; font-size: 1.02rem; }
body.soehrewald-page .sw-btn-sm { padding: .6rem 1.1rem; font-size: .84rem; }
body.soehrewald-page .sw-btn-primary { background: var(--primary); color: #fff; box-shadow: var(--shadow-glow); }
body.soehrewald-page .sw-btn-primary:hover { background: var(--primary-hover); transform: translateY(-2px); color: #fff; }
body.soehrewald-page .sw-btn-outline { background: transparent; border-color: rgba(255,255,255,.35); color: #fff; }
body.soehrewald-page .sw-btn-outline:hover { border-color: var(--primary); color: var(--primary); transform: translateY(-2px); }
body.soehrewald-page .sw-btn-ghost { background: transparent; color: var(--c-text); border-color: var(--c-border); }
body.soehrewald-page .sw-btn-ghost:hover { border-color: var(--primary); color: var(--primary-hover); }
body.soehrewald-page .sw-btn-light { background: #fff; color: var(--primary-hover); }
body.soehrewald-page .sw-btn-light:hover { background:#fff; transform: translateY(-2px); box-shadow: var(--shadow-md); }
body.soehrewald-page .sw-btn-dark { background: var(--c-dark); color: #fff; }
body.soehrewald-page .sw-btn-dark:hover { background: var(--c-dark-2); color: #fff; transform: translateY(-2px); }
body.soehrewald-page .sw-btn-block { width: 100%; }

/* ---------- Section rhythm ---------- */
body.soehrewald-page .sw-section { padding: 5rem 0; }
body.soehrewald-page .sw-section-a { background: var(--c-bg); }
body.soehrewald-page .sw-section-b { background: var(--light); }
body.soehrewald-page .sw-section-ink {
  background: linear-gradient(180deg, var(--c-dark-2) 0%, var(--c-dark) 100%); color:#fff; position:relative; overflow:hidden;
}
body.soehrewald-page .sw-section-ink h2, body.soehrewald-page .sw-section-ink h3 { color:#fff; }
body.soehrewald-page .sw-section-ink::before {
  content:""; position:absolute; inset:0;
  background-image: radial-gradient(circle at 15% 20%, rgba(239,73,51,.12), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(239,73,51,.10), transparent 45%);
  pointer-events:none;
}

body.soehrewald-page .sw-head { max-width: 680px; margin: 0 auto 2.6rem; text-align:center; position:relative; z-index:1; }
body.soehrewald-page .sw-head.left { text-align:left; margin-left:0; }
body.soehrewald-page .sw-eyebrow {
  display:inline-flex; align-items:center; gap:.5rem; font-size:.74rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase; color: var(--primary-hover); margin-bottom:.9rem;
}
body.soehrewald-page .sw-section-ink .sw-eyebrow { color:#fca79a; }
body.soehrewald-page .sw-dot { width:8px; height:8px; border-radius:50%; background: var(--c-success); display:inline-block; }
body.soehrewald-page .sw-dot.pulse { animation: sw-pulse 1.6s infinite; }
@keyframes sw-pulse { 0%{box-shadow:0 0 0 0 rgba(16,185,129,.55);} 70%{box-shadow:0 0 0 8px rgba(16,185,129,0);} 100%{box-shadow:0 0 0 0 rgba(16,185,129,0);} }

/* =========================================================================
   HERO — "Einsatzleitzentrale" (dispatch console)
   ========================================================================= */
body.soehrewald-page .sw-hero { position:relative; padding: 3.6rem 0 3rem; background: var(--c-bg-alt); overflow:hidden; }
body.soehrewald-page .sw-hero-grid { display:grid; grid-template-columns: 1.25fr .85fr; gap: 2.6rem; align-items:center; }
body.soehrewald-page .sw-hero h1 { font-size: clamp(2rem, 4vw, 2.9rem); line-height:1.12; margin: 0 0 1rem; }
body.soehrewald-page .sw-hero h1 .sw-hl { color: var(--primary); }
body.soehrewald-page .sw-hero-lead { font-size:1.05rem; color: var(--c-text-soft); max-width: 560px; margin: 0 0 1.6rem; }
body.soehrewald-page .sw-hero-ctas { display:flex; flex-wrap:wrap; gap:.8rem; margin-bottom:1.6rem; }

body.soehrewald-page .sw-chip-row { display:flex; flex-wrap:wrap; gap:.55rem; }
body.soehrewald-page .sw-chip {
  display:inline-flex; align-items:center; gap:.4rem; font-size:.82rem; font-weight:700;
  padding:.5rem .9rem; border-radius: var(--radius-pill); background:#fff; border:1px solid var(--c-border);
  color: var(--c-text); text-decoration:none; transition: border-color .15s ease, color .15s ease, transform .15s ease;
}
body.soehrewald-page .sw-chip:hover { border-color: var(--primary); color: var(--primary-hover); transform: translateY(-1px); }
body.soehrewald-page .sw-chip i { color: var(--primary); }

body.soehrewald-page .sw-dispatch {
  background: var(--c-dark); color:#fff; border-radius: var(--radius-lg); padding: 1.8rem 1.7rem;
  box-shadow: var(--shadow-lg); position:relative;
}
body.soehrewald-page .sw-dispatch-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.3rem; }
body.soehrewald-page .sw-dispatch-status { display:flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#7ee2b8; }
body.soehrewald-page .sw-dispatch-loc { font-size:.78rem; color:#9fb0c0; font-weight:600; }
body.soehrewald-page .sw-dispatch-rows { display:flex; flex-direction:column; gap:.85rem; margin-bottom:1.4rem; }
body.soehrewald-page .sw-dispatch-row { display:flex; align-items:center; gap:.8rem; padding-bottom:.85rem; border-bottom:1px solid rgba(255,255,255,.09); }
body.soehrewald-page .sw-dispatch-row:last-child { border-bottom:none; padding-bottom:0; }
body.soehrewald-page .sw-dispatch-row i { width:38px; height:38px; border-radius:10px; background:rgba(239,73,51,.16); color: var(--primary); display:grid; place-items:center; font-size:1rem; flex:0 0 auto; }
body.soehrewald-page .sw-dispatch-row strong { display:block; font-size:.92rem; }
body.soehrewald-page .sw-dispatch-row span { display:block; font-size:.78rem; color:#9fb0c0; }
body.soehrewald-page .sw-dispatch .sw-btn { width:100%; }

/* =========================================================================
   PROBLEM → HILFE MATRIX  (core differentiator: problem + service + price fused)
   ========================================================================= */
body.soehrewald-page .sw-matrix-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
body.soehrewald-page .sw-matrix-item {
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-lg);
  padding: 1.5rem 1.4rem; position:relative; transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
body.soehrewald-page .sw-matrix-item:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); border-color: rgba(239,73,51,.3); }
body.soehrewald-page .sw-matrix-icon {
  width:46px; height:46px; border-radius:12px; background: var(--primary-l); color: var(--primary-hover);
  display:grid; place-items:center; font-size:1.15rem; margin-bottom:1rem;
}
body.soehrewald-page .sw-matrix-item h3 { font-size:1.05rem; margin:0 0 .5rem; }
body.soehrewald-page .sw-matrix-item p { font-size:.9rem; color: var(--c-text-soft); line-height:1.55; margin:0 0 1rem; }
body.soehrewald-page .sw-matrix-foot { display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
body.soehrewald-page .sw-matrix-price { font-weight:800; color: var(--primary-hover); font-size:.92rem; white-space:nowrap; }
body.soehrewald-page .sw-matrix-link { font-size:.82rem; font-weight:700; color: var(--c-text); display:inline-flex; align-items:center; gap:.3rem; text-decoration:none; }
body.soehrewald-page .sw-matrix-link:hover { color: var(--primary); }

/* =========================================================================
   PRICING — compact scan menu (list rows, not cards)
   ========================================================================= */
body.soehrewald-page .sw-menu { border:1px solid var(--c-border); border-radius: var(--radius-lg); overflow:hidden; background:#fff; }
body.soehrewald-page .sw-menu-row {
  display:grid; grid-template-columns: 1fr auto auto; gap: 1.2rem; align-items:center;
  padding: 1.25rem 1.5rem; border-bottom:1px solid var(--c-border);
}
body.soehrewald-page .sw-menu-row:last-child { border-bottom:none; }
body.soehrewald-page .sw-menu-row.is-featured { background: var(--primary-l); }
body.soehrewald-page .sw-menu-main strong { display:block; font-size:1rem; margin-bottom:.2rem; }
body.soehrewald-page .sw-menu-main span { font-size:.84rem; color: var(--c-text-soft); }
body.soehrewald-page .sw-menu-price { font-weight:800; font-size:1.2rem; color: var(--primary-hover); white-space:nowrap; text-align:right; }
body.soehrewald-page .sw-menu-price small { display:block; font-size:.68rem; font-weight:700; color: var(--c-muted); text-transform:uppercase; letter-spacing:.04em; }
body.soehrewald-page .sw-menu-cta { flex: 0 0 auto; }
body.soehrewald-page .sw-price-note {
  display:flex; gap:.6rem; align-items:flex-start; font-size:.86rem; color: var(--c-text-soft);
  margin-top:1.2rem; padding:1rem 1.2rem; background: var(--light); border-radius: var(--radius);
}
body.soehrewald-page .sw-price-note i { color: var(--primary); margin-top:.15rem; }

/* =========================================================================
   PROCESS — compact horizontal stepper
   ========================================================================= */
body.soehrewald-page .sw-steps { display:grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; counter-reset: sw-step; }
body.soehrewald-page .sw-step { text-align:left; padding: 1.3rem 1.2rem; border-radius: var(--radius); background:#fff; border:1px solid var(--c-border); position:relative; }
body.soehrewald-page .sw-step-num {
  width:32px; height:32px; border-radius:50%; background: var(--primary); color:#fff; font-weight:800; font-size:.85rem;
  display:grid; place-items:center; margin-bottom:.8rem;
}
body.soehrewald-page .sw-step h3 { font-size:.98rem; margin:0 0 .4rem; }
body.soehrewald-page .sw-step p { font-size:.84rem; color: var(--c-text-soft); margin:0; line-height:1.5; }
body.soehrewald-page .sw-step:not(:last-child)::after {
  content:""; position:absolute; top:2.3rem; right:-1rem; width:1rem; height:2px; background: var(--c-border);
}

/* =========================================================================
   TRUST STRIP
   ========================================================================= */
body.soehrewald-page .sw-trust-strip { display:grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-radius: var(--radius-lg); overflow:hidden; background:#fff; border:1px solid var(--c-border); }
body.soehrewald-page .sw-trust-cell { padding: 1.6rem 1.4rem; text-align:center; border-right:1px solid var(--c-border); }
body.soehrewald-page .sw-trust-cell:last-child { border-right:none; }
body.soehrewald-page .sw-trust-cell i { font-size:1.4rem; color: var(--primary); margin-bottom:.6rem; display:block; }
body.soehrewald-page .sw-trust-cell strong { display:block; font-size:1.05rem; margin-bottom:.2rem; }
body.soehrewald-page .sw-trust-cell span { font-size:.78rem; color: var(--c-text-soft); }

body.soehrewald-page .sw-why-list { list-style:none; padding:0; margin: 1.6rem 0 0; display:grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.6rem; }
body.soehrewald-page .sw-why-list li { display:flex; gap:.75rem; align-items:flex-start; }
body.soehrewald-page .sw-why-list i { color: var(--primary); font-size:1.05rem; margin-top:.15rem; flex:0 0 auto; }
body.soehrewald-page .sw-why-list strong { display:block; font-size:.92rem; }
body.soehrewald-page .sw-why-list span { font-size:.82rem; color: var(--c-text-soft); }

/* =========================================================================
   GEBIET + KARTE + KONTAKT — combined panel
   ========================================================================= */
body.soehrewald-page .sw-region-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 2.4rem; align-items:start; }
body.soehrewald-page .sw-tag-group { margin-bottom: 1.5rem; }
body.soehrewald-page .sw-tag-group-label { display:block; font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color: var(--c-muted); margin-bottom:.6rem; }
body.soehrewald-page .sw-tags { display:flex; flex-wrap:wrap; gap:.5rem; }
body.soehrewald-page .sw-tag { display:inline-flex; align-items:center; gap:.35rem; font-size:.82rem; font-weight:600; padding:.45rem .8rem; border-radius: var(--radius-pill); background: var(--light); border:1px solid var(--c-border); }
body.soehrewald-page .sw-tag.is-core { background: var(--primary-l); border-color: transparent; color: var(--primary-hover); font-weight:800; }
body.soehrewald-page .sw-tag i { color: var(--primary); font-size:.8rem; }

body.soehrewald-page .sw-map-wrap { position:relative; border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-md); }
body.soehrewald-page .sw-leaflet-map { width:100%; height: 320px; }
body.soehrewald-page .sw-map-note { display:flex; gap:.5rem; font-size:.8rem; color: var(--c-text-soft); margin-top:.9rem; }
body.soehrewald-page .sw-map-note i { color: var(--primary); margin-top:.1rem; }

body.soehrewald-page .sw-contact-card { background: var(--c-dark); color:#fff; border-radius: var(--radius-lg); padding: 1.8rem; }
body.soehrewald-page .sw-contact-card h3 { color:#fff; font-size:1.1rem; margin:0 0 .3rem; }
body.soehrewald-page .sw-contact-card > p { font-size:.86rem; color:#9fb0c0; margin:0 0 1.4rem; }
body.soehrewald-page .sw-contact-list { list-style:none; padding:0; margin:0 0 1.4rem; display:flex; flex-direction:column; gap:.9rem; }
body.soehrewald-page .sw-contact-list li { display:flex; gap:.8rem; align-items:flex-start; }
body.soehrewald-page .sw-contact-list i { width:36px; height:36px; border-radius:10px; background:rgba(239,73,51,.18); color: var(--primary); display:grid; place-items:center; flex:0 0 auto; }
body.soehrewald-page .sw-contact-list strong { display:block; font-size:.78rem; color:#9fb0c0; font-weight:700; margin-bottom:.15rem; }
body.soehrewald-page .sw-contact-list a, body.soehrewald-page .sw-contact-list span.val { color:#fff; font-weight:600; font-size:.92rem; }
body.soehrewald-page .sw-contact-list a:hover { color: var(--primary); }
body.soehrewald-page .sw-contact-card .sw-btn { width:100%; margin-bottom:.7rem; }
body.soehrewald-page .sw-payments { display:flex; align-items:center; gap:.8rem; font-size:.8rem; color:#9fb0c0; margin-top:1.1rem; }
body.soehrewald-page .sw-payments i { font-size:1.1rem; color:#9fb0c0; }

/* =========================================================================
   FAQ — two-column layout
   ========================================================================= */
body.soehrewald-page .sw-faq-cols { column-count: 2; column-gap: 1.4rem; }
body.soehrewald-page .sw-faq-item { break-inside: avoid; display:block; margin-bottom: 1rem; background:#fff; border:1px solid var(--c-border); border-radius: var(--radius); padding: .3rem 1.1rem; }
body.soehrewald-page .sw-faq-item summary {
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding: .95rem 0; font-weight:700; font-size:.92rem;
}
body.soehrewald-page .sw-faq-item summary::-webkit-details-marker { display:none; }
body.soehrewald-page .sw-faq-item i { color: var(--primary); transition: transform .2s ease; flex:0 0 auto; }
body.soehrewald-page .sw-faq-item[open] i { transform: rotate(45deg); }
body.soehrewald-page .sw-faq-item p { font-size:.86rem; color: var(--c-text-soft); line-height:1.6; margin: 0 0 1rem; }

/* =========================================================================
   FINAL CTA STRIP
   ========================================================================= */
body.soehrewald-page .sw-final-cta { background: var(--primary); color:#fff; padding: 3rem 0; }
body.soehrewald-page .sw-final-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
body.soehrewald-page .sw-final-inner h2 { color:#fff; margin:0 0 .4rem; font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
body.soehrewald-page .sw-final-inner p { margin:0; opacity:.92; font-size:.95rem; }
body.soehrewald-page .sw-final-actions { display:flex; gap:.8rem; flex-wrap:wrap; }
body.soehrewald-page .sw-final-cta .sw-btn-light:hover { color: var(--primary-hover); }

/* ---------- Keyboard focus ---------- */
body.soehrewald-page a:focus-visible, body.soehrewald-page summary:focus-visible, body.soehrewald-page button:focus-visible {
  outline: 3px solid var(--primary); outline-offset: 2px;
}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 980px) {
  body.soehrewald-page .sw-hero-grid { grid-template-columns: 1fr; }
  body.soehrewald-page .sw-matrix-grid { grid-template-columns: repeat(2, 1fr); }
  body.soehrewald-page .sw-steps { grid-template-columns: repeat(2, 1fr); }
  body.soehrewald-page .sw-trust-strip { grid-template-columns: repeat(2, 1fr); }
  body.soehrewald-page .sw-trust-cell:nth-child(2) { border-right:none; }
  body.soehrewald-page .sw-trust-cell:nth-child(3) { border-top:1px solid var(--c-border); }
  body.soehrewald-page .sw-trust-cell:nth-child(4) { border-top:1px solid var(--c-border); }
  body.soehrewald-page .sw-region-grid { grid-template-columns: 1fr; }
  body.soehrewald-page .sw-faq-cols { column-count: 1; }
}
@media (max-width: 720px) {
  body.soehrewald-page .sw-section { padding: 3.2rem 0; }
  body.soehrewald-page .sw-matrix-grid { grid-template-columns: 1fr; }
  body.soehrewald-page .sw-steps { grid-template-columns: 1fr; }
  body.soehrewald-page .sw-step:not(:last-child)::after { display:none; }
  body.soehrewald-page .sw-why-list { grid-template-columns: 1fr; }
  body.soehrewald-page .sw-menu-row { grid-template-columns: 1fr; text-align:left; }
  body.soehrewald-page .sw-menu-price { text-align:left; }
  body.soehrewald-page .sw-final-inner { flex-direction:column; align-items:flex-start; }
}
@media (max-width: 480px) {
  body.soehrewald-page .sw-hero-ctas .sw-btn, body.soehrewald-page .sw-final-actions .sw-btn { width:100%; }
  body.soehrewald-page .sw-hero-ctas, body.soehrewald-page .sw-final-actions { flex-direction:column; align-items:stretch; }
  body.soehrewald-page .sw-trust-strip { grid-template-columns: 1fr 1fr; }
}
