/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:84vh;
  display:flex;
  align-items:flex-end;
  padding:0;
  overflow:hidden;
  background:var(--ink);
}

.hero img.bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter: grayscale(12%) contrast(1.05);
  transform:scale(1.02);
}

.hero .overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,
    rgba(0,0,0,.40) 0%,
    rgba(0,0,0,.58) 55%,
    rgba(0,0,0,.80) 100%);
}

.hero .content{
  position:relative;
  padding:120px 0 64px;
  width:100%;
}

/* Großes Marken-Logo oben rechts im Hero (above the fold) */
/* Hero-Logo in der Content-Spalte, rechts, vertikal an der Headline ausgerichtet */
.hero .content .wrap{ position:relative; }
/* Logo haengt an der Section, nicht am Textblock — damit sitzt es oben in der Ecke,
   unabhaengig davon, wie weit der Hero-Text unten steht. */
.hero-logo{
  position:absolute;
  top:calc(var(--nav-h) + 26px);
  right:max(22px, calc((100% - var(--max)) / 2 + 22px));
  width:min(18vw, 224px);      /* 30 % kleiner als der erste Entwurf */
  aspect-ratio:3438 / 1844;    /* viewBox des Logo-SVG — nichts wird beschnitten */
  height:auto;
  object-fit:contain;
  object-position:right top;
  z-index:2;
  pointer-events:none;
  filter:drop-shadow(0 6px 22px rgba(0,0,0,.45));
}

.kicker{
  font-size:12px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,.82);
  margin-bottom:14px;
}

.hero h1{
  font-size: clamp(40px, 5vw, 70px);
  color:#fff;
  margin-bottom:18px;
  max-width:14ch;
}

/* Sub-Headline: traegt die Zwei-Ketten-Logik, deshalb deutlich groesser als eine Unterzeile */
.hero p.subhead{
  font-family:var(--serif);
  font-size:clamp(19px, 2.1vw, 26px);
  font-weight:500;
  line-height:1.25;
  letter-spacing:-.01em;
  color:rgba(255,255,255,.92);
  max-width:24ch;
  margin-bottom:30px;
  text-shadow:0 2px 14px rgba(0,0,0,.5);
}

.note{ color:rgba(255,255,255,.65); font-size:13px; margin-top:14px; }
.dark-note{ color:rgba(255,255,255,.5); }

/* Red brush highlight */
.hl{ position:relative; display:inline-block; padding:0 .12em; z-index:0; color:#fff; }
.hl::before{
  content:"";
  position:absolute;
  inset: 55% -0.12em -0.04em -0.12em;
  background:var(--red);
  border-radius:10px;
  z-index:-1;
  transform:skewX(-7deg);
  opacity:.96;
}

/* ---------- Stat / proof bar ---------- */
.statbar{
  background:var(--ink);
  color:#fff;
  padding:44px 0 6px;
  /* Hero, Statbar und These sind drei dunkle Flaechen hintereinander. Ohne
     sichtbare Kante laufen sie ineinander — die alte Linie mit .08 Deckung
     lag bei rund 1,1:1 und war praktisch nicht da. Muth, 08.09.2026. */
  border-top:1px solid rgba(255,255,255,.22);
  border-bottom:1px solid rgba(255,255,255,.22);
}
.statbar-head{
  font-size:clamp(24px,2.6vw,34px);
  line-height:1.08;
  letter-spacing:-.025em;
  color:#fff;
  max-width:26ch;
  margin:0 0 30px;
}
.stat-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin-top:-1px;
}
.stat{
  padding:34px 26px 32px;
  border-right:1px solid rgba(255,255,255,.10);
  display:flex;
  flex-direction:column;
}
.stat:last-child{ border-right:none; }

/* Zeile 1 — die Aussage (technischer Vorteil) */
.stat-claim{
  font-family:var(--serif);
  font-weight:900;
  font-size:clamp(19px,1.9vw,23px);
  line-height:1.14;
  letter-spacing:-.025em;
  color:#fff;
  margin-bottom:12px;
}
/* Zeile 2 — der Beleg */
.stat-proof{
  font-size:14px;
  line-height:1.5;
  color:rgba(255,255,255,.70);
  margin-bottom:auto;
  padding-bottom:16px;
}
/* Zeile 3 — die wirtschaftliche Konsequenz, roter Trennstrich als einziger Akzent */
.stat-effect{
  font-size:13.5px;
  font-weight:600;
  line-height:1.45;
  color:rgba(255,255,255,.92);
  padding-top:14px;
  border-top:2px solid var(--red);
}

/* ---------- Booking: reveal tiles ---------- */
.reveal-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin:8px 0 44px;
}
.reveal-tile{
  position:relative;
  margin:0;
  border-radius:var(--radius);
  overflow:hidden;
  aspect-ratio:4/3;
  outline:none;
  cursor:pointer;
}
.reveal-tile img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(20%) brightness(.92);
  transition:transform .4s, filter .3s;
}
.reveal-tile:hover img,
.reveal-tile:focus-within img{ transform:scale(1.04); filter:grayscale(0) brightness(.7); }

