/* ===========================================================================
   heimwerken.at – Startseite
   Setzt basis.css voraus.
   ======================================================================== */

/* --------------------------------------------------------------------------
   1. Hero
   Ein bildschirmhoher Einstieg mit dem wichtigsten Beitrag. Die Höhe ist
   gedeckelt, damit auf hohen Bildschirmen der folgende Abschnitt noch
   anreißt – sonst wirkt die Seite wie eine Sackgasse.
   ----------------------------------------------------------------------- */

.hw-hero{
  position:relative;
  min-height:min(88vh,760px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--tief);
}
.hw-hero-bild{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center 42%;
}
/* Zwei überlagerte Verläufe: unten dicht für die Textlesbarkeit, oben ein
   leichter Schleier, damit die helle Kopfzeile nicht im Bild verschwindet. */
.hw-hero-schleier{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(26,20,15,.94) 0%,rgba(26,20,15,.72) 34%,rgba(26,20,15,.18) 66%,rgba(26,20,15,.42) 100%);
}
.hw-hero-in{
  position:relative;
  padding-block:clamp(40px,7vw,88px);
  width:100%;
}
.hw-hero-txt{max-width:min(760px,100%)}
.hw-hero .hw-label{color:#F0A58E;margin-bottom:1.1rem}
.hw-hero h1{color:#fff;margin:0 0 1rem}
.hw-hero .hw-vorspann{
  color:rgba(255,255,255,.88);
  font-size:clamp(1.02rem,1.5vw,1.22rem);
  line-height:1.55;
  max-width:56ch;
  margin:0 0 1.6rem;
}
.hw-byline{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.06em;
  color:rgba(255,255,255,.62);
  margin:0 0 1.8rem;
  display:flex;
  flex-wrap:wrap;
  gap:.7em;
  align-items:center;
}
.hw-byline .hw-punkt{opacity:.45}
.hw-hero-cta{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  color:#fff !important;
  font-weight:600;
  font-size:1.02rem;
  text-decoration:none !important;
  border-bottom:2px solid var(--akzent);
  padding-bottom:.25em;
}
.hw-hero-cta:hover{border-color:#fff}

/* Werbeeinstieg im Hero: steht unter dem Beitragslink, halb so laut.
   Wer oben ankommt, soll zuerst den Beitrag sehen. */
.hw-hero-amazon{
  margin:1.1rem 0 0;
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.02em;
  display:flex;
  align-items:baseline;
  gap:.7em;
  flex-wrap:wrap;
}
.hw-hero-amazon .hw-werbe{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.63rem;
  color:rgba(255,255,255,.55);
  border:1px solid rgba(255,255,255,.28);
  border-radius:2px;
  padding:.15em .5em;
}
.hw-hero-amazon a{
  color:rgba(255,255,255,.88) !important;
  text-decoration:none !important;
  border-bottom:1px solid rgba(255,255,255,.35);
  padding-bottom:.15em;
}
.hw-hero-amazon a:hover{border-bottom-color:#fff}

/* Bildnachweis – steht so, wie er auf der Methodik-Seite zugesagt ist. */
.hw-ki-zeile{
  position:absolute;
  right:var(--rand);
  bottom:14px;
  margin:0;
  font-family:var(--mono);
  font-size:.62rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.5);
}

/* --------------------------------------------------------------------------
   2. Trust – drei Versprechen
   ----------------------------------------------------------------------- */

.hw-trust{
  background:var(--tief-2);
  color:rgba(255,255,255,.82);
  padding-block:clamp(34px,4vw,54px);
}
.hw-trust-in{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(24px,4vw,56px);
}
.hw-trust .hw-label{color:#E8A48D;margin-bottom:.5rem}
.hw-trust p{margin:0;font-size:.97rem;line-height:1.55}
.hw-trust a{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* --------------------------------------------------------------------------
   3. Nachrichtenband
   Dreispaltig auf dem Desktop, mit Trennlinien statt Karten: das liest sich
   wie eine Zeitungsseite und nicht wie ein Kachelbrett.
   ----------------------------------------------------------------------- */

.hw-news{background:var(--papier-2);border-block:1px solid var(--linie)}
.hw-sek-kopf{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.85fr);
  gap:clamp(20px,4vw,64px);
  align-items:end;
  margin-bottom:clamp(30px,3.5vw,48px);
}
.hw-sek-kopf h2{margin:.55rem 0 0}
.hw-sek-kopf p{margin:0;color:var(--tinte-2);font-size:1rem}

.hw-news-liste{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--linie);
}
.hw-news-liste li{
  padding:clamp(20px,2.2vw,30px) clamp(18px,2vw,28px);
  border-bottom:1px solid var(--linie);
  border-right:1px solid var(--linie);
}
.hw-news-liste li:nth-child(3n){border-right:0}
.hw-news-meta{
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--tinte-3);
  display:block;
  margin-bottom:.7rem;
}
.hw-news-meta b{color:var(--akzent);font-weight:500}
.hw-news-liste h3{margin:0 0 .55rem;font-size:1.12rem;font-weight:600;line-height:1.25}
.hw-news-liste h3 a{color:inherit;text-decoration:none}
.hw-news-liste h3 a:hover{color:var(--akzent)}
.hw-news-liste p{margin:0;font-size:.92rem;color:var(--tinte-2);line-height:1.5}
.hw-news-fuss{margin-top:clamp(26px,3vw,40px)}


/* --------------------------------------------------------------------------
   5. Saison – was gerade ansteht
   ----------------------------------------------------------------------- */

.hw-saison{background:var(--tief);color:rgba(255,255,255,.84)}
.hw-saison h2,.hw-saison h3{color:#fff}
.hw-saison .hw-label{color:#F0A58E}
.hw-saison .hw-sek-kopf p{color:rgba(255,255,255,.75)}
.hw-saison-raster{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(14px,1.8vw,22px);
}
.hw-saison-karte{
  position:relative;
  display:block;
  min-height:260px;
  border-radius:6px;
  overflow:hidden;
  text-decoration:none !important;
  background:var(--tief-2);
}
.hw-saison-karte img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;transition:transform .4s ease;
}
.hw-saison-karte:hover img{transform:scale(1.04)}
.hw-saison-txt{
  position:absolute;inset:auto 0 0 0;
  padding:18px;
  background:linear-gradient(to top,rgba(20,14,10,.93),rgba(20,14,10,.1));
}
.hw-saison-txt strong{
  display:block;font-family:var(--serif);font-weight:600;
  font-size:clamp(1.05rem,1.4vw,1.3rem);color:#fff;line-height:1.2;
}
.hw-saison-txt span{
  display:block;margin-top:.3rem;font-size:.85rem;color:rgba(255,255,255,.74);
}

/* Der Abschnitt steht auf dunklem Grund. Die Werbezeile erbt sonst Linien- und
   Akzentfarbe aus basis.css – beide sind für helles Papier gemacht und wären
   hier kaum zu lesen. */
.hw-saison .hw-werbehinweis{
  color:rgba(255,255,255,.55);
  border-bottom-color:rgba(255,255,255,.16);
}
.hw-saison .hw-amazon-zeile{border-top-color:rgba(255,255,255,.18)}
.hw-saison .hw-amazon-zeile a{color:#F0A58E !important}

/* --------------------------------------------------------------------------
   6. Kaufberatungen
   ----------------------------------------------------------------------- */

.hw-beratung{background:var(--papier-2);border-block:1px solid var(--linie)}
.hw-beratung-raster{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(18px,2.4vw,30px);
}
.hw-beratung-el{
  background:var(--weiss);
  border:1px solid var(--linie);
  border-radius:6px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.hw-beratung-el > a.hw-bild{display:block;aspect-ratio:16/10;overflow:hidden}
.hw-beratung-el img{width:100%;height:100%;object-fit:cover}
.hw-beratung-txt{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.hw-beratung-txt h3{margin:.5rem 0 .6rem;font-size:1.2rem}
.hw-beratung-txt h3 a{color:inherit;text-decoration:none}
.hw-beratung-txt h3 a:hover{color:var(--akzent)}
.hw-beratung-txt p{margin:0 0 1.1rem;font-size:.93rem}
.hw-beratung-txt .hw-btn-still{margin-top:auto;align-self:flex-start}

/* --------------------------------------------------------------------------
   7. Themenwelten
   ----------------------------------------------------------------------- */

.hw-welten{background:var(--papier)}
.hw-welten-raster{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(16px,2vw,26px);
}
/* Karte und Werbezeile bilden zusammen die Rasterzelle. Ohne Flex säße die
   Zeile direkt unter unterschiedlich langem Text – die Kanten der Kacheln
   stünden dann auf verschiedenen Höhen. */
.hw-welt-el,.hw-saison-el{
  display:flex;
  flex-direction:column;
}
.hw-welt-el .hw-welt{flex:1}
.hw-welt-el .hw-amazon-zeile,
.hw-saison-el .hw-amazon-zeile{margin-top:auto}

.hw-welt{
  display:block;
  text-decoration:none !important;
  color:inherit !important;
  border-top:3px solid var(--akzent);
  padding-top:1.1rem;
}
.hw-welt img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;margin-bottom:.9rem}
.hw-welt strong{display:block;font-family:var(--serif);font-size:1.15rem;color:var(--tinte);margin-bottom:.4rem}
.hw-welt span{display:block;font-size:.9rem;color:var(--tinte-2);line-height:1.5}
.hw-welt:hover strong{color:var(--akzent)}

/* --------------------------------------------------------------------------
   8. Absender
   ----------------------------------------------------------------------- */

.hw-absender{background:var(--tief);color:rgba(255,255,255,.8)}
.hw-absender-raster{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(28px,5vw,80px);
  align-items:start;
}
.hw-absender h2{color:#fff;margin:.6rem 0 1rem}
.hw-absender .hw-label{color:#F0A58E}
.hw-absender p{margin:0 0 1rem;line-height:1.65}
.hw-absender a{color:#fff}
.hw-abs-sig{font-family:var(--serif);font-size:1.2rem;color:#fff;font-weight:600}

/* --------------------------------------------------------------------------
   9. Umbrüche
   Zwei Stufen genügen: ab 1000 px zweispaltig, ab 640 px einspaltig. Mehr
   Bruchpunkte erzeugen nur Pflegeaufwand ohne sichtbaren Gewinn.
   ----------------------------------------------------------------------- */

@media (max-width:1000px){
  .hw-sek-kopf,.hw-absender-raster{grid-template-columns:1fr;gap:14px;align-items:start}
  .hw-trust-in{grid-template-columns:1fr 1fr;gap:24px}
  .hw-news-liste,.hw-neu-raster,.hw-beratung-raster{grid-template-columns:repeat(2,1fr)}
  .hw-news-liste li:nth-child(3n){border-right:1px solid var(--linie)}
  .hw-news-liste li:nth-child(2n){border-right:0}
  .hw-saison-raster,.hw-welten-raster{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:640px){
  .hw-hero{min-height:min(76vh,620px)}
  .hw-trust-in{grid-template-columns:1fr}
  .hw-news-liste,.hw-neu-raster,.hw-beratung-raster,
  .hw-saison-raster,.hw-welten-raster{grid-template-columns:1fr}
  .hw-news-liste li,
  .hw-news-liste li:nth-child(3n),
  .hw-news-liste li:nth-child(2n){border-right:0}
  .hw-ki-zeile{position:static;margin-top:1.2rem;color:rgba(255,255,255,.45)}
}

/* Wer Bewegung abbestellt hat, bekommt keine. */
@media (prefers-reduced-motion:reduce){
  .hw-saison-karte img{transition:none}
  .hw-saison-karte:hover img{transform:none}
}

/* --------------------------------------------------------------------------
   Nachträge
   ----------------------------------------------------------------------- */

/* Zwischenüberschrift in den Neuheiten-Karten: leitet von der Einordnung zu
   den Prüfpunkten über, ohne eine weitere Überschriftenebene aufzumachen. */
.hw-karte-intern a:hover{color:var(--akzent);text-decoration-color:var(--akzent)}

/* Saisonkarten: Der bisherige Verlauf reichte auf hellen Bildern nicht aus –
   „Werkstatt einrichten" verschwand auf der Werkstattwand. Der Verlauf beginnt
   jetzt höher und wird unten dichter; die zusätzliche Textschattierung fängt
   die Stellen ab, an denen ein Bild ausgerechnet dort hell ist. */
.hw-saison-txt{
  padding:20px 18px 18px;
  background:linear-gradient(to top,
    rgba(18,12,8,.97) 0%,
    rgba(18,12,8,.88) 38%,
    rgba(18,12,8,.55) 72%,
    rgba(18,12,8,0) 100%);
}
.hw-saison-txt strong,
.hw-saison-txt span{
  text-shadow:0 1px 3px rgba(0,0,0,.55);
}

/* Ein leerer Nachrichtenabschnitt soll nicht so viel Raum beanspruchen wie ein
   voller – sonst klafft mitten auf der Startseite ein Loch. */
.hw-news:has(.hw-leer){
  padding-block:clamp(44px,5vw,68px);
}

/* Ein Band mit einer oder zwei Meldungen soll keine leere dritte Spalte
   zeigen. Die Spaltenzahl richtet sich nach dem, was tatsächlich da ist. */
.hw-news-liste:has(li:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}
.hw-news-liste:has(li:nth-child(2):last-child) li:nth-child(2n){border-right:0}
.hw-news-liste:has(li:only-child){grid-template-columns:1fr}
.hw-news-liste:has(li:only-child) li{border-right:0}

@media (max-width:640px){
  .hw-news-liste:has(li:nth-child(2):last-child){grid-template-columns:1fr}
}

/* Auf schmalen Geräten wächst der Hero-Text so weit nach oben, dass der Kicker
   unter die Kopfzeile rutscht – sie liegt dort durchsichtig darüber. Der Hero
   hält deshalb die Höhe der Kopfzeile frei. */
@media (max-width:900px){
  .hw-hero-in{padding-top:104px}
}

/* --------------------------------------------------------------------------
   Hero ohne Foto
   Für Meldungen. Ein Rückruf bekommt kein Stimmungsbild – stattdessen trägt
   die Fläche, und die Typografie bekommt mehr Luft.
   ----------------------------------------------------------------------- */

.hw-hero--flaeche{
  min-height:min(62vh,540px);
  background:
    linear-gradient(135deg,var(--tief) 0%,var(--tief-2) 100%);
  align-items:center;
}
/* Eine schmale Kante in der Akzentfarbe markiert die Meldung, ohne dass dafür
   ein Bild nötig wäre. */
.hw-hero--flaeche::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:var(--akzent);
}
.hw-hero--flaeche .hw-hero-txt{max-width:min(860px,100%)}
.hw-hero--flaeche h1{font-size:clamp(1.9rem,4.2vw,3.4rem)}

@media (max-width:640px){
  .hw-hero--flaeche{min-height:auto;padding-block:0}
}
