/* Zusätzliche Styles für die Unterseiten + Cookie-Banner */

.subhero {
  position: relative;
  min-height: 52vh;
  display: flex;
  align-items: center;
  color: #fff;
  background-size: cover;
  background-position: center;
}
.subhero::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(120deg, rgba(7,40,20,.85), rgba(7,30,20,.45));
}
.subhero-inner { position: relative; z-index: 2; max-width: 680px; }
.subhero .eyebrow { color: #cdeeda; }
.subhero h1 { color: #fff; margin-bottom: 12px; }
.subhero p { color: rgba(255,255,255,.9); margin: 0; }

.breadcrumb-row {
  font-size: 13px;
  color: rgba(255,255,255,.75);
  margin-bottom: 16px;
}
.breadcrumb-row a { color: rgba(255,255,255,.9); font-weight: 600; }
.breadcrumb-row a:hover { text-decoration: underline; }

.intro-block { max-width: 820px; margin: 0 auto; }
.intro-block p { font-size: 1.05rem; }

/* Per-service color themes (subhero overlay + CTA band) */
body.theme-blue .subhero::after { background: linear-gradient(120deg, rgba(20,77,135,.88), rgba(30,111,191,.5)); }
body.theme-blue .cta-band { background: linear-gradient(120deg, #144d87, #1e6fbf); }
body.theme-blue .eyebrow,
body.theme-blue .subhero .eyebrow { color: #1e6fbf; }
body.theme-blue .subhero .eyebrow { color: #cfe6fa; }
body.theme-blue .feature-icon { background: #e8f2fb; color: #1e6fbf; }

body.theme-winter .subhero::after { background: linear-gradient(120deg, rgba(41,55,79,.88), rgba(59,79,118,.5)); }
body.theme-winter .cta-band { background: linear-gradient(120deg, #29374f, #3b4f76); }
body.theme-winter .eyebrow { color: #3b4f76; }
body.theme-winter .subhero .eyebrow { color: #d6dcea; }
body.theme-winter .feature-icon { background: #e9ecf3; color: #3b4f76; }

body.theme-amber .subhero::after { background: linear-gradient(120deg, rgba(138,74,20,.88), rgba(181,101,29,.5)); }
body.theme-amber .cta-band { background: linear-gradient(120deg, #8a4a14, #b5651d); }
body.theme-amber .eyebrow { color: #b5651d; }
body.theme-amber .subhero .eyebrow { color: #f6ddc4; }
body.theme-amber .feature-icon { background: #faedde; color: #b5651d; }

/* Feature boxes with a representative photo (service subpages) */
.feature-media {
  flex-direction: column;
  gap: 0;
  background: #fff;
  border: 1px solid var(--border, #e4e8e5);
  border-radius: var(--radius, 16px);
  overflow: hidden;
  box-shadow: var(--shadow-sm, 0 2px 10px rgba(23,29,26,.06));
  transition: box-shadow .25s var(--ease, ease), transform .25s var(--ease, ease);
}
.feature-media:hover { box-shadow: var(--shadow-md, 0 12px 32px rgba(23,29,26,.1)); transform: translateY(-3px); }
.feature-media .feature-img {
  display: block;
  width: 100%;
  height: 150px;
  object-fit: cover;
}
.feature-media .feature-body {
  display: flex;
  gap: 16px;
  padding: 20px 22px 22px;
}
.feature-media .feature-icon { margin-top: 2px; }
.feature-media h3 { margin-bottom: 6px; font-size: 1.05rem; }
.feature-media p { font-size: 14.5px; margin: 0; }
@media (max-width: 480px) {
  .feature-media .feature-img { height: 130px; }
  .feature-media .feature-body { padding: 16px 18px 18px; gap: 12px; }
}

/* Legal pages (Impressum / Datenschutz) content cards */
.legal-block { max-width: 780px; margin: 0 auto; }
.legal-card {
  background: var(--paper, #fff);
  border: 1px solid var(--border, #e4e8e5);
  border-radius: var(--radius, 16px);
  padding: 32px 36px;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm, 0 2px 10px rgba(23,29,26,.06));
}
.legal-card h2 { font-size: 1.3rem; margin: 0 0 18px; }
.legal-card h3 { font-size: 1.05rem; margin: 22px 0 8px; }
.legal-card h3:first-child { margin-top: 0; }
.legal-card p { font-size: 14.5px; line-height: 1.7; color: var(--ink-soft, #4b544e); margin: 0 0 4px; }
.legal-card a { color: var(--primary, #0a7c36); font-weight: 600; }
@media (max-width: 640px) { .legal-card { padding: 24px 20px; } }

/* Cookie consent banner */
.consent-banner {
  position: fixed;
  left: 16px; right: 16px; bottom: 16px;
  max-width: 640px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--border, #e4e8e5);
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(0,0,0,.18);
  padding: 22px 24px;
  z-index: 500;
  transform: translateY(140%);
  transition: transform .5s cubic-bezier(.16,1,.3,1);
}
.consent-banner.is-visible { transform: translateY(0); }
.consent-banner p { margin: 0 0 14px; font-size: 13.5px; color: #4b544e; line-height: 1.5; }
.consent-banner a { color: var(--primary, #0a7c36); font-weight: 600; }
.consent-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.consent-actions button {
  border: none; cursor: pointer; border-radius: 999px;
  padding: 10px 20px; font-size: 13.5px; font-weight: 600;
  font-family: inherit;
}
.consent-accept { background: var(--primary, #0a7c36); color: #fff; }
.consent-decline { background: #eef1ef; color: #333; }

/* =========================================================
   Flächen-Skizze Tool (Winterdienst-Flächen einzeichnen)
   ========================================================= */

/* CTA-Karte, die z. B. von winterdienst.html auf das Tool verlinkt */
.sketch-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  background: linear-gradient(120deg, #29374f, #3b4f76);
  color: #fff;
  border-radius: var(--radius, 16px);
  padding: 28px 32px;
  margin: 0 auto 8px;
  box-shadow: var(--shadow-md, 0 12px 32px rgba(23,29,26,.1));
}
.sketch-cta .sketch-cta-text h3 { color: #fff; margin: 0 0 6px; font-size: 1.15rem; }
.sketch-cta .sketch-cta-text p { color: rgba(255,255,255,.85); margin: 0; font-size: 14.5px; }
.sketch-cta .btn-primary { background: #fff; color: #29374f; box-shadow: none; white-space: nowrap; }
.sketch-cta .btn-primary:hover { background: #eef1f7; }
@media (max-width: 640px) {
  .sketch-cta { padding: 22px 20px; text-align: center; justify-content: center; }
  .sketch-cta .btn-primary { width: 100%; text-align: center; }
}

/* Schritte-Übersicht (Adresse -> Fläche -> Download) */
.sketch-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 960px;
  margin: 0 auto 40px;
}
.sketch-steps .sketch-step {
  background: var(--paper, #fff);
  border: 1px solid var(--border, #e4e8e5);
  border-radius: var(--radius, 16px);
  padding: 22px 20px;
  text-align: center;
  box-shadow: var(--shadow-sm, 0 2px 10px rgba(23,29,26,.06));
}
.sketch-step .sketch-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: #e9ecf3;
  color: #3b4f76;
  font-weight: 700;
  margin-bottom: 10px;
}
.sketch-step h3 { font-size: 1rem; margin: 0 0 6px; }
.sketch-step p { font-size: 13.5px; color: var(--ink-soft, #4b544e); margin: 0; }
@media (max-width: 720px) {
  .sketch-steps { grid-template-columns: 1fr; }
}

/* Das eigentliche Tool: Suche, Karte, Ergebnis */
.sketch-tool {
  max-width: 960px;
  margin: 0 auto;
  background: var(--paper, #fff);
  border: 1px solid var(--border, #e4e8e5);
  border-radius: var(--radius, 16px);
  padding: 28px 30px 30px;
  box-shadow: var(--shadow-sm, 0 2px 10px rgba(23,29,26,.06));
}
@media (max-width: 640px) {
  .sketch-tool { padding: 20px 16px 22px; }
}

.sketch-controls {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.sketch-controls input[type="text"] {
  flex: 1 1 260px;
  min-width: 0;
  padding: 12px 16px;
  border: 1px solid var(--border, #e4e8e5);
  border-radius: 999px;
  font-family: inherit;
  font-size: 14.5px;
  color: var(--ink, #171d1a);
  background: var(--paper-alt, #f6f8f6);
}
.sketch-controls input[type="text"]:focus {
  outline: none;
  border-color: #3b4f76;
  background: #fff;
}
.sketch-controls button {
  border: none;
  cursor: pointer;
  font-family: inherit;
}
.sketch-controls button:disabled {
  opacity: .6;
  cursor: not-allowed;
}

.sketch-status {
  min-height: 20px;
  font-size: 13.5px;
  margin: 0 0 14px;
  color: var(--ink-soft, #4b544e);
}
.sketch-status.is-error { color: #b3261e; font-weight: 600; }

.sketch-map {
  width: 100%;
  height: 520px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--border, #e4e8e5);
  background: #dfe4ea; /* sichtbar, solange die Kacheln noch laden */
}
@media (max-width: 640px) {
  .sketch-map { height: 380px; border-radius: 10px; }
}

.sketch-attribution {
  font-size: 11.5px;
  color: #8a9099;
  margin: 8px 0 0;
}

.sketch-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 18px;
  padding: 16px 20px;
  border-radius: 12px;
  background: var(--paper-alt, #f6f8f6);
  border: 1px solid var(--border, #e4e8e5);
}
.sketch-result .sketch-area {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink, #171d1a);
}
.sketch-result .sketch-area small {
  display: block;
  font-weight: 500;
  font-size: 12.5px;
  color: var(--ink-soft, #4b544e);
}

.sketch-hint {
  max-width: 960px;
  margin: 22px auto 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-soft, #4b544e);
  background: #fff8e6;
  border: 1px solid #f0dfa8;
  border-radius: 12px;
  padding: 16px 20px;
}
.sketch-hint strong { color: var(--ink, #171d1a); }

/* Leaflet-Popup/Icon-Overrides, damit sie zur Site passen */
.sketch-map .leaflet-bar a { color: #29374f; }
.sketch-map .leaflet-draw-toolbar a { background-color: #fff; }
