/* Schrift lokal (Figtree, SIL Open Font License), keine Verbindung zu Google */
@font-face{font-family:"Figtree";src:url(fonts/figtree-latin.woff2) format("woff2");font-weight:300 900;font-display:swap}
/* Hochzeitsfinder: Schwesterseite von Festfinder. Pfirsich-Rosé-Verlauf, Himbeere, Sonnengold, Konfetti */
:root{
  --bg:#FDF3EE; --surface:#FFFFFF; --fg:#2A1626; --muted:#6E5763; --line:#F0DCD6;
  --accent:#B5245E; --accent-soft:#FBE3EA; --gold:#E3A019; --gold-soft:#FFF1D2; --warn:#7A5208;
  --ok:#2F6B4A; --ok-soft:#E4F1E9; --blush:#FFC9D3; --peach:#FFDCCB;
  --display:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#1B1218; --surface:#261A22; --fg:#F7E9EE; --muted:#C2A9B5; --line:#3E2B36;
  --accent:#F27AA6; --accent-soft:#3D1F2D; --gold:#F2BC4B; --gold-soft:#36290F; --warn:#F2C46A;
  --ok:#94CFA6; --ok-soft:#1E2E23; --blush:#4A2232; --peach:#3E2622; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#1B1218; --surface:#261A22; --fg:#F7E9EE; --muted:#C2A9B5; --line:#3E2B36;
  --accent:#F27AA6; --accent-soft:#3D1F2D; --gold:#F2BC4B; --gold-soft:#36290F; --warn:#F2C46A;
  --ok:#94CFA6; --ok-soft:#1E2E23; --blush:#4A2232; --peach:#3E2622; color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.5;padding-inline:16px;padding-block:0 48px}
a{color:var(--accent)}
.wrap{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:28px}
header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding-block:20px 4px;border-bottom:1px solid var(--line)}
.brand{font-family:var(--display);font-size:24px;font-weight:800;letter-spacing:-.01em;color:var(--fg);text-decoration:none}
.brand i{color:var(--accent);font-style:normal}
nav{display:flex;gap:6px;flex-wrap:wrap;font-size:14px}
nav a{color:var(--fg);text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:5px 13px;font-weight:500}
nav a:hover{color:var(--accent)}
nav a[aria-current]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.draft{background:var(--gold-soft);color:var(--warn);border-radius:8px;padding:10px 14px;font-size:13.5px}
h1{font-family:var(--display);font-weight:800;letter-spacing:-.02em;font-size:clamp(34px,6vw,56px);line-height:1.15;margin:0;text-wrap:balance}
h2{font-family:var(--display);font-weight:800;letter-spacing:-.01em;font-size:clamp(22px,3.4vw,27px);line-height:1.2;margin:0 0 12px}
.lead{color:var(--muted);margin:10px 0 0;max-width:62ch;font-size:16px}
.muted{color:var(--muted)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button{font:inherit;cursor:pointer;border-radius:8px}
.btn{display:inline-block;border:1px solid var(--accent);color:var(--accent);background:none;padding:8px 16px;font-size:14px;text-decoration:none;border-radius:8px;font-weight:500}
.btn.solid{background:var(--accent);color:var(--surface)}

/* Startseite */
.cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.cat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;text-decoration:none;color:var(--fg);display:flex;flex-direction:column;gap:6px}
.cat:hover{border-color:var(--accent)}
.cat.main{border:2px solid var(--accent)}
.cat .t{font-family:var(--display);font-size:20px;font-weight:800}
.cat .n{font-size:13px;color:var(--muted)}
.cat .tag{align-self:flex-start;font-size:11.5px;padding:2px 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-weight:600}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;counter-reset:s;padding:0;margin:0;list-style:none}
.steps li{counter-increment:s;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px}
.steps li::before{content:counter(s);display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:600;margin-bottom:8px}
.steps b{display:block}
.band{background:linear-gradient(115deg,var(--peach),var(--blush));border-radius:12px;padding:20px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.band p{margin:4px 0 0;color:var(--muted);max-width:52ch}

/* Formulare */
form.box,.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:16px}
.row{display:flex;gap:12px;flex-wrap:wrap}
.field{display:flex;flex-direction:column;gap:4px;flex:1 1 200px;min-width:0}
label,.lbl{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.hint{font-size:12.5px;color:var(--muted)}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],select,textarea{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 10px;width:100%}
textarea{min-height:110px;resize:vertical}
.checks{display:flex;flex-direction:column;gap:8px}
.checks label,.radios label{text-transform:none;letter-spacing:0;font-weight:400;color:var(--fg);font-size:14.5px;display:flex;gap:8px;align-items:flex-start}
.radios{display:flex;gap:16px;flex-wrap:wrap}
.hp{position:absolute;left:-9999px}
.go{background:var(--accent);border-radius:10px;color:var(--surface);border:0;padding:11px 24px;font-weight:600;align-self:flex-start}
.ok{background:var(--ok-soft);color:var(--ok);border-radius:8px;padding:12px 14px}
.err{background:var(--gold-soft);color:var(--warn);border-radius:8px;padding:12px 14px}

/* Preise Anbieter */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.plan{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:8px}
.plan.premium{border:2px solid var(--gold);box-shadow:0 0 0 4px var(--gold-soft)}
.plan .price{font-family:var(--display);font-size:30px;font-weight:800}
.plan ul{margin:0;padding-left:18px}

