/* Schriften liegen lokal auf dem Server (kein Abruf bei Google Fonts) */
@font-face{font-family:"Fraunces";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/fraunces-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/fraunces-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/fraunces-latin-400-italic.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");}

:root{
  --paper:#F3EEE2;
  --paper-2:#EAE2D0;
  --ink:#1C2333;
  --ink-soft:#4A5066;
  --accent:#B5652E;
  --accent-2:#2F6D5C;
  --line: rgba(28,35,51,0.14);
  --bg: var(--paper);
  --bg-2: var(--paper-2);
  --fg: var(--ink);
  --fg-soft: var(--ink-soft);
  --rule: var(--line);
  --card-bg: #FFFDF8;
  --dot: var(--accent-2);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#161C2C;
    --bg-2:#1E2538;
    --fg:#EDE7D6;
    --fg-soft:#B9B3A0;
    --rule: rgba(237,231,214,0.16);
    --card-bg:#1E2538;
    --accent:#D98A4E;
    --accent-2:#63B39B;
    --dot: var(--accent-2);
  }
}
:root[data-theme="dark"]{
  --bg:#161C2C;
  --bg-2:#1E2538;
  --fg:#EDE7D6;
  --fg-soft:#B9B3A0;
  --rule: rgba(237,231,214,0.16);
  --card-bg:#1E2538;
  --accent:#D98A4E;
  --accent-2:#63B39B;
  --dot: var(--accent-2);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:"IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:"Fraunces", Georgia, "Times New Roman", serif;
  font-weight:600;
  letter-spacing:-0.01em;
  margin:0;
  color:var(--fg);
}
a{color:inherit;}
img,svg{max-width:100%;}

.wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
section{padding:96px 0;}
@media (max-width:720px){ section{padding:64px 0;} }

.rule{border-top:1px solid var(--rule);}

/* NAV */
nav.top{
  display:flex; align-items:center; justify-content:space-between;
  padding:26px 0;
}
.brand{
  display:flex; align-items:center; gap:10px;
  font-family:"Fraunces", serif; font-weight:600; font-size:1.15rem;
}
.brand .mark{
  width:26px;height:26px; border-radius:50%;
  background: conic-gradient(var(--accent-2), var(--accent), var(--accent-2));
  display:inline-block;
}
.nav-links{display:flex; gap:32px; font-size:0.95rem; color:var(--fg-soft);}
.nav-links a{text-decoration:none;}
.nav-links a:hover{color:var(--accent);}
@media (max-width:640px){ .nav-links{display:none;} }

.btn{
  display:inline-block;
  padding:13px 26px;
  background:var(--accent);
  color:#FFF8EF;
  border-radius:3px;
  text-decoration:none;
  font-size:0.95rem;
  font-weight:500;
  border:none;
  cursor:pointer;
}
.btn.ghost{
  background:transparent;
  color:var(--fg);
  border:1px solid var(--rule);
}

/* HERO */
.hero{
  display:grid; grid-template-columns: 1.1fr 0.9fr; gap:56px; align-items:center;
  padding-top:36px; padding-bottom:80px;
}
@media (max-width:860px){ .hero{grid-template-columns:1fr; padding-bottom:48px;} }

.eyebrow{
  font-size:0.85rem; color:var(--accent-2); margin-bottom:18px;
}
h1.headline{
  font-size:clamp(2.3rem, 4.4vw, 3.6rem);
  line-height:1.08;
}
.headline em{
  font-style:italic; color:var(--accent);
}
.sub{
  margin-top:22px; font-size:1.1rem; color:var(--fg-soft); max-width:38ch;
}
.hero-cta{margin-top:32px; display:flex; gap:16px; align-items:center; flex-wrap:wrap;}
.hero-note{font-size:0.85rem; color:var(--fg-soft);}

.map-box{
  background:var(--card-bg);
  border:1px solid var(--rule);
  border-radius:4px;
  padding:18px;
}
.map-box svg{display:block; width:100%; height:auto;}
.map-cap{
  display:flex; justify-content:space-between; margin-top:12px;
  font-size:0.8rem; color:var(--fg-soft);
}

