/* mejorando.es — gemeinsame Gestaltung fuer Start- und Unterseiten.
   Ausgelagert am 21.08.2026, als die Leistungsseiten dazukamen. */

/* ------------------------------------------------------------------
   mejorando.es -- Reformas en Barcelona
   Farben: warmes Grau als Grund, Markengelb NUR als Akzent (nie als
   Flaeche hinter Text -- Gelb auf Weiss ist unlesbar, und Schwarz auf
   Gelb schreit). Zweitfarbe ist ein tiefes Blaugrau, kein Terrakotta:
   Terrakotta-auf-Creme ist der Standardgriff und sieht nach Vorlage aus.
   ------------------------------------------------------------------ */
:root{
  --grund:#f7f6f3;
  --flaeche:#ffffff;
  --tief:#1a1917;
  --text:#2c2a26;
  --leise:#6b675f;
  --linie:#e2ded6;
  --akzent:#fbd232;
  --zweit:#2b3a42;
  --ok:#1e7a4f;
  --fehler:#b3261e;
  --breit:1180px;
  --radius:4px;
  --schatten:0 1px 2px rgba(26,25,23,.06), 0 8px 24px rgba(26,25,23,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--grund); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:17px; line-height:1.62; -webkit-font-smoothing:antialiased;
}
/* ⚠ height:auto ist hier kein Beiwerk. Die <img> tragen width/height als
   Attribut, damit der Browser den Platz vor dem Laden kennt und nichts
   springt. Ohne height:auto gilt aber genau dieses Attribut als Hoehe --
   aspect-ratio wird dann still ignoriert. Gemessen: das Hero-Bild stand
   mit 526x1200 statt 526x394 auf der Seite, der Hero war 1377px hoch und
   die H1 begann erst bei y=563. Keine Fehlermeldung, nur ein Hero, der
   leer aussieht. */
img{max-width:100%; display:block; height:auto}
a{color:inherit}
h1,h2,h3{line-height:1.15; text-wrap:balance; margin:0; color:var(--tief); letter-spacing:-.02em}
h1{font-size:clamp(2.1rem,5.4vw,3.7rem); font-weight:800}
h2{font-size:clamp(1.6rem,3.4vw,2.5rem); font-weight:750}
h3{font-size:1.12rem; font-weight:700; letter-spacing:-.01em}
p{margin:0}
.envoltura{max-width:var(--breit); margin:0 auto; padding:0 22px}
.seccion{padding:clamp(56px,8vw,104px) 0}
.seccion--claro{background:var(--flaeche)}
.rotulo{
  font-size:.735rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--leise); display:flex; align-items:center; gap:11px; margin-bottom:14px;
}
.rotulo::before{content:""; width:26px; height:3px; background:var(--akzent); flex:none; border-radius:2px}
.entradilla{color:var(--leise); max-width:60ch; margin-top:14px; font-size:1.05rem}

/* --- Kopf ------------------------------------------------------- */
.cabecera{
  position:sticky; top:0; z-index:50; background:rgba(247,246,243,.93);
  backdrop-filter:saturate(160%) blur(9px); border-bottom:1px solid var(--linie);
}
.cabecera__int{max-width:var(--breit); margin:0 auto; padding:13px 22px;
  display:flex; align-items:center; gap:18px}
.marca{font-weight:800; font-size:1.24rem; letter-spacing:-.03em; color:var(--tief); text-decoration:none}
.marca span{color:var(--akzent); -webkit-text-stroke:.6px var(--tief)}
.nav{margin-left:auto; display:flex; gap:26px}
.nav a{color:var(--leise); text-decoration:none; font-size:.93rem; font-weight:600}
.nav a:hover{color:var(--tief)}
@media(max-width:860px){.nav{display:none}}
/* Auf schmalen Geraeten nimmt der Button im Kopf ueber die halbe Breite und
   draengt die Marke an den Rand. Er darf weg: derselbe Button steht im Hero
   direkt darunter, also verliert niemand einen Weg zum Formular. */
@media(max-width:560px){.cabecera .boton{display:none}}