footer{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
footer a{color:var(--muted)}
.prose{max-width:68ch}
.prose h2{margin-top:24px}

/* Listen (Locations, Musik, Trauredner) */
form.search{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 14px 34px -22px color-mix(in srgb,var(--accent) 55%,transparent);padding:16px;display:flex;flex-direction:column;gap:14px}
form.search .row{align-items:flex-end}
.field.narrow{flex:1 1 140px}
.more{background:none;border:0;color:var(--accent);padding:0;font-weight:500;align-self:flex-start}
.extra{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;border-top:1px dashed var(--line);padding-top:14px}
.count{color:var(--muted);font-size:14px}
.list{display:flex;flex-direction:column;gap:12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;grid-template-columns:64px 1fr;gap:14px}
.card.premium{border:2px solid var(--gold);box-shadow:0 0 0 4px var(--gold-soft)}
.avatar{width:64px;height:64px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-family:var(--display);font-size:22px;font-weight:800}
.card .body{min-width:0;display:flex;flex-direction:column;gap:6px}
.top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:baseline}
.name{font-weight:800;font-size:17px}
.firm{color:var(--muted);font-size:14px}
.price{font-variant-numeric:tabular-nums;font-weight:800;font-size:20px;white-space:nowrap}
.price.none{color:var(--muted);font-weight:400;font-size:13.5px}
.meta{color:var(--muted);font-size:13.5px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:12px;padding:2px 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent)}
.chip.gold{background:var(--gold-soft);color:var(--gold);font-weight:600}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.actions .btn{padding:6px 14px}
.note{font-size:12.5px;color:var(--muted)}
.empty{padding:28px 20px;text-align:center;color:var(--muted);background:var(--surface);border-radius:12px;border:1px dashed var(--line);line-height:1.6}
.empty b{color:var(--fg)}
@media (max-width:480px){.card{grid-template-columns:1fr}.avatar{width:48px;height:48px;font-size:18px}}

/* Mittelweg beim Look: Hero mit Ornament, sanftes Einblenden, Hover */
.hero{position:relative;overflow:hidden;border-radius:24px;padding:clamp(32px,7vw,64px) clamp(22px,5vw,52px);
  background:linear-gradient(115deg,var(--peach) 0%,var(--blush) 100%);
  border:0;display:flex;flex-direction:column;gap:18px}
.hero h1{max-width:15ch;position:relative}
.hero .lead{position:relative}
.hero .ctas{display:flex;gap:10px;flex-wrap:wrap;position:relative}
.hero svg.petals{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero svg.petals .p{fill:var(--accent)}
.hero svg.petals .r{fill:none;stroke:var(--accent);stroke-width:2}
.hero svg.petals .rg{fill:none;stroke:var(--gold);stroke-width:2.4}
.hero svg.petals .g{fill:var(--gold)}
.hero h1{font-weight:800}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero .lead{color:var(--fg);opacity:.85}
@media (max-width:640px){.hero svg.petals{display:none}}
.eyebrow{align-self:flex-start;font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--warn);background:var(--gold-soft);padding:4px 10px;border-radius:6px;font-weight:600;position:relative}
.cat,.card,.plan,.steps li{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.cat:hover,.plan:hover{transform:translateY(-3px);box-shadow:0 10px 24px -14px color-mix(in srgb,var(--accent) 45%,transparent)}
.btn{transition:background .2s ease,color .2s ease}
.btn:not(.solid):hover{background:var(--accent-soft)}
.reveal{animation:hf-in .7s ease both}
.reveal:nth-child(2){animation-delay:.08s}.reveal:nth-child(3){animation-delay:.16s}.reveal:nth-child(4){animation-delay:.24s}
@keyframes hf-in{from{opacity:.001;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.reveal{animation:none}.cat,.card,.plan,.steps li{transition:none}.cat:hover,.plan:hover{transform:none}}

.chip.unk{background:none;border:1px dashed var(--line);color:var(--muted)}
.chip.ok{background:var(--ok-soft);color:var(--ok);font-weight:600}

/* Suche im farbigen Kopf, wie bei Festfinder */
.hero form.search{position:relative;margin-top:8px;box-shadow:0 18px 40px -24px color-mix(in srgb,var(--accent) 70%,transparent);border:0}
.hero .ctas{margin-top:-4px}
.hero .ctas a.link{color:var(--fg);font-size:14px;font-weight:500}

/* Locations mit Karte, wie bei Festfinder: Liste links, Karte rechts */
.wrap.wide{max-width:1180px}
.results{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}
.results .list{min-width:0}
.mapbox{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px;order:-1}
.mapbox h2{margin:0}
#karte{height:300px;border-radius:12px;overflow:hidden;background:var(--accent-soft)}
@media (min-width:900px){.results{grid-template-columns:minmax(0,1fr) 380px}.mapbox{order:0;position:sticky;top:16px}#karte{height:440px}}
.leaflet-popup-content{font-family:var(--body);font-size:13.5px}
.leaflet-popup-content b{font-weight:800}

/* Wer steckt dahinter */
.about{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:clamp(18px,4vw,32px)}
.about p{margin:0 0 10px;max-width:62ch}
.about .eyebrow{display:inline-block;margin-bottom:8px}
.about h2{margin-bottom:10px}
.about-foto{aspect-ratio:1;max-width:100%;border-radius:50%;background:linear-gradient(135deg,var(--peach),var(--blush));display:grid;place-items:center;font-weight:800;font-size:28px;color:var(--accent);overflow:hidden}
.about-foto img{width:100%;height:100%;object-fit:cover}
@media (max-width:640px){.about{grid-template-columns:1fr}.about-foto{width:120px}}