/* CONTEXT / WHY EUROPE */
.why{
  background:var(--bg-2);
}
.why-grid{
  display:grid; grid-template-columns: 0.9fr 1.1fr; gap:56px;
}
@media (max-width:860px){ .why-grid{grid-template-columns:1fr; gap:32px;} }
.why h2{ font-size:clamp(1.7rem, 3vw, 2.2rem); max-width:16ch;}
.why-list{list-style:none; margin:0; padding:0;}
.why-list li{
  padding:22px 0; border-top:1px solid var(--rule);
  display:grid; grid-template-columns: 90px 1fr; gap:20px;
}
.why-list li:last-child{border-bottom:1px solid var(--rule);}
.why-list .num{font-family:"Fraunces", serif; color:var(--accent-2); font-size:1rem;}
.why-list h3{font-size:1.05rem; font-weight:600; margin-bottom:6px;}
.why-list p{margin:0; color:var(--fg-soft); font-size:0.97rem;}

/* HOW IT WORKS */
.steps{
  display:grid; grid-template-columns: repeat(3,1fr); gap:0;
  margin-top:52px;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
@media (max-width:780px){ .steps{grid-template-columns:1fr;} }
.step{
  padding:36px 32px;
  border-right:1px solid var(--rule);
}
.step:last-child{border-right:none;}
@media (max-width:780px){ .step{border-right:none; border-bottom:1px solid var(--rule);} .step:last-child{border-bottom:none;} }
.step .idx{
  font-family:"Fraunces", serif; font-style:italic; color:var(--accent);
  font-size:1.4rem; display:block; margin-bottom:14px;
}
.step h3{font-size:1.08rem; margin-bottom:10px;}
.step p{color:var(--fg-soft); font-size:0.95rem; margin:0;}

/* COVERAGE TABLE */
.coverage h2{font-size:clamp(1.7rem,3vw,2.2rem); max-width:20ch;}
.coverage .sub{margin-top:14px;}
table.manifest{
  width:100%; border-collapse:collapse; margin-top:44px; font-size:0.95rem;
}
table.manifest th{
  text-align:left; font-weight:500; color:var(--fg-soft);
  font-size:0.82rem; padding:10px 14px; border-bottom:1px solid var(--rule);
}
table.manifest td{
  padding:14px 14px; border-bottom:1px solid var(--rule); vertical-align:top;
}
table.manifest tr td:first-child{ font-family:"Fraunces", serif; font-weight:500; }
.dotcell{display:flex; align-items:center; gap:8px;}
.dotcell .dot{width:7px;height:7px;border-radius:50%; background:var(--dot); flex-shrink:0;}

/* FEATURES */
.features{background:var(--bg-2);}
.feat-grid{
  display:grid; grid-template-columns: repeat(2, 1fr); gap:44px 56px;
  margin-top:48px;
}
@media (max-width:780px){ .feat-grid{grid-template-columns:1fr;} }
.feat h3{font-size:1.05rem; margin-bottom:10px; display:flex; align-items:baseline; gap:10px;}
.feat h3::before{
  content:"—"; color:var(--accent-2);
}
.feat p{color:var(--fg-soft); font-size:0.95rem; margin:0; max-width:42ch;}

/* PRICING */
.pricing h2{font-size:clamp(1.7rem,3vw,2.2rem);}
.price-row{
  display:grid; grid-template-columns: repeat(3, 1fr);
  margin-top:48px; border-top:1px solid var(--rule);
}
@media (max-width:820px){ .price-row{grid-template-columns:1fr;} }
.plan{
  padding:34px 30px; border-right:1px solid var(--rule); border-bottom:1px solid var(--rule);
}
.plan:last-child{border-right:none;}
@media (max-width:820px){ .plan{border-right:none;} }
.plan .tier{font-size:0.85rem; color:var(--accent-2); margin-bottom:10px;}
.plan .price{font-family:"Fraunces", serif; font-size:2rem; margin-bottom:4px;}
.plan .price small{font-family:"IBM Plex Sans"; font-size:0.9rem; color:var(--fg-soft); font-weight:400;}
.plan .desc{color:var(--fg-soft); font-size:0.9rem; margin-bottom:22px;}
.plan ul{list-style:none; margin:0 0 24px; padding:0; font-size:0.9rem; color:var(--fg-soft);}
.plan li{padding:7px 0; border-top:1px solid var(--rule);}
.plan li:first-child{border-top:none;}
.plan.highlight{background:var(--card-bg);}

/* FOOTER CTA */
.cta-final{
  text-align:center;
}
.cta-final h2{font-size:clamp(1.9rem,4vw,2.6rem); max-width:22ch; margin:0 auto;}
.cta-final .sub{margin:20px auto 0; text-align:center;}
.cta-final .hero-cta{justify-content:center; margin-top:30px;}

footer{
  border-top:1px solid var(--rule);
  padding:40px 0;
  font-size:0.85rem;
  color:var(--fg-soft);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
}

/* SUCHE */
.finder{background:var(--bg-2);}
.finder h2{font-size:clamp(1.7rem,3vw,2.2rem); max-width:22ch;}
.finder .sub{margin-top:14px;}
.finder-form{
  display:grid; grid-template-columns: 1fr 1.2fr 1.2fr 1fr auto; gap:12px; margin-top:36px; align-items:end;
}
@media (max-width:980px){ .finder-form{grid-template-columns:1fr 1fr;} .finder-form .btn{grid-column:1 / -1;} }
@media (max-width:560px){ .finder-form{grid-template-columns:1fr;} }
.field label{display:block; font-size:0.8rem; color:var(--fg-soft); margin-bottom:6px;}
.field input,.field select{
  width:100%; padding:12px 12px; font:inherit; font-size:0.95rem;
  background:var(--card-bg); color:var(--fg);
  border:1px solid var(--rule); border-radius:3px;
}
.field input:focus,.field select:focus{outline:2px solid var(--accent-2); outline-offset:1px;}
.btn:disabled{opacity:0.55; cursor:wait;}
.finder-status{margin-top:20px; font-size:0.92rem; color:var(--fg-soft); min-height:1.4em;}
.finder-status.err{color:var(--accent);}
.finder-tools{display:flex; justify-content:space-between; align-items:center; margin-top:28px; gap:12px; flex-wrap:wrap;}
.results-wrap{overflow-x:auto; margin-top:12px;}
.finder-tools[hidden],.results-wrap[hidden]{display:none;}
table.results{width:100%; border-collapse:collapse; font-size:0.92rem; background:var(--card-bg); border:1px solid var(--rule);}
table.results th{
  text-align:left; font-weight:500; color:var(--fg-soft); font-size:0.8rem;
  padding:10px 14px; border-bottom:1px solid var(--rule); white-space:nowrap;
}
table.results td{padding:12px 14px; border-bottom:1px solid var(--rule); vertical-align:top;}
table.results td.name{font-family:"Fraunces", serif; font-weight:500;}
.badge{display:inline-block; padding:2px 8px; border-radius:2px; font-size:0.78rem; border:1px solid var(--rule);}
.badge.none{color:var(--accent-2); border-color:var(--accent-2);}
.badge.social{color:var(--accent); border-color:var(--accent);}
table.results a{color:var(--accent-2);}

/* ---- Ergänzungen ---- */
.headline em{font-weight:400;}
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px;}
.finder-note{margin-top:14px;font-size:0.85rem;color:var(--fg-soft);max-width:70ch;}
.finder-usage{font-size:0.85rem;color:var(--fg-soft);}
.attrib{margin-top:14px;font-size:0.8rem;color:var(--fg-soft);max-width:90ch;}
.attrib a{color:var(--fg-soft);}
.plan .btn{margin-top:4px;}
.price-note{margin-top:18px;font-size:0.85rem;color:var(--fg-soft);max-width:80ch;}

