/* SmartAdhanBoard – Produktseite und Rechtliches (nach freigegebener Vorschau, Entwurf 1) */
@font-face { font-family: "Inter"; src: url("../fonts/inter-Regular.woff") format("woff"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-SemiBold.woff") format("woff"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-Bold.woff") format("woff"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-ExtraBold.woff") format("woff"); font-weight: 800; font-display: swap; }
:root {
    --gruen: #0d3a30; --gruen-dunkel: #0a2e26; --gruen-hell: #1d6b57; --naechstes: #2fbf8f;
    --creme: #fbf6ea; --gold: #e3b768; --text: #0d3a30; --grau: #4b6b62; --linie: #dcd5c3;
    --breite: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: "Inter", system-ui, sans-serif; color: var(--text); background: var(--creme); font-size: 18px; line-height: 1.55; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
.innen { max-width: var(--breite); margin: 0 auto; padding: 0 24px; }
h1, h2, h3 { margin: 0; letter-spacing: -.02em; line-height: 1.1; }
h2 { font-size: clamp(30px, 4vw, 44px); font-weight: 800; max-width: 22ch; }
p { margin: 0; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

/* Kopf */
.kopf { position: absolute; inset: 0 0 auto; z-index: 5; color: var(--creme); }
.kopf .innen { display: flex; align-items: center; justify-content: space-between; height: 76px; }
.marke { font-weight: 800; font-size: 21px; letter-spacing: -.02em; text-decoration: none; display: flex; align-items: center; gap: 10px; }
.marke i { width: 26px; height: 26px; border-radius: 7px; background: var(--gold); position: relative; }
.marke i::after { content: ""; position: absolute; inset: 7px 7px auto auto; width: 8px; height: 8px; border-radius: 50%; background: var(--gruen); box-shadow: -9px 0 0 var(--gruen); }
.nav { display: flex; gap: 28px; align-items: center; font-size: 16px; font-weight: 600; }
.nav a { text-decoration: none; opacity: .85; }
.nav a:hover { opacity: 1; }
.nav a.anmelden { opacity: 1; border: 1.5px solid currentColor; border-radius: 999px; padding: 6px 16px; font-size: 15px; }
.nav a.anmelden:hover { background: rgba(251,246,234,.12); }
.sprache { border: 1px solid rgba(251,246,234,.35); border-radius: 999px; padding: 4px 4px; display: flex; gap: 2px; }
.sprache a { padding: 3px 10px; border-radius: 999px; opacity: 1; font-size: 14px; }
.sprache a[aria-current] { background: var(--creme); color: var(--gruen); }

/* Hero */
.hero { background: radial-gradient(70vmax 50vmax at 85% 0%, var(--gruen-hell) 0%, transparent 60%), var(--gruen); color: var(--creme); padding: 150px 0 0; overflow: hidden; }
.hero .innen { display: grid; grid-template-columns: 0.95fr 1.25fr; gap: 56px; align-items: end; }
.hero-text { padding-bottom: 110px; }
.hero h1 { font-size: clamp(38px, 4.3vw, 58px); font-weight: 800; letter-spacing: -.035em; }
.hero p { margin-top: 22px; font-size: 20px; opacity: .85; max-width: 34ch; }
.knoepfe { display: flex; gap: 14px; margin-top: 36px; flex-wrap: wrap; }
.knopf { display: inline-block; padding: 15px 26px; border-radius: 12px; font-weight: 700; text-decoration: none; font-size: 17px; }
.knopf.haupt { background: var(--gold); color: #2a1d05; }
.knopf.zweit { border: 1.5px solid rgba(251,246,234,.4); }
.tv { position: relative; margin-bottom: -2px; }
.tv .rahmen { background: #050b09; border-radius: 18px 18px 0 0; padding: 14px 14px 0; box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.tv img { display: block; width: 100%; border-radius: 6px 6px 0 0; }
.tv .live { position: absolute; left: 30px; top: -38px; font-size: 14px; color: var(--creme); opacity: .75; display: flex; align-items: center; gap: 8px; }
.tv .live::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--naechstes); box-shadow: 0 0 0 4px rgba(47,191,143,.25); }

/* Ablauf eines Gebets – das Erkennungszeichen der Seite */
.gebet { padding: 110px 0 100px; }
.gebet .einleitung { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: end; margin-bottom: 52px; }
.gebet .einleitung p { color: var(--grau); max-width: 46ch; }
.zeitleiste { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.zeitleiste::before { content: ""; position: absolute; left: 0; right: 0; top: 13px; height: 2px; background: var(--linie); }
.schritt { position: relative; }
.schritt time { position: relative; display: inline-block; background: var(--creme); padding-right: 12px; font-weight: 800; font-size: 20px; font-variant-numeric: tabular-nums; }
.schritt img { display: block; width: 100%; border-radius: 10px; margin: 18px 0 14px; box-shadow: 0 14px 30px rgba(13,58,48,.18); }
.schritt h3 { font-size: 19px; font-weight: 700; }
.schritt p { font-size: 16px; color: var(--grau); margin-top: 4px; }

/* Funktionen */
.funktionen { background: var(--gruen-dunkel); color: var(--creme); padding: 100px 0; }
.funktionen h2 { margin-bottom: 48px; }
.liste { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 64px; }
.punkt { padding: 26px 0; border-top: 1px solid rgba(251,246,234,.14); display: grid; grid-template-columns: 1fr; gap: 6px; align-content: start; }
.punkt h3 { font-size: 20px; font-weight: 700; }
.punkt p { opacity: .75; font-size: 17px; max-width: 48ch; }
.farben { display: flex; gap: 8px; margin-top: 10px; }
.farben span { width: 30px; height: 30px; border-radius: 50%; border: 2px solid rgba(251,246,234,.5); }

/* Ablauf Einrichtung */
.einrichtung { padding: 100px 0; }
.drei { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 44px; }
.drei li { border-top: 3px solid var(--gruen); padding-top: 18px; }
.drei b { display: block; font-size: 15px; color: var(--grau); font-weight: 600; margin-bottom: 8px; }
.drei h3 { font-size: 22px; margin-bottom: 8px; }
.drei p { color: var(--grau); font-size: 17px; }

/* Anfrage */
.anfrage { background: #fff; padding: 100px 0; border-top: 1px solid var(--linie); }
.anfrage .innen { display: grid; grid-template-columns: 1fr 1.2fr; gap: 64px; }
.anfrage .links p { color: var(--grau); margin-top: 18px; max-width: 38ch; }
.kontakt { margin-top: 28px; font-size: 16px; color: var(--grau); }
.kontakt a { color: var(--text); font-weight: 600; }
form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
label { display: grid; gap: 6px; font-size: 15px; font-weight: 600; }
label small { font-weight: 400; color: var(--grau); }
input, select, textarea { font: inherit; font-size: 17px; color: var(--text); border: 1.5px solid var(--linie); border-radius: 10px; padding: 12px 14px; background: var(--creme); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--gruen); background: #fff; }
.voll { grid-column: 1 / -1; }
textarea { min-height: 110px; resize: vertical; }
.zustimmung { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 15px; color: var(--grau); }
.zustimmung input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--gruen); }
form .knopf { border: 0; cursor: pointer; background: var(--gruen); color: var(--creme); justify-self: start; }

/* Kostenlos / freiwilliger Beitrag */
.spende { background: var(--gruen); color: var(--creme); padding: 90px 0; }
.spende .innen { display: grid; grid-template-columns: 1.3fr 1fr; gap: 64px; align-items: center; }
.spende p { opacity: .85; margin-top: 16px; max-width: 52ch; }
.spende .spende-aktion { justify-self: start; }
.spende .klein { font-size: 15px; opacity: .65; margin-top: 16px; max-width: 40ch; }
@media (max-width: 900px) { .spende { padding: 72px 0; } .spende .innen { grid-template-columns: 1fr; gap: 28px; } }

/* Fragen */
.fragen { padding: 100px 0; }
.fragen .innen { display: grid; grid-template-columns: 1fr 1.6fr; gap: 64px; }
details { border-top: 1px solid var(--linie); padding: 20px 0; }
details:last-child { border-bottom: 1px solid var(--linie); }
summary { font-weight: 700; font-size: 19px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 20px; }
summary::after { content: "+"; font-weight: 400; font-size: 26px; line-height: 1; color: var(--grau); }
details[open] summary::after { content: "–"; }
details p { color: var(--grau); margin-top: 10px; max-width: 60ch; }

/* Fuß */
.fuss { background: var(--gruen); color: var(--creme); padding: 44px 0; font-size: 15px; }
.fuss .innen { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.fuss nav { display: flex; gap: 10px 22px; flex-wrap: wrap; }
.fuss a { opacity: .8; text-decoration: none; }

@media (max-width: 900px) {
    body { font-size: 17px; }
    .nav a:not(.sprache a):not(.anmelden) { display: none; }
    .nav { gap: 12px; }
    .hero { padding-top: 110px; }
    .hero .innen, .gebet .einleitung, .anfrage .innen, .fragen .innen { grid-template-columns: 1fr; gap: 36px; }
    .hero-text { padding-bottom: 0; }
    .tv { margin-top: 40px; }
    .zeitleiste { grid-template-columns: 1fr 1fr; gap: 28px 16px; }
    .zeitleiste::before { display: none; }
    .liste, .drei { grid-template-columns: 1fr; }
    .drei { gap: 28px; }
    form { grid-template-columns: 1fr; }
    .gebet, .funktionen, .einrichtung, .anfrage, .fragen { padding: 72px 0; }
}

/* Listen (Zeitleiste, Schritte) ohne Aufzählungszeichen */
ol.zeitleiste, ol.drei { list-style: none; margin: 0; padding: 0; }

/* Formular-Rückmeldungen */
.meldung { grid-column: 1 / -1; border-radius: 12px; padding: 14px 18px; font-size: 16px; font-weight: 600; margin: 0; }
.meldung.ok { background: #e3f4ec; color: #0d3a30; border: 1.5px solid var(--naechstes); }
.meldung.fehler { background: #fbeceb; color: #7a1d1d; border: 1.5px solid #d9837d; }
.honig { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Unterseiten (Impressum, Datenschutz) */
.unterseite .kopf { position: static; background: var(--gruen); }
.recht { padding: 64px 0 90px; }
.recht .schmal { max-width: 780px; }
.recht h1 { font-size: clamp(32px, 4vw, 44px); font-weight: 800; margin-bottom: 28px; }
.recht h2 { font-size: 21px; margin: 34px 0 10px; max-width: none; }
.recht p { color: #2c4a42; margin-bottom: 12px; max-width: 70ch; }
.recht a { color: var(--gruen); font-weight: 600; }
.recht .stand { margin-top: 32px; font-size: 15px; color: var(--grau); }
.recht .zurueck { margin-top: 40px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Kopfzeile auf kleinen Handys: Marke, Anmelden und Sprache passen in eine Zeile */
@media (max-width: 520px) {
    .kopf .marke { font-size: 16px; gap: 8px; }
    .kopf .marke i { width: 22px; height: 22px; }
    .nav { gap: 8px; }
    .nav a.anmelden { padding: 5px 11px; font-size: 14px; }
    .sprache a { padding: 3px 7px; font-size: 13px; }
}