/* --- Schaltflaechen --------------------------------------------- */
.boton{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 26px; border-radius:var(--radius); font-weight:700; font-size:1rem;
  text-decoration:none; border:2px solid transparent; cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.boton:hover{transform:translateY(-1px)}
.boton--principal{background:var(--tief); color:#fff; box-shadow:var(--schatten)}
.boton--principal:hover{background:#000}
/* Das Gelb sitzt als Kante, nicht als Flaeche: so bleibt der Text lesbar
   und die Marke ist trotzdem im Bild. */
.boton--principal{border-bottom:3px solid var(--akzent)}
.boton--secundario{background:transparent; color:var(--tief); border-color:var(--linie)}
.boton--secundario:hover{border-color:var(--tief)}

/* --- Hero -------------------------------------------------------- */
.hero{background:var(--flaeche); border-bottom:1px solid var(--linie); overflow:hidden}
.hero__int{
  max-width:var(--breit); margin:0 auto; padding:clamp(46px,7vw,88px) 22px;
  display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(30px,5vw,62px); align-items:center;
}
@media(max-width:900px){.hero__int{grid-template-columns:1fr; padding-top:38px}}
.hero__sub{margin-top:19px; font-size:clamp(1.04rem,1.9vw,1.2rem); color:var(--leise); max-width:52ch}
.hero__acciones{margin-top:30px; display:flex; gap:13px; flex-wrap:wrap}
/* Untereinander gestellt sahen die beiden Schaltflaechen verschieden breit
   aus, weil jede nur so breit war wie ihr Text. Nebeneinander stoert das
   nicht, untereinander schon. */
@media(max-width:560px){
  .hero__acciones{flex-direction:column; align-items:stretch}
  .hero__acciones .boton{width:100%}
}
.hero__medio{position:relative}
.hero__medio img{border-radius:var(--radius); box-shadow:var(--schatten); width:100%; aspect-ratio:4/3; object-fit:cover}
.hero__sello{
  position:absolute; left:-14px; bottom:-14px; background:var(--akzent); color:var(--tief);
  padding:13px 17px; border-radius:var(--radius); font-weight:800; line-height:1.2;
  box-shadow:var(--schatten); max-width:190px; font-size:.9rem;
}
.hero__sello b{display:block; font-size:1.5rem}
@media(max-width:900px){.hero__sello{left:auto; right:8px; bottom:-10px}}

/* --- Vertrauen ---------------------------------------------------- */
.confianza{display:grid; grid-template-columns:repeat(auto-fit,minmax(228px,1fr)); gap:1px;
  background:var(--linie); border:1px solid var(--linie); border-radius:var(--radius); overflow:hidden}
.confianza__it{background:var(--flaeche); padding:26px 24px}
.confianza__it h3{margin-bottom:7px}
.confianza__it p{color:var(--leise); font-size:.95rem}
.confianza__n{font-size:.72rem; font-weight:800; color:var(--akzent); -webkit-text-stroke:.5px var(--zweit);
  letter-spacing:.1em; display:block; margin-bottom:11px}

/* --- Leistungen --------------------------------------------------- */
.servicios{display:grid; grid-template-columns:repeat(auto-fit,minmax(268px,1fr)); gap:16px; margin-top:38px}
.servicio{
  background:var(--flaeche); border:1px solid var(--linie); border-radius:var(--radius);
  padding:25px 24px; transition:border-color .14s ease, transform .14s ease;
}
.servicio:hover{border-color:var(--zweit); transform:translateY(-2px)}
.servicio h3{margin-bottom:8px}
.servicio p{color:var(--leise); font-size:.94rem}

/* --- Antes y Despues (Kernstueck) --------------------------------- */
/* ⚠ KEIN Vergleichs-Schieberegler: die Fotos sind vor und nach dem Umbau
   freihand aufgenommen, keine Perspektive deckt sich exakt. Ein Slider
   wuerde zwei nicht deckungsgleiche Bilder uebereinanderschieben und
   dadurch kaputt aussehen. Ein Umschalter zeigt jedes Bild ganz. */
.obras{display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:22px; margin-top:40px}
.obra{background:var(--flaeche); border:1px solid var(--linie); border-radius:var(--radius); overflow:hidden}
.obra__marco{position:relative; aspect-ratio:4/3; background:#eceae5}
.obra__marco img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity .28s ease;
}
.obra__marco img.activa{opacity:1}
.obra__mando{
  position:absolute; left:12px; bottom:12px; z-index:2; display:flex;
  background:rgba(26,25,23,.82); border-radius:var(--radius); overflow:hidden;
  backdrop-filter:blur(4px);
}
.obra__mando button{
  border:0; background:transparent; color:#fff; padding:8px 15px; font-size:.79rem;
  font-weight:800; letter-spacing:.07em; text-transform:uppercase; cursor:pointer;
  font-family:inherit; transition:background .14s ease, color .14s ease;
}
.obra__mando button[aria-pressed="true"]{background:var(--akzent); color:var(--tief)}
.obra__mando button:focus-visible{outline:2px solid #fff; outline-offset:-3px}
.obra__texto{padding:21px 22px 24px}
.obra__texto h3{margin-bottom:8px}
.obra__texto p{color:var(--leise); font-size:.94rem}

/* --- Ablauf ------------------------------------------------------- */
.proceso{display:grid; grid-template-columns:repeat(auto-fit,minmax(232px,1fr)); gap:26px; margin-top:40px}
.paso{position:relative; padding-top:23px; border-top:3px solid var(--linie)}
/* Die Nummerierung ist hier keine Deko: der Ablauf IST eine Reihenfolge. */
.paso--activo{border-top-color:var(--akzent)}
.paso__n{font-size:.75rem; font-weight:800; letter-spacing:.12em; color:var(--leise); display:block; margin-bottom:9px}
.paso h3{margin-bottom:8px}
.paso p{color:var(--leise); font-size:.94rem}

/* --- Gewerke ------------------------------------------------------ */
.gremios{display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:14px; margin-top:34px}
.gremio{display:flex; gap:12px; align-items:flex-start; padding:15px 17px;
  background:var(--flaeche); border:1px solid var(--linie); border-radius:var(--radius)}
.gremio::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--akzent);
  margin-top:9px; flex:none; box-shadow:0 0 0 3px rgba(251,210,50,.22)}
.gremio b{display:block; color:var(--tief); font-size:.97rem}
.gremio span{color:var(--leise); font-size:.87rem}

/* --- Vermittler-Abschnitt ----------------------------------------- */
.intermediario{background:var(--zweit); color:#e8ecee}
.intermediario h2{color:#fff}
.intermediario .rotulo{color:#a9b8c0}
.intermediario__int{display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,5vw,58px); align-items:center}
@media(max-width:860px){.intermediario__int{grid-template-columns:1fr}}
.intermediario p{color:#cdd7dc; margin-top:16px}
.intermediario img{border-radius:var(--radius); aspect-ratio:3/2; object-fit:cover}

/* --- Formular ----------------------------------------------------- */
.contacto__int{display:grid; grid-template-columns:.88fr 1.12fr; gap:clamp(28px,5vw,56px)}
@media(max-width:860px){.contacto__int{grid-template-columns:1fr}}
.formulario{background:var(--flaeche); border:1px solid var(--linie); border-radius:var(--radius);
  padding:clamp(24px,3.4vw,36px); box-shadow:var(--schatten)}
.campo{margin-bottom:17px}
.campo label{display:block; font-size:.86rem; font-weight:700; color:var(--tief); margin-bottom:7px}
.campo label .req{color:var(--fehler); margin-left:2px}
.campo input,.campo select,.campo textarea{
  width:100%; padding:12px 14px; border:1px solid var(--linie); border-radius:var(--radius);
  font-family:inherit; font-size:1rem; color:var(--text); background:var(--grund);
  transition:border-color .14s ease, box-shadow .14s ease;
}
.campo input:focus,.campo select:focus,.campo textarea:focus{
  outline:0; border-color:var(--zweit); box-shadow:0 0 0 3px rgba(43,58,66,.13); background:#fff;
}
.campo textarea{min-height:118px; resize:vertical}
.campo--error input,.campo--error select,.campo--error textarea{border-color:var(--fehler)}
.campo__aviso{display:none; color:var(--fehler); font-size:.82rem; margin-top:6px; font-weight:600}
.campo--error .campo__aviso{display:block}
.privacidad{font-size:.83rem; color:var(--leise); margin:16px 0 20px; line-height:1.5}
.privacidad a{color:var(--zweit); font-weight:600}
.formulario .boton{width:100%}
.resultado{margin-top:16px; padding:14px 16px; border-radius:var(--radius); font-weight:600;
  font-size:.94rem; display:none}
.resultado--ok{display:block; background:rgba(30,122,79,.1); color:var(--ok); border:1px solid rgba(30,122,79,.3)}
.resultado--fallo{display:block; background:rgba(179,38,30,.08); color:var(--fehler); border:1px solid rgba(179,38,30,.28)}
/* Honeypot: fuer Menschen unsichtbar, fuer einfache Bots ein Pflichtfeld.
   Kein display:none -- manche Bots ueberspringen genau das. */
.trampa{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.zonas{margin-top:26px; font-size:.9rem; color:var(--leise)}
.zonas b{color:var(--tief); display:block; margin-bottom:7px; font-size:.95rem}

/* --- Fuss --------------------------------------------------------- */
.pie{background:var(--tief); color:#a8a49c; padding:52px 0 30px; font-size:.9rem}
.pie__int{display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:32px}
@media(max-width:760px){.pie__int{grid-template-columns:1fr}}
.pie h4{color:#fff; font-size:.79rem; letter-spacing:.12em; text-transform:uppercase; margin:0 0 13px}
.pie a{color:#a8a49c; text-decoration:none}
.pie a:hover{color:#fff}
.pie ul{list-style:none; margin:0; padding:0}
.pie li{margin-bottom:8px}
/* ⚠ #8d897f statt #7d7970: gemessen kam die alte Farbe auf dem Fussgrund
   #1a1917 nur auf Kontrast 4.05, WCAG verlangt 4.5 fuer Fliesstext.
   Ausgerechnet die Zeile mit den Betreiberdaten war die einzige auf allen
   26 Seiten, die durchfiel. Der neue Wert liegt bei 5.03, also mit Reserve --
   4.5 exakt zu treffen heisst, beim naechsten Farbdreh wieder darunter zu
   liegen. Farbton unveraendert, nur aufgehellt. */
.pie__legal{border-top:1px solid #34322d; margin-top:34px; padding-top:20px;
  font-size:.82rem; color:#8d897f; line-height:1.6}
.pie__marca{font-weight:800; font-size:1.2rem; color:#fff; letter-spacing:-.03em}
.pie__marca span{color:var(--akzent)}
@media(prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important}
  html{scroll-behavior:auto}
}

/* ===================================================================
   Leistungsseiten (21.08.2026)
   Eigene Bausteine, gleiche Grundfarben und Typo wie die Startseite.
   =================================================================== */

/* Brotkrumen: sagen, wo man ist, ohne eine eigene Zeile Aufmerksamkeit
   zu verlangen. Deshalb klein und leise, aber anklickbar. */
.migas{font-size:.84rem; color:var(--leise); padding:16px 0 0}
.migas a{color:var(--leise); text-decoration:none}
.migas a:hover{color:var(--tief); text-decoration:underline}
.migas span{margin:0 7px; opacity:.5}

.encabezado-servicio{background:var(--flaeche); border-bottom:1px solid var(--linie)}
.encabezado-servicio__int{
  max-width:var(--breit); margin:0 auto; padding:26px 22px clamp(38px,5vw,62px);
  display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(26px,4vw,52px); align-items:center;
}
@media(max-width:880px){.encabezado-servicio__int{grid-template-columns:1fr}}
.encabezado-servicio h1{font-size:clamp(1.85rem,4.3vw,3rem); margin-top:12px}
.encabezado-servicio__intro{margin-top:17px; font-size:1.06rem; color:var(--leise); max-width:56ch}
.encabezado-servicio__acciones{margin-top:26px; display:flex; gap:12px; flex-wrap:wrap}
@media(max-width:560px){
  .encabezado-servicio__acciones{flex-direction:column; align-items:stretch}
  .encabezado-servicio__acciones .boton{width:100%}
}
.encabezado-servicio img{border-radius:var(--radius); box-shadow:var(--schatten);
  aspect-ratio:4/3; object-fit:cover; width:100%}

/* Fliesstext-Abschnitte: eine Spalte, begrenzte Zeilenlaenge. Zwei Spalten
   waeren hier falsch -- man liest den Text, man ueberfliegt ihn nicht. */
.bloques{display:grid; gap:clamp(26px,3.4vw,40px); margin-top:36px; max-width:74ch}
.bloque h2{font-size:clamp(1.3rem,2.4vw,1.72rem); margin-bottom:11px}
.bloque p{color:var(--text)}

/* FAQ als <details>: klappt ohne eine Zeile JavaScript auf, funktioniert
   auch wenn das Skript nicht laedt, und die Suche im Browser findet den
   Text trotzdem. */
.faq{margin-top:34px; max-width:74ch; border-top:1px solid var(--linie)}
.faq details{border-bottom:1px solid var(--linie)}
.faq summary{
  padding:17px 34px 17px 0; cursor:pointer; font-weight:700; color:var(--tief);
  list-style:none; position:relative; font-size:1.02rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:""; position:absolute; right:6px; top:50%; width:9px; height:9px;
  border-right:2px solid var(--leise); border-bottom:2px solid var(--leise);
  transform:translateY(-70%) rotate(45deg); transition:transform .16s ease;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq summary:focus-visible{outline:2px solid var(--zweit); outline-offset:3px}
.faq p{padding:0 0 19px; color:var(--leise); max-width:68ch}

/* Querverweise auf die anderen Leistungen */
.otros{display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:12px; margin-top:32px}
.otro{
  display:block; padding:15px 17px; background:var(--flaeche); border:1px solid var(--linie);
  border-radius:var(--radius); text-decoration:none; color:var(--tief); font-weight:650;
  font-size:.95rem; transition:border-color .14s ease, transform .14s ease;
}
.otro:hover{border-color:var(--zweit); transform:translateY(-2px)}
.otro span{display:block; font-weight:400; color:var(--leise); font-size:.85rem; margin-top:4px}

/* Die Leistungskarten der Startseite sind jetzt Verweise auf die
   Unterseiten. Als <a> erben sie sonst Unterstreichung und Linkfarbe. */
a.servicio{text-decoration:none; color:inherit; display:block}
a.servicio h3::after{content:" \203A"; color:var(--leise); font-weight:400}
a.servicio:hover h3::after{color:var(--tief)}

/* Leistungsseiten ohne eigenes Foto: eine Spalte statt zwei. Ohne diese
   Regel bliebe rechts eine leere Rasterspalte stehen und der Text saesse
   auf der halben Breite, als fehle dort etwas. */
/* ⚠ Die Begrenzung gehoert an den TEXT, nicht an den Rastercontainer.
   Der Container hat margin:0 auto -- eine max-width darauf zentriert den
   ganzen Block, waehrend die Brotkrumen darueber linksbuendig bleiben.
   Gesehen wurde das nur im Screenshot: die Messung meldete 0 px Ueberhang,
   weil nichts ueberlief. Es stand nur alles an der falschen Stelle. */
.encabezado-servicio__int--solo{grid-template-columns:1fr}
.encabezado-servicio__int--solo > div{max-width:76ch}

/* Gewerke-Kacheln, die auf eine eigene Seite zeigen. Fuenf von sieben haben
   eine; die beiden ohne bleiben <div> und sollen genauso aussehen. */
a.gremio{text-decoration:none; color:inherit}
a.gremio b::after{content:" \203A"; color:var(--leise); font-weight:400}
a.gremio:hover b::after{color:var(--tief)}

/* ===================================================================
   Kopfzeile mit echtem Logo und Menue (21.08.2026)

   ⚠ ANLASS (Manuel, 08:31): "ist auf mobile kein Hero? Ich sehe kein
   mobile menu und das Logo ist weg". Alle drei Punkte trafen zu:
   - Das Logo war nur ein Schriftzug. Die Firma HAT ein Logo (gelbes
     Sechseck mit Haus und Schraubenschluessel), es lag in einem
     Upload-Ordner von 2020 und tauchte in der Mediathek-Liste nicht auf.
   - Die Navigation war unter 860 px auf display:none gesetzt -- OHNE
     Ersatz. Auf dem Handy stand im Kopf nur der Schriftzug, sonst nichts.
     Das ist kein Aufraeumen, das ist eine fehlende Navigation.
   - Der Hero zeigte auf dem Handy zuerst 500 px Text, das Bild kam erst
     nach dem Scrollen. Technisch da, als Hero aber nicht wahrnehmbar.
   =================================================================== */

.marca{display:flex; align-items:center; flex:none}
.marca img{width:150px; height:auto}
@media(max-width:420px){.marca img{width:132px}}

/* Menue-Knopf: drei Striche, die sich beim Oeffnen zum Kreuz drehen. */
.menu-boton{
  display:none; margin-left:auto; width:44px; height:44px; padding:10px;
  background:transparent; border:1px solid var(--linie); border-radius:var(--radius);
  cursor:pointer; flex-direction:column; justify-content:space-between;
}
.menu-boton span{
  display:block; height:2px; width:100%; background:var(--tief); border-radius:2px;
  transition:transform .2s ease, opacity .2s ease;
}
.menu-boton[aria-expanded="true"] span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.menu-boton[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-boton[aria-expanded="true"] span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
.menu-boton:focus-visible{outline:2px solid var(--zweit); outline-offset:2px}

@media(max-width:860px){
  .menu-boton{display:flex}
  .cabecera__int{flex-wrap:wrap; gap:0}
  /* Das Menue klappt als eigene Zeile unter den Kopf. Nicht als
     Vollbild-Overlay: bei fuenf Eintraegen ist das ueberzogen, und ein
     Overlay muss man erst wieder schliessen. */
  .nav{
    display:flex; flex-direction:column; width:100%; order:3;
    max-height:0; overflow:hidden; gap:0;
    transition:max-height .26s ease;
  }
  .nav[data-abierto="true"]{max-height:420px}
  .nav a{
    padding:14px 2px; border-top:1px solid var(--linie); font-size:1rem;
    color:var(--tief);
  }
  /* Der Hauptknopf gehoert ins Menue, nicht daneben: im Kopf nahm er
     ueber die halbe Breite und drueckte das Logo an den Rand. */
  .cabecera .boton{
    display:none; order:4; width:100%; margin:12px 0 14px;
  }
  .nav[data-abierto="true"] ~ .boton{display:inline-flex}
}
@media(prefers-reduced-motion:reduce){
  .nav{transition:none}
}

/* --- Hero auf dem Handy: erst das Bild, dann der Text ---------------
   Auf dem Handy stapelt das Raster untereinander, und der Textblock ist
   rund 500 px hoch. Wer die Seite oeffnet, sah eine Textwand. Mit
   order:-1 steht das Bild oben und der Hero ist als solcher erkennbar.
   Am DOM aendert das nichts, die H1 bleibt das erste Element im Quelltext. */
@media(max-width:900px){
  .hero__medio{order:-1; margin-bottom:26px}
  .hero__medio img{aspect-ratio:16/10}
  .hero__int{padding-top:26px}
  .hero__sello{left:8px; right:auto; bottom:-12px}
}

/* Das Siegel war auf dem Handy zu gross: es verdeckte die halbe Kueche.
   Auf schmalen Geraeten deshalb einzeilig und deutlich kleiner -- es soll
   das Bild ergaenzen, nicht ersetzen. */
@media(max-width:560px){
  .hero__sello{
    max-width:none; width:auto; padding:8px 13px; font-size:.79rem;
    line-height:1.25; display:flex; align-items:baseline; gap:7px;
    left:8px; right:auto; bottom:-11px;
  }
  .hero__sello b{display:inline; font-size:1.18rem}
}

/* Das Logo ist der Weg zurueck zur Startseite und war als Tippflaeche nur
   28 px hoch. Padding statt groesserem Bild: die Flaeche waechst, das Logo
   bleibt gleich gross. */
.marca{padding:8px 0}

/* Rechtstexte: eine Spalte, ruhig, gut lesbar. Kein Schmuck -- die Seite
   wird gelesen, weil jemand etwas nachschlagen will. */
.legal{max-width:72ch; display:grid; gap:clamp(24px,3vw,34px)}
.legal h2{font-size:clamp(1.2rem,2.2vw,1.55rem); margin-bottom:10px}
.legal p{color:var(--text)}
.legal a{color:var(--zweit); font-weight:600}
/* Die Fusszeile bekommt jetzt Verweise auf die Rechtsseiten. */
.pie h4 + ul a{text-decoration:none}

/* Der Fuss hat jetzt vier Spalten statt drei. */
.pie__int{grid-template-columns:1.35fr 1fr 1fr 1fr}
@media(max-width:900px){.pie__int{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pie__int{grid-template-columns:1fr}}

/* --- Leistungskarten mit Bild (21.08.2026) -------------------------
   ⚠ Sechs der neun Karten tragen ein Foto, drei nicht -- fuer Ladenlokale,
   Geschaefte und Industriehallen gibt es kein einziges echtes Bild. Statt
   ein fremdes Motiv einzusetzen, bekommen diese drei eine ruhige Flaeche
   in der Grundfarbe. Gleiche Hoehe, gleiche Form: das Raster bleibt
   gleichmaessig, ohne etwas zu behaupten. */
.servicio{padding:0; overflow:hidden; display:flex; flex-direction:column}
.servicio__img,
.servicio__sin{
  width:100%; height:170px; object-fit:cover; display:block; flex:none;
  border-bottom:1px solid var(--linie);
}
.servicio__sin{
  background:
    repeating-linear-gradient(135deg,
      var(--grund) 0 14px, #efece6 14px 28px);
}
.servicio__txt{padding:22px 24px 25px}
.servicio__txt h3{margin-bottom:8px}
.servicio__txt p{color:var(--leise); font-size:.94rem}
/* Beim Ueberfahren zieht das Bild leicht an -- ein Hinweis, dass die Karte
   ein Verweis ist, ohne zusaetzliche Beschriftung. */
.servicio__img{transition:transform .3s ease}
a.servicio:hover .servicio__img{transform:scale(1.03)}
@media(prefers-reduced-motion:reduce){.servicio__img{transition:none}}

/* ⚠ DREI Spalten, nicht vier: Es sind genau NEUN Leistungen. Bei vier
   Spalten ergibt das 4+4+1 und die letzte Karte steht allein am Ende --
   bei drei Spalten sind es drei volle Reihen. Die Spaltenzahl folgt hier
   der Anzahl der Inhalte, nicht der verfuegbaren Breite. */
.servicios{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
@media(min-width:1000px){.servicios{grid-template-columns:repeat(3,1fr)}}

/* --- Glossar (21.08.2026) --------------------------------------------
   Der Definitionskasten steht direkt unter der Ueberschrift. Wer einen
   Begriff nachschlaegt, hat seine Antwort nach zwei Saetzen; alles Weitere
   ist fuer die, die mehr wollen. */
.definicion{
  margin-top:20px; padding:20px 24px; background:var(--flaeche);
  border:1px solid var(--linie); border-left:4px solid var(--akzent);
  border-radius:var(--radius); font-size:1.1rem; line-height:1.6;
  color:var(--tief); max-width:62ch;
}

/* Uebersicht: nach Anfangsbuchstaben gruppiert. Bei zwanzig Eintraegen ist
   das noch keine Notwendigkeit, bei hundert schon -- und die Struktur jetzt
   anzulegen kostet nichts. */
.glosario-grupo{margin-top:38px}
.glosario-grupo h2{
  font-size:1.5rem; padding-bottom:8px; border-bottom:2px solid var(--akzent);
  display:inline-block; margin-bottom:18px;
}
.glosario-lista{display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:14px}
.glosario-item{
  display:block; padding:18px 20px; background:var(--flaeche);
  border:1px solid var(--linie); border-radius:var(--radius);
  text-decoration:none; color:inherit;
  transition:border-color .14s ease, transform .14s ease;
}
.glosario-item:hover{border-color:var(--zweit); transform:translateY(-2px)}
.glosario-item b{display:block; color:var(--tief); font-size:1.03rem; margin-bottom:5px}
.glosario-item b::after{content:" \203A"; color:var(--leise); font-weight:400}
.glosario-item span{color:var(--leise); font-size:.9rem; line-height:1.5}

/* Sprungleiste zu den Buchstaben */
.glosario-abc{display:flex; flex-wrap:wrap; gap:7px; margin-top:26px}
.glosario-abc a{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:38px; height:38px; padding:0 9px; border:1px solid var(--linie);
  border-radius:var(--radius); text-decoration:none; color:var(--tief);
  font-weight:700; background:var(--flaeche);
}
.glosario-abc a:hover{border-color:var(--zweit)}
