/* ============================================================
   QRuf – zentrales Design (Bauplan Abschnitt 4)
   Quelle: index.html (Landingpage). Diese Datei ist die EINZIGE
   Stelle für Farben, Schriften und Komponenten. Jede Seite bindet
   sie ein:  <link rel="stylesheet" href="/assets/css/qruf.css">
   ============================================================ */

/* ---------- Schriften (lokal auf IONOS, DSGVO) ----------
   Dateien liegen unter /assets/fonts/ – siehe Anleitung im Chat.
   Solange eine Datei fehlt, greift automatisch die Ersatzschrift
   (Georgia bzw. Systemschrift) – die Seite bleibt benutzbar.   */

@font-face {
  font-family: 'Fraunces'; font-style: normal; font-weight: 600;
  font-display: swap;
  src: url('../fonts/fraunces-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces'; font-style: italic; font-weight: 400;
  font-display: swap;
  src: url('../fonts/fraunces-400italic.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces'; font-style: italic; font-weight: 500;
  font-display: swap;
  src: url('../fonts/fraunces-500italic.woff2') format('woff2');
}
@font-face {
  font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 400;
  font-display: swap;
  src: url('../fonts/hanken-grotesk-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 600;
  font-display: swap;
  src: url('../fonts/hanken-grotesk-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 700;
  font-display: swap;
  src: url('../fonts/hanken-grotesk-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Quicksand'; font-style: normal; font-weight: 700;
  font-display: swap;
  src: url('../fonts/quicksand-700.woff2') format('woff2');
}

/* ---------- Farb- und Form-Tokens ---------- */

:root{
  --ink:#1f2e4a;        /* Primärtext, dunkles Tintenblau */
  --ink-soft:#41506c;   /* Sekundärtext */
  --paper:#f6efe3;      /* Seitenhintergrund, warmes Papier */
  --paper-card:#fcf8f1; /* Karten */
  --paper-deep:#efe5d4; /* vertiefte Flächen */
  --terra:#c27e66;      /* Hauptakzent */
  --terra-deep:#a96349; /* Hover / dunkler Akzent */
  --gold:#e3b07c;       /* Schallwellen, Dekor */
  --line:rgba(31,46,74,.12);
  --shadow:0 18px 50px -28px rgba(31,46,74,.45);
  /* Produkt-Ergänzungen (nicht in der Landingpage, zur Palette passend): */
  --fehler:#b04a3a;     /* Fehlermeldungen, Aufnahme-Punkt, Löschen */
  --ok:#6f9e7c;         /* Erfolgsmeldungen */
}

/* ---------- Grundgerüst ---------- */

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Hanken Grotesk",-apple-system,system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column}
/* Papierkörnung – Markenzeichen auf jeder Seite */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.wrap{max-width:920px;margin:0 auto;padding:0 26px;width:100%}
main{flex:1}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:600;line-height:1.1;letter-spacing:-.01em}
a{color:inherit}

/* ---------- Logo (SVG-Code aus index.html übernehmen, nie nachbauen) ---------- */

.qm-ring{fill:none;stroke:var(--ink);stroke-width:8;stroke-linecap:round}
.qm-heart{fill:var(--terra);transform-box:fill-box;transform-origin:center;animation:beat 1.9s ease-in-out infinite}
.qm-bars rect{fill:var(--gold);transform-box:fill-box;transform-origin:center;animation:wave 1.7s ease-in-out infinite}
.qm-bars rect:nth-child(1){animation-delay:0s}.qm-bars rect:nth-child(2){animation-delay:.2s}.qm-bars rect:nth-child(3){animation-delay:.4s}.qm-bars rect:nth-child(4){animation-delay:.6s}
@keyframes wave{0%,100%{transform:scaleY(.5)}50%{transform:scaleY(1)}}
@keyframes beat{0%,100%{transform:scale(1)}45%{transform:scale(1.13)}}
.logotype{display:inline-flex;align-items:center;gap:11px}
.logotype .word{font-family:"Quicksand",sans-serif;font-weight:700;font-size:1.5rem;letter-spacing:-.5px;color:var(--ink)}
.logotype .word b{color:var(--terra)}
.mark{width:140px;margin:0 auto 22px;filter:drop-shadow(0 24px 34px rgba(31,46,74,.16))}

/* ---------- Wiederkehrende Komponenten ---------- */

/* Badge/Pille mit pulsierendem Punkt */
.badge{display:inline-flex;align-items:center;gap:9px;font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-deep);background:var(--paper-card);border:1px solid var(--line);padding:8px 16px;border-radius:100px;margin-bottom:22px}
.badge .dot{width:8px;height:8px;border-radius:50%;background:var(--terra);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}

/* Karte (Produktseiten: Inhaltsblöcke, Listenelemente) */
.karte{background:var(--paper-card);border:1px solid var(--line);border-radius:18px;padding:24px 22px}
.karte--schatten{box-shadow:var(--shadow)}

/* Knöpfe (Bauplan Abschnitt 4) */
.knopf{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:inherit;font-size:.95rem;font-weight:600;padding:12px 24px;border-radius:100px;border:none;background:var(--terra);color:var(--paper-card);cursor:pointer;text-decoration:none;transition:background .2s}
.knopf:hover{background:var(--terra-deep)}
.knopf--sekundaer{background:transparent;border:1.5px solid var(--line);color:var(--terra-deep);transition:border-color .2s,color .2s}
.knopf--sekundaer:hover{background:transparent;border-color:var(--terra);color:var(--terra)}
.knopf--gefahr{background:transparent;border:1.5px solid var(--fehler);color:var(--fehler);font-weight:400}
.knopf--gefahr:hover{background:rgba(176,74,58,.08)}
.knopf:disabled{opacity:.5;cursor:default}
.knopf:focus-visible,.feld:focus-visible{outline:3px solid var(--ink);outline-offset:3px}

/* Eingabefelder */
.feld{font-family:inherit;font-size:.95rem;color:var(--ink);padding:12px 18px;border-radius:100px;border:1.5px solid var(--line);background:var(--paper-card)}
.feld::placeholder{color:var(--ink-soft)}
.feld:focus{outline:none;border-color:var(--terra)}

/* Meldungen */
.meldung--ok{color:var(--ok)}
.meldung--fehler{color:var(--fehler)}

/* Icon-Tiles (48px, Stroke-SVGs in terra) */
.feat{display:flex;gap:16px;align-items:flex-start;background:var(--paper-card);border:1px solid var(--line);border-radius:18px;padding:22px}
.feat .tile{flex:none;width:48px;height:48px;border-radius:14px;background:rgba(194,126,102,.14);color:var(--terra);display:grid;place-items:center}
.feat .tile svg{width:24px;height:24px}
.feat h3{font-size:1.12rem;margin-bottom:3px}
.feat p{font-size:.95rem;color:var(--ink-soft)}

/* Equalizer-Dekor (gold Balken; wiederverwendbar als "spielt gerade") */
.eq-linie{display:flex;align-items:center;justify-content:center;gap:6px}
.eq-linie span{width:5px;border-radius:3px;background:var(--gold);height:14px}

/* ---------- Landingpage-Abschnitte ---------- */

.topbar{padding:26px 0;text-align:center}
.hero{text-align:center;padding:30px 0 10px;position:relative}
/* Hero-Glow (reines Dekor – darf nie Klicks abfangen, daher pointer-events:none) */
.hero::after{content:"";position:absolute;left:50%;top:-40px;transform:translateX(-50%);width:520px;height:520px;max-width:90vw;border-radius:50%;background:radial-gradient(circle,rgba(227,176,124,.32),transparent 62%);z-index:0;pointer-events:none}
.hero>*{position:relative;z-index:1}
.hero h1{font-size:clamp(2.3rem,5vw,3.4rem);margin-bottom:10px}
.hero .claim{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:500;color:var(--terra);font-size:clamp(1.3rem,2.5vw,1.7rem);margin-bottom:24px}
.hero p.lead{font-size:1.12rem;color:var(--ink-soft);max-width:600px;margin:0 auto}

.features{padding:56px 0 20px}
.features h2{text-align:center;font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:8px}
.features .sub{text-align:center;color:var(--ink-soft);margin-bottom:40px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:680px){.grid{grid-template-columns:1fr}}

.how3{padding:50px 0 0}
.how3 h2{text-align:center;font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:8px}
.how3 .sub{text-align:center;color:var(--ink-soft);margin-bottom:36px}
.how3 .row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:680px){.how3 .row{grid-template-columns:1fr}}
.how3 .s{background:var(--paper-card);border:1px solid var(--line);border-radius:18px;padding:24px;text-align:center}
.how3 .s .ic{width:48px;height:48px;margin:0 auto 14px;display:block}
.how3 .s h3{font-size:1.1rem;margin-bottom:4px}
.how3 .s p{font-size:.93rem;color:var(--ink-soft)}

.anlaesse-line{text-align:center;padding:50px 0 0}
.anlaesse-line .k{font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-bottom:16px}
.anlaesse-line .list{font-family:"Fraunces",Georgia,serif;font-style:italic;font-size:clamp(1.2rem,2.6vw,1.7rem);color:var(--ink);line-height:1.9}
.anlaesse-line .sep{color:var(--terra);font-style:normal;margin:0 .45em;font-size:.8em;vertical-align:middle}

.closing{text-align:center;padding:56px 0 10px}
.closing .line{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:18px}
.closing .line span{width:5px;border-radius:3px;background:var(--gold);height:14px}
.closing h2{font-size:clamp(1.5rem,2.6vw,1.9rem);margin-bottom:10px}
.closing p{color:var(--ink-soft);max-width:460px;margin:0 auto 18px}
.contact{display:inline-flex;align-items:center;gap:9px;font-weight:600;color:var(--terra-deep);border:1.5px solid var(--line);padding:12px 24px;border-radius:100px;text-decoration:none;transition:border-color .2s,color .2s}
.contact:hover{border-color:var(--terra);color:var(--terra)}

footer{margin-top:60px;border-top:1px solid var(--line);padding:26px 0 34px}
.foot-in{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.9rem;color:var(--ink-soft)}
.foot-links a{color:var(--ink-soft);text-decoration:none;margin-left:18px;transition:color .2s}
.foot-links a:first-child{margin-left:0}
.foot-links a:hover{color:var(--terra)}
@media(max-width:680px){.foot-in{flex-direction:column;text-align:center}.foot-links a{margin:0 9px}}

/* ---------- Bewegung reduzieren (Bauplan Abschnitt 4, bisher offen) ---------- */

@media (prefers-reduced-motion: reduce){
  .qm-heart,
  .qm-bars rect,
  .badge .dot{animation:none}
  .qm-bars rect{transform:scaleY(.8)}
  .badge .dot{opacity:1}
}