.reveal-arrow{
  position:absolute;
  left:16px; bottom:16px;
  width:38px; height:38px;
  border:none;
  border-radius:50%;
  background:var(--red);
  color:#fff;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s, opacity .2s;
  z-index:2;
}
.reveal-tile:hover .reveal-arrow,
.reveal-tile:focus-within .reveal-arrow{ transform:rotate(90deg); }

.reveal-desc{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:40px 20px 20px 74px; /* left padding clears the red arrow button */
  background:linear-gradient(0deg, rgba(15,16,20,.95) 45%, rgba(15,16,20,0));
  color:#fff;
  transform:translateY(101%);
  transition:transform .35s ease;
  z-index:1;
}
.reveal-tile:hover .reveal-desc,
.reveal-tile:focus-within .reveal-desc{ transform:translateY(0); }
.reveal-desc strong{ display:block; color:#ff8077; font-size:13px; letter-spacing:.04em; text-transform:uppercase; margin-bottom:6px; }
.reveal-desc span{ font-size:15px; line-height:1.45; color:rgba(255,255,255,.9); }

/* ---------- Booking form ---------- */
.booking{ position:relative; background:#f2f2f2; }   /* neutral statt Soloias warmem Papierton */
.booking::before{
  content:"";
  position:absolute; inset:0;
  background:url(../images/carbon-gewebe-symbolbild.webp) center/cover no-repeat;
  opacity:.30; filter:grayscale(100%) contrast(1.1);
  pointer-events:none;
}
.booking > .wrap{ position:relative; z-index:1; }
.briefing-form{
  max-width:680px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:30px;
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.briefing-form label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:13px;
  font-weight:600;
  color:#3a3d44;
  margin-bottom:16px;
}
.briefing-form input,
.briefing-form select,
.briefing-form textarea{
  font-family:var(--sans);
  font-size:15px;
  font-weight:400;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  color:#15171c;
}
.briefing-form input:focus,
.briefing-form select:focus,
.briefing-form textarea:focus{ outline:2px solid var(--red); outline-offset:0; border-color:var(--red); }
.briefing-form textarea{ resize:vertical; }
/* Der Text steckt in einem <span>, damit die Zeile genau zwei Flex-Kinder hat.
   Ohne ihn wird jedes Textstueck und der Link ein eigenes Element — der
   Datenschutz-Link reisst dann aus der Zeile aus. */
.consent{ flex-direction:row !important; align-items:flex-start; gap:10px; font-weight:400; color:#5a5d64; }
.consent input{ margin-top:2px; flex:0 0 auto; }
.consent span{ line-height:1.5; }
.consent a{ color:var(--red-dark); }
.booking .note{ color:#5c5f66; }

/* ---------- Blasse Textur in hellen Segmenten ----------
   Deaktiviert, bis die Renobrac-Hintergruende vorliegen (siehe BILD-PROMPTS.md, D3).
   Dann Dateinamen unten eintragen und die Regel wieder aktivieren.
.paper{ position:relative; }
.paper::before{
  content:"";
  position:absolute; inset:0;
  background:url(../images/HINTERGRUND.webp) no-repeat;
  opacity:.06;
  pointer-events:none;
}
.paper > .wrap{ position:relative; z-index:1; }
#deliverable::before{ background-position:90% 72%; background-size:210%; }
#trust::before{ background-position:48% 38%; background-size:150%; }
#applications::before{ background-position:18% 88%; background-size:235%; }
#fit::before{ background-position:78% 12%; background-size:195%; }
---------------------------------------------------------------- */

/* Problem-Abschnitt: Rotorblatt-Deponie als grossflaechiger, ruhiger Hintergrund.
   Bewusst nur Atmosphaere — der Rohstoff wird im Text benannt (Prepreg-Verschnitt). */
.section.bleed{ position:relative; overflow:hidden; }
.section.bleed::before{
  content:"";
  position:absolute; inset:0;
  background:url(../images/rotorblatt-friedhof.webp) center 30% / cover no-repeat;
  filter:grayscale(100%) contrast(1.25) brightness(1.15);
  opacity:.62;
  pointer-events:none;
}
.section.bleed::after{
  content:"";
  position:absolute; inset:0;
  /* nur so viel Abdunklung wie der Text braucht — rechts laeuft das Bild frei */
  background:linear-gradient(100deg,
    rgba(17,17,17,.88) 0%,
    rgba(17,17,17,.72) 34%,
    rgba(17,17,17,.38) 70%,
    rgba(17,17,17,.30) 100%);
  pointer-events:none;
}
.section.bleed > .wrap{ position:relative; z-index:1; }
