/* Schmidt Geruestbau - Startseite
 * Designwerte 1:1 aus der gelieferten Vorlage. Inhalte bleiben native
 * Elementor-Widgets; diese Klassen tragen nur die Gestaltung.
 * Spezifitaet bewusst unter Elementors Einzel-Element-Regeln, damit
 * Aenderungen im Elementor-Stilpanel weiterhin greifen.
 */

/* ---------- Basis: Container ohne Elementor-Standardabstaende ---------- */
.elementor .e-con.sg {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
  --min-height: 0; --width: 100%;
  box-sizing: border-box;
}
.elementor .e-con.sg > .elementor-widget { margin: 0; }
.elementor .sg p { margin: 0; }
.elementor .sg a { text-decoration: none; }

/* Hintergruende */
.elementor .e-con.sg-bg-white { background-color: #ffffff; }
.elementor .e-con.sg-bg-alt   { background-color: #f6f4f1; }
.elementor .e-con.sg-bg-red   { background-color: #d80505; color: #ffffff; }

/* Innenrahmen 1240 / 24 */
.elementor .e-con.sg-wrap {
  width: 100%; max-width: 1240px; margin-left: auto; margin-right: auto;
  padding-left: 24px; padding-right: 24px;
}
.elementor .e-con.sg-py    { padding-top: clamp(72px, 8vw, 110px);  padding-bottom: clamp(72px, 8vw, 110px); }
.elementor .e-con.sg-py-lg { padding-top: clamp(88px, 9.5vw, 136px); padding-bottom: clamp(88px, 9.5vw, 136px); }
.elementor .e-con.sg-py-cta { padding-top: 78px; padding-bottom: 78px; }

/* Raster (auto-fit wie im Original) */
.elementor .e-con.sg-g-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 60px; align-items: start; }
.elementor .e-con.sg-g-2--center { align-items: center; }
.elementor .e-con.sg-g-2--faq { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 56px; }
.elementor .e-con.sg-g-2--cta { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 48px; align-items: end; }
.elementor .e-con.sg-g-head { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); align-items: end; }
.elementor .e-con.sg-g-head--ls  { gap: 28px 72px; margin-bottom: 68px; }
.elementor .e-con.sg-g-head--ref { gap: 24px 60px; margin-bottom: 48px; }
.elementor .e-con.sg-g-services { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 48px 44px; }
.elementor .e-con.sg-g-refs  { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 28px; }
.elementor .e-con.sg-g-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px; }
.elementor .e-con.sg-g-2img  { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.elementor .e-con.sg-stack-16 { display: flex; flex-direction: column; gap: 16px; }
.elementor .sg > .e-con { min-width: 0; }
@media (max-width: 400px) {
  .elementor .e-con.sg-g-2,
  .elementor .e-con.sg-g-head,
  .elementor .e-con.sg-g-services,
  .elementor .e-con.sg-g-refs { grid-template-columns: 1fr; }
}

/* ---------- Typografie ---------- */
.elementor .sg-eyebrow .elementor-heading-title {
  margin: 0 0 18px; font: 600 11.5px/1 'Archivo', sans-serif; letter-spacing: .16em;
  text-transform: uppercase; color: #d80505;
}
.elementor .sg-eyebrow--light .elementor-heading-title { color: #ffd4d4; }

.elementor .sg-badge .elementor-heading-title {
  margin: 0 0 20px; display: inline-flex; align-items: center; gap: 11px;
  background: #d80505; color: #ffffff; padding: 9px 14px;
  font: 600 11px/1 'Archivo', sans-serif; letter-spacing: .14em; text-transform: uppercase;
}
.elementor .sg-h1 .elementor-heading-title {
  margin: 0; max-width: 20ch; font: 600 clamp(38px, 6.2vw, 80px)/1.0 'Archivo', sans-serif;
  letter-spacing: -.034em; color: #101215;
}
.elementor .sg-h2 .elementor-heading-title {
  margin: 0; font: 600 clamp(30px, 4vw, 48px)/1.08 'Archivo', sans-serif;
  letter-spacing: -.026em; color: #101215;
}
.elementor .sg-h2-cta .elementor-heading-title {
  margin: 0; font: 600 clamp(28px, 3.4vw, 42px)/1.1 'Archivo', sans-serif;
  letter-spacing: -.022em; color: #ffffff;
}
.elementor .sg-mw-20 .elementor-heading-title { max-width: 20ch; }
.elementor .sg-mw-22 .elementor-heading-title { max-width: 22ch; }
.elementor .sg-mw-24 .elementor-heading-title { max-width: 24ch; }

.elementor .sg-h3-card .elementor-heading-title { margin: 0; font: 600 22px/1.25 'Archivo', sans-serif; letter-spacing: -.015em; color: #101215; }
.elementor .sg-h3-feat .elementor-heading-title { margin: 0; font: 600 18.5px/1.3 'Archivo', sans-serif; color: #101215; }
.elementor .sg-h3-ref  .elementor-heading-title { margin: 0; font: 600 19px/1.3 'Archivo', sans-serif; letter-spacing: -.01em; color: #101215; }
.elementor .sg-h3-step .elementor-heading-title { margin: 0; font: 600 20px/1.25 'Archivo', sans-serif; color: #101215; }

.elementor .sg-meta .elementor-heading-title {
  margin: 0; font: 600 10.5px/1 'Archivo', sans-serif; letter-spacing: .14em;
  text-transform: uppercase; color: #8a9099;
}
.elementor .sg-step-label .elementor-heading-title { margin: 0; font: 700 14px/1 'Archivo', sans-serif; letter-spacing: .1em; color: #8a9099; }
.elementor .sg-step--active .sg-step-label .elementor-heading-title { color: #d80505; }

.elementor .sg-more .elementor-heading-title {
  margin: 0; display: inline-flex; align-items: center; gap: 8px;
  font: 600 14px/1 'Archivo', sans-serif; color: #d80505;
}
.elementor .sg-more .elementor-heading-title::after { content: "\2192"; }

/* Fliesstext (Text-Editor) */
.elementor .elementor-widget-text-editor.sg-t { font-family: 'Public Sans', sans-serif; font-weight: 400; color: #5b6168; }
.elementor .sg-t-lead  { font-size: 17px;   line-height: 1.7; }
.elementor .sg-t-stat  { font-size: 16.5px; line-height: 1.7; }
.elementor .elementor-widget-text-editor.sg-t-stat { color: #4b5158; }
.elementor .sg-t-stat p { max-width: 34ch; }
.elementor .sg-t-card  { font-size: 15.5px; line-height: 1.7; }
.elementor .sg-t-16    { font-size: 16px;   line-height: 1.7; }
.elementor .sg-t-ref   { font-size: 15.5px; line-height: 1.6; }
.elementor .sg-t-step  { font-size: 15.5px; line-height: 1.65; }
.elementor .sg-t-cta   { font-size: 17px;   line-height: 1.7; }
.elementor .elementor-widget-text-editor.sg-t-cta { color: #ffe4e4; }
.elementor.elementor .e-con > .sg-mw-44ch { max-width: 44ch; }
.elementor.elementor .e-con > .sg-mw-46ch { max-width: 46ch; }
.elementor.elementor .e-con > .sg-mw-48ch { max-width: 48ch; }
.elementor.elementor .e-con > .sg-mw-52ch { max-width: 52ch; }

/* Abstands-Helfer (entsprechen den margin-top-Werten der Vorlage) */
.elementor .e-con.sg > .sg-mt-7  { margin-top: 7px; }
.elementor .e-con.sg > .sg-mt-8  { margin-top: 8px; }
.elementor .e-con.sg > .sg-mt-10 { margin-top: 10px; }
.elementor .e-con.sg > .sg-mt-14 { margin-top: 14px; }
.elementor .e-con.sg > .sg-mt-18 { margin-top: 18px; }
.elementor .e-con.sg > .sg-mt-22 { margin-top: 22px; }
.elementor .e-con.sg > .sg-mt-26 { margin-top: 26px; }
.elementor .e-con.sg > .sg-mt-34 { margin-top: 34px; }
.elementor .e-con.sg > .sg-mt-36 { margin-top: 36px; }
.elementor .e-con.sg > .sg-mt-38 { margin-top: 38px; }
.elementor .e-con.sg > .sg-mt-40 { margin-top: 40px; }
.elementor .e-con.sg > .sg-mb-56 { margin-bottom: 56px; }

/* ---------- Bilder ---------- */
.elementor .sg-img img { display: block; width: 100%; max-width: 100%; object-fit: cover; border-radius: 0; }
.elementor .sg-img-auto img { height: auto; }
.elementor .sg-img-240 img { height: 240px; }
.elementor .sg-img-252 img { height: 252px; }
.elementor .sg-img-300 { overflow: hidden; background: #f6f4f1; }
.elementor .sg-img-300 img { height: 300px; }

/* ---------- Buttons ---------- */
.elementor .sg-btn .elementor-button {
  display: inline-flex; align-items: center; gap: 10px; border-radius: 0;
  font: 600 15px/1 'Archivo', sans-serif; letter-spacing: 0; text-transform: none;
  padding: 17px 22px; border: 1px solid transparent; box-shadow: none;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.elementor .sg-btn .elementor-button-content-wrapper { display: flex; align-items: center; gap: 10px; }
.elementor .sg-btn--red .elementor-button { background-color: #d80505; color: #ffffff; border-width: 0; }
.elementor .sg-btn--red .elementor-button:hover { background-color: #101215; color: #ffffff; }
.elementor .sg-btn--outline .elementor-button { background-color: transparent; color: #101215; border-color: #101215; }
.elementor .sg-btn--outline .elementor-button:hover { background-color: #101215; color: #ffffff; }
.elementor .sg-btn--dark .elementor-button {
  background-color: #101215; color: #ffffff; border-width: 0; padding: 18px 28px; font-size: 15.5px;
}
.elementor .sg-btn--dark .elementor-button:hover { background-color: #d80505; }
.elementor .sg-btn--ref .elementor-button { padding: 16px 26px; font-size: 14.5px; }
.elementor .sg-btn--block .elementor-button-wrapper { display: block; }
.elementor .sg-btn--block .elementor-button { display: flex; width: 100%; box-sizing: border-box; }
.elementor .sg-btn--block .elementor-button-content-wrapper { width: 100%; justify-content: space-between; }
.elementor .sg-arrow .elementor-button-content-wrapper::after { content: "\2192"; }
.elementor .sg-g-head--ref > .sg-btn { justify-self: start; }

/* ---------- Hero ---------- */
.elementor .e-con.sg-hero { position: relative; overflow: hidden; background-color: #f6f4f1; background-size: cover; background-position: center center; }
.elementor .e-con.sg-hero::before {
  content: ""; display: block; position: absolute; inset: 0; z-index: 0; opacity: 1;
  background-image: linear-gradient(0deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.93) 46%, rgba(255,255,255,.58) 76%, rgba(255,255,255,0) 100%);
}
.elementor .e-con.sg-hero > .e-con { position: relative; z-index: 1; }
.elementor .e-con.sg-hero-inner { padding-top: clamp(130px, 16vw, 270px); padding-bottom: clamp(96px, 11vw, 132px); }

/* Kennzahlen-Karte, ueberlappt den Hero */
.elementor .e-con.sg-statcard {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  margin-top: -56px; position: relative; z-index: 2; background: #ffffff;
  box-shadow: 0 30px 70px rgba(16,18,21,.16);
}
.elementor .e-con.sg-statcol { padding: clamp(28px, 3vw, 40px); }
.elementor .e-con.sg-statcol--br { border-right: 1px solid #e4e2de; }
.elementor .e-con.sg-statcol--btns { display: flex; flex-direction: column; gap: 12px; justify-content: center; }
.elementor .e-con.sg-statcol > .e-con.sg-stats { flex-grow: 1; }
.elementor .e-con.sg-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 20px; }
.elementor .sg-stat-num .elementor-heading-title { margin: 0; font: 700 24px/1 'Archivo', sans-serif; letter-spacing: -.02em; color: #101215; }
.elementor .e-con.sg > .sg-stat-label { margin-top: 7px; }
.elementor .sg-stat-label .elementor-heading-title { margin: 0; font: 400 13.5px/1.5 'Public Sans', sans-serif; color: #5b6168; }

/* ---------- Leistungs-Karten ---------- */
.elementor .e-con.sg-card { display: block; background: #ffffff; border: 1px solid #e4e2de; color: inherit; }
.elementor .e-con.sg-card-body { padding: 34px 32px 40px; }

/* ---------- Referenzen ---------- */
.elementor .e-con.sg-ref { display: block; color: inherit; }

/* ---------- Warum-Liste ---------- */
.elementor .e-con.sg-feat-list { display: flex; flex-direction: column; gap: 2px; }
.elementor .e-con.sg-feat { border-top: 1px solid #dcd9d4; padding: 24px 0; }
.elementor .e-con.sg-feat:last-child { border-bottom: 1px solid #dcd9d4; }

/* ---------- Ablauf ---------- */
.elementor .e-con.sg-step { border-top: 2px solid #cfccc6; padding-top: 22px; }
.elementor .e-con.sg-step--active { border-top-color: #d80505; }

/* ---------- Mobilservice-Liste ---------- */
.elementor .sg-dashlist .elementor-icon-list-items {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px 32px;
  margin: 0; padding: 0;
}
.elementor .sg-dashlist .elementor-icon-list-item {
  display: flex; gap: 12px; margin: 0; padding: 0; align-items: flex-start;
  font: 400 16px/1.55 'Public Sans', sans-serif; color: #101215;
}
.elementor .sg-dashlist .elementor-icon-list-item::before { content: "\2014"; color: #d80505; font-weight: 700; }
.elementor .sg-dashlist .elementor-icon-list-item::after { display: none; }
.elementor .sg-dashlist .elementor-icon-list-icon { display: none; }
.elementor .sg-dashlist .elementor-icon-list-text { color: #101215; padding: 0; }

/* ---------- Kontakt ---------- */
.elementor .e-con.sg-contact { border-top: 1px solid #dcd9d4; padding-top: 26px; display: flex; flex-direction: column; gap: 18px; }
.elementor .sg-contact-tel .elementor-heading-title { margin: 0; font: 700 26px/1 'Archivo', sans-serif; letter-spacing: -.015em; color: #101215; }
.elementor .sg-contact-tel .elementor-heading-title a { color: inherit; }
.elementor .elementor-widget-text-editor.sg-contact-val { font: 400 17px/1.4 'Public Sans', sans-serif; color: #101215; }
.elementor .sg-contact-val a { color: #101215; }
.elementor .sg-contact-val--addr { line-height: 1.55; }

/* ---------- FAQ (Toggle-Widget, gestaltet wie <details>) ---------- */
.elementor .sg-faq .elementor-toggle-item { border: 0; border-top: 1px solid #e4e2de; padding: 22px 0; margin: 0; }
.elementor .sg-faq .elementor-toggle-item:last-child { border-bottom: 1px solid #e4e2de; }
.elementor .sg-faq .elementor-tab-title {
  display: flex; gap: 16px; justify-content: space-between; align-items: baseline;
  padding: 0; border: 0; font-weight: 600; line-height: 1.35; cursor: pointer;
}
.elementor .sg-faq .elementor-tab-title::after { content: "+"; color: #d80505; font: 600 22px/1 'Archivo', sans-serif; flex: none; }
.elementor .sg-faq .elementor-toggle-title { font: 600 18.5px/1.35 'Archivo', sans-serif; color: #101215; }
.elementor .sg-faq .elementor-tab-title.elementor-active .elementor-toggle-title { color: #101215; }
.elementor .sg-faq .elementor-toggle-icon { display: none; }
.elementor .sg-faq .elementor-tab-content {
  padding: 14px 0 0; border: 0; font: 400 16px/1.7 'Public Sans', sans-serif; color: #5b6168;
}

/* ---------- CTA-Band ---------- */
.elementor .e-con.sg-cta-boxes { display: flex; flex-wrap: wrap; gap: 14px; flex-direction: row; }
.elementor .e-con.sg-ctabox {
  display: inline-flex; flex-direction: column; gap: 6px; padding: 20px 26px;
  min-width: 220px; width: auto; flex: 0 0 auto;
}
.elementor .e-con.sg-ctabox--light { background: #ffffff; color: #101215; }
.elementor .e-con.sg-ctabox--ghost { border: 1px solid rgba(255,255,255,.55); color: #ffffff; }
.elementor .sg-ctabox-label .elementor-heading-title { margin: 0; font: 600 10.5px/1 'Archivo', sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #5b6168; }
.elementor .sg-ctabox--ghost .sg-ctabox-label .elementor-heading-title { color: #ffd4d4; }
.elementor .sg-ctabox-val .elementor-heading-title { margin: 0; font: 700 22px/1 'Archivo', sans-serif; letter-spacing: -.01em; color: #101215; }
.elementor .sg-ctabox--ghost .sg-ctabox-val .elementor-heading-title { color: #ffffff; }

.elementor .sg-faq .elementor-tab-title:focus:not(:focus-visible),
.elementor .sg-faq .elementor-toggle-title:focus:not(:focus-visible) { outline: none; }
.elementor .sg-faq .elementor-tab-title:focus-visible { outline: 2px solid #d80505; outline-offset: 4px; }