/* Kontaktformular */
.contact h2{font-size:clamp(1.7rem,3vw,2.2rem);max-width:20ch;}
.contact-grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:56px;align-items:start;}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;gap:28px;}}
.lead-form{display:grid;gap:16px;}
.lead-form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:560px){.lead-form .two{grid-template-columns:1fr;}}
.field textarea{width:100%;min-height:110px;padding:12px;font:inherit;font-size:0.95rem;background:var(--card-bg);color:var(--fg);border:1px solid var(--rule);border-radius:3px;resize:vertical;}
.field textarea:focus{outline:2px solid var(--accent-2);outline-offset:1px;}
.check{display:flex;gap:10px;align-items:flex-start;font-size:0.88rem;color:var(--fg-soft);}
.check input{margin-top:4px;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-msg{font-size:0.92rem;min-height:1.4em;}
.form-msg.err{color:var(--accent);}
.form-msg.ok{color:var(--accent-2);}

/* Rechtstexte und Danke-Seite */
.doc{max-width:760px;padding:40px 0 80px;}
.doc h1{font-size:clamp(1.9rem,4vw,2.5rem);margin-bottom:24px;}
.doc h2{font-size:1.25rem;margin:36px 0 10px;}
.doc p,.doc li{color:var(--fg);font-size:0.98rem;}
.doc ul{padding-left:20px;}
.todo{background:#fff0a8;color:#3a3000;padding:0 4px;border-radius:2px;}
.draft-box{border:1px solid var(--accent);padding:14px 16px;margin:0 0 28px;font-size:0.92rem;border-radius:3px;}
footer a{color:var(--fg-soft);}
footer .links{display:flex;gap:18px;flex-wrap:wrap;}

/* Telefonnummern nicht umbrechen */
table.results a[href^="tel"]{white-space:nowrap;}

/* Aktion / Rabatt */
.promo-bar{background:var(--accent);color:#fff;padding:10px 14px;border-radius:6px;margin-bottom:14px;font-size:0.95rem;}
.promo-bar[hidden]{display:none;}
.plan .price s.old{color:var(--fg-soft);font-size:1.2rem;font-weight:400;}

/* Support-Chat */
.chat{position:fixed;right:16px;bottom:16px;z-index:50;font-family:"IBM Plex Sans",sans-serif;}
.chat-fab{background:var(--accent);color:#fff;border:0;border-radius:999px;padding:12px 20px;font:inherit;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.25);}
.chat-fab:focus-visible,.chat-head button:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px;}
.chat-panel{position:absolute;right:0;bottom:56px;width:min(340px,calc(100vw - 32px));max-height:min(520px,calc(100vh - 100px));display:flex;flex-direction:column;background:var(--card-bg);color:var(--fg);border:1px solid var(--rule);border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.28);overflow:hidden;}
.chat-panel[hidden]{display:none;}
.chat-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--rule);}
.chat-head button{background:none;border:0;color:var(--fg);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 4px;}
.chat-log{flex:1;min-height:120px;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;}
.cmsg{max-width:85%;padding:8px 11px;border-radius:10px;font-size:0.92rem;white-space:pre-wrap;overflow-wrap:anywhere;}
.cmsg.them{background:var(--bg-2);align-self:flex-start;}
.cmsg.me{background:var(--accent);color:#fff;align-self:flex-end;}
.chat-closed{padding:6px 12px;font-size:0.82rem;color:var(--fg-soft);}
.chat-closed[hidden],.chat-who[hidden]{display:none;}
#cForm{padding:10px 12px;border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:6px;}
.chat-who{display:flex;flex-direction:column;gap:6px;}
#cForm input,#cForm textarea{font:inherit;font-size:0.92rem;padding:7px 9px;border:1px solid var(--rule);border-radius:6px;background:var(--bg);color:var(--fg);width:100%;box-sizing:border-box;}
#cForm textarea{resize:vertical;}
.chat-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.chat-err{color:#b3261e;font-size:0.82rem;}
.chat-note{margin:0;font-size:0.75rem;color:var(--fg-soft);}
