
:root{
  --rp-ink:#23251f;
  --rp-ink-soft:#4b4a42;
  --rp-olive:#293127;
  --rp-olive-2:#354032;
  --rp-gold:#a97b3e;
  --rp-gold-soft:#d7bd91;
  --rp-paper:#fbf7ef;
  --rp-paper-2:#f3ecdf;
  --rp-white:#fffdf9;
  --rp-line:#d7c9b3;
  --rp-shadow:0 18px 50px rgba(35,37,31,.10);
  --rp-shadow-soft:0 8px 28px rgba(35,37,31,.075);
  --rp-radius:8px;
  --rp-max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--rp-paper);
  color:var(--rp-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit}
.rp-serif{font-family:Georgia,"Times New Roman",serif}
.rp-shell{max-width:var(--rp-max);margin:0 auto;padding:0 28px}

/* top trust line */
.rp-topbar{
  background:#1c211b;
  color:rgba(255,255,255,.82);
  font-size:13px;
  letter-spacing:.04em;
}
.rp-topbar .rp-shell{
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
}
.rp-topbar span+span::before{
  content:"•";
  margin-right:18px;
  color:var(--rp-gold-soft);
}

/* header */
.rp-header{
  background:rgba(255,253,249,.96);
  border-bottom:1px solid var(--rp-line);
  position:sticky;
  top:0;
  z-index:30;
  backdrop-filter:blur(10px);
}
.rp-header-row{
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
}
.rp-brand{
  text-decoration:none;
  min-width:225px;
}
.rp-brand strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:500;
  font-size:30px;
  line-height:1;
  letter-spacing:.03em;
}
.rp-brand span{
  display:block;
  margin-top:6px;
  color:#6c675d;
  font-size:12px;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.rp-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:24px;
  flex-wrap:wrap;
}
.rp-nav a{
  text-decoration:none;
  font-size:15px;
  color:#3e4039;
}
.rp-nav a:not(.rp-nav-cta):hover{
  color:var(--rp-gold);
}
.rp-nav-cta{
  border:1px solid var(--rp-olive);
  padding:10px 16px;
  border-radius:4px;
  font-weight:650;
}
.rp-nav-cta:hover{
  background:var(--rp-olive);
  color:white;
}

/* hero */
.rp-hero{
  position:relative;
  min-height:640px;
  overflow:hidden;
  background:
    radial-gradient(circle at 87% 18%,rgba(169,123,62,.18),transparent 31%),
    linear-gradient(135deg,#1b211a 0%,#2a3328 100%);
  color:white;
}
.rp-hero::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.24;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:32px 32px;
  pointer-events:none;
}
.rp-hero::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:5px;
  background:linear-gradient(90deg,var(--rp-gold),#c8a46c,var(--rp-gold));
}
.rp-hero-grid{
  position:relative;
  z-index:2;
  min-height:640px;
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr);
  align-items:center;
  gap:48px;
}
.rp-hero-content{
  width:100%;
  padding:58px 0 64px;
}
.rp-kicker{
  margin:0 0 15px;
  color:#e3c798;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:12px;
  font-weight:750;
}
.rp-hero h1{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(43px,4.2vw,55px);
  line-height:1.07;
  font-weight:500;
  letter-spacing:-.025em;
  text-wrap:pretty;
}
.rp-hero-lead{
  max-width:650px;
  margin:20px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:20px;
  line-height:1.55;
  color:rgba(255,255,255,.91);
}
.rp-hero-assurance{
  max-width:630px;
  margin:17px 0 0;
  padding:10px 0 10px 17px;
  border-left:3px solid var(--rp-gold-soft);
  color:#f1e6d2;
  font-size:16px;
  font-weight:700;
  line-height:1.5;
}
.rp-hero-actions{
  margin-top:24px;
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.rp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 20px;
  border-radius:4px;
  text-decoration:none;
  font-size:15px;
  font-weight:700;
  transition:.18s ease;
}
.rp-btn-primary{
  background:#f7efe0;
  color:#252a22;
  border:1px solid #f7efe0;
}
.rp-btn-primary:hover{background:white;border-color:white}
.rp-btn-secondary{
  color:white;
  border:1px solid rgba(255,255,255,.58);
  background:rgba(255,255,255,.06);
}
.rp-btn-secondary:hover{background:rgba(255,255,255,.13)}
.rp-hero-note{
  margin:17px 0 0;
  font-size:13px;
  color:rgba(255,255,255,.70);
}
.rp-hero-visual{
  position:relative;
  margin:40px 0;
  min-width:0;
  height:500px;
  border:1px solid rgba(227,199,152,.72);
  box-shadow:0 28px 70px rgba(0,0,0,.34);
  background:#11150f;
}
.rp-hero-visual::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:18px -18px -18px 18px;
  border:1px solid rgba(227,199,152,.25);
}
.rp-hero-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:52% 45%;
  filter:sepia(.08) saturate(.86) contrast(1.02);
}
.rp-hero-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 54%,rgba(12,15,11,.86) 100%);
  pointer-events:none;
}
.rp-hero-visual figcaption{
  position:absolute;
  z-index:2;
  left:27px;
  right:27px;
  bottom:25px;
  color:white;
}
.rp-hero-visual figcaption span{
  display:block;
  margin-bottom:5px;
  color:#e3c798;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:10px;
  font-weight:800;
}
.rp-hero-visual figcaption strong{
  display:block;
  max-width:390px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:20px;
  font-weight:500;
  line-height:1.35;
}

/* contact choices */
.rp-contact-choices{
  background:var(--rp-white);
  border-bottom:1px solid var(--rp-line);
}
.rp-choice-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
}
.rp-choice{
  position:relative;
  padding:26px 28px 27px;
  text-decoration:none;
  border-right:1px solid var(--rp-line);
  transition:background .18s ease;
}
.rp-choice:last-child{border-right:0}
.rp-choice:hover{background:#f8f1e5}
.rp-choice::before{
  content:"";
  position:absolute;
  left:28px;
  top:0;
  width:42px;
  height:3px;
  background:var(--rp-gold);
}
.rp-choice-label{
  display:block;
  color:#746b5e;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.15em;
  margin-bottom:7px;
}
.rp-choice strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:21px;
  font-weight:500;
  margin-bottom:4px;
}
.rp-choice small{
  display:block;
  color:#69645b;
  font-size:14px;
}

/* sections */
.rp-section{padding:84px 0}
.rp-section-tight{padding:62px 0}
.rp-section-white{background:var(--rp-white)}
.rp-section-dark{
  background:linear-gradient(120deg,var(--rp-olive),#20271f);
  color:white;
}
.rp-section-head{
  max-width:790px;
  margin:0 auto 42px;
  text-align:center;
}
.rp-eyebrow{
  margin:0 0 10px;
  color:var(--rp-gold);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  font-weight:800;
}
.rp-section-head h2,
.rp-content-heading{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(32px,4vw,47px);
  line-height:1.18;
  font-weight:500;
  letter-spacing:-.015em;
}
.rp-section-head p{
  margin:17px auto 0;
  max-width:720px;
  font-size:18px;
  color:#5d594f;
}
.rp-section-dark .rp-section-head p{color:rgba(255,255,255,.78)}

/* intro / reassurance */
.rp-intro-grid{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:52px;
  align-items:center;
}
.rp-intro-copy h2{
  margin:0 0 20px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:43px;
  line-height:1.18;
  font-weight:500;
}
.rp-intro-copy p{
  margin:0 0 16px;
  font-size:18px;
  color:#4c4942;
}
.rp-reassure{
  background:var(--rp-olive);
  color:white;
  padding:34px 34px 36px;
  border-radius:var(--rp-radius);
  box-shadow:var(--rp-shadow);
  border-top:4px solid var(--rp-gold);
}
.rp-reassure h3{
  margin:0 0 13px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:27px;
  font-weight:500;
}
.rp-reassure p{
  margin:0 0 15px;
  color:rgba(255,255,255,.82);
}
.rp-checklist{
  list-style:none;
  margin:0;
  padding:0;
}
.rp-checklist li{
  position:relative;
  padding:10px 0 10px 26px;
  border-top:1px solid rgba(255,255,255,.13);
  color:rgba(255,255,255,.91);
}
.rp-checklist li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:#e6c995;
  font-weight:800;
}

/* trust cards */
.rp-trust-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.rp-trust-card{
  background:var(--rp-white);
  border:1px solid var(--rp-line);
  border-radius:var(--rp-radius);
  padding:30px 28px 32px;
  box-shadow:var(--rp-shadow-soft);
}
.rp-trust-no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:35px;
  height:35px;
  border-radius:50%;
  background:var(--rp-paper-2);
  color:var(--rp-gold);
  font-size:13px;
  font-weight:800;
  margin-bottom:17px;
}
.rp-trust-card h3{
  margin:0 0 10px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:25px;
  font-weight:500;
}
.rp-trust-card p{
  margin:0;
  color:#5b574f;
}

/* category cards */
.rp-category-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:20px;
}
.rp-category{
  grid-column:span 4;
  background:var(--rp-white);
  border:1px solid var(--rp-line);
  border-radius:var(--rp-radius);
  overflow:hidden;
  text-decoration:none;
  box-shadow:var(--rp-shadow-soft);
  transition:transform .18s ease,box-shadow .18s ease;
}
.rp-category-large{grid-column:span 6}
.rp-category:hover{
  transform:translateY(-3px);
  box-shadow:var(--rp-shadow);
}
.rp-category-image{
  width:100%;
  height:205px;
  object-fit:cover;
  background:#ede5d8;
}
.rp-category-large .rp-category-image{height:270px}
.rp-category-body{padding:25px 26px 28px}
.rp-category-tag{
  display:block;
  margin-bottom:8px;
  color:var(--rp-gold);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.15em;
}
.rp-category h3{
  margin:0 0 10px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:27px;
  line-height:1.2;
  font-weight:500;
}
.rp-category-large h3{font-size:31px}
.rp-category p{
  margin:0;
  color:#5b574f;
  font-size:15px;
}

/* process */
.rp-process{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--rp-radius);
  overflow:hidden;
  margin-top:38px;
}
.rp-process-step{
  padding:34px 31px 36px;
  border-right:1px solid rgba(255,255,255,.18);
}
.rp-process-step:last-child{border-right:0}
.rp-process-step span{
  color:#e5c795;
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.rp-process-step h3{
  margin:9px 0 11px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:26px;
  font-weight:500;
}
.rp-process-step p{
  margin:0;
  color:rgba(255,255,255,.78);
}
.rp-serious{
  max-width:900px;
  margin:30px auto 0;
  padding:21px 24px;
  border-left:3px solid #e5c795;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.9);
}

/* why republic */
.rp-why-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:56px;
  align-items:start;
}
.rp-why-side{
  padding:31px;
  border:1px solid var(--rp-line);
  background:var(--rp-paper-2);
  border-radius:var(--rp-radius);
}
.rp-why-side strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:25px;
  font-weight:500;
  margin-bottom:9px;
}
.rp-why-side p{margin:0;color:#5d594f}
.rp-why-copy h2{
  margin:0 0 20px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:42px;
  line-height:1.2;
  font-weight:500;
}
.rp-why-copy p{
  margin:0 0 15px;
  font-size:18px;
  color:#4f4b44;
}
.rp-text-link{
  display:inline-block;
  margin-top:8px;
  color:#4b3b25;
  font-weight:700;
  text-underline-offset:4px;
}

/* contact panel */
.rp-contact-box{
  border-radius:var(--rp-radius);
  background:var(--rp-white);
  border:1px solid var(--rp-line);
  box-shadow:var(--rp-shadow);
  overflow:hidden;
}
.rp-contact-box-head{
  padding:39px 40px 30px;
  text-align:center;
  border-bottom:1px solid var(--rp-line);
}
.rp-contact-box-head h2{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:39px;
  font-weight:500;
}
.rp-contact-box-head p{
  max-width:760px;
  margin:15px auto 0;
  color:#5c574f;
  font-size:17px;
}
.rp-contact-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
}
.rp-contact-card{
  padding:30px;
  text-decoration:none;
  text-align:center;
  border-right:1px solid var(--rp-line);
}
.rp-contact-card:last-child{border-right:0}
.rp-contact-card:hover{background:#f8f1e5}
.rp-contact-card span{
  display:block;
  color:var(--rp-gold);
  font-size:11px;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin-bottom:7px;
}
.rp-contact-card strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:22px;
  font-weight:500;
  margin-bottom:5px;
}
.rp-contact-card small{
  color:#69645b;
  font-size:14px;
}

/* subtle SEO/local block */
.rp-local{
  max-width:900px;
  margin:45px auto 0;
  text-align:center;
  color:#6a655c;
  font-size:14px;
}
.rp-local strong{color:#4c483f}

/* footer */
.rp-footer{
  background:#1b211a;
  color:white;
  padding:46px 0 35px;
}
.rp-footer-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:45px;
}
.rp-footer-brand strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:28px;
  font-weight:500;
}
.rp-footer-brand p{
  max-width:500px;
  margin:11px 0 0;
  color:rgba(255,255,255,.67);
  font-size:14px;
}
.rp-footer-links{
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  gap:16px 22px;
  flex-wrap:wrap;
}
.rp-footer-links a{
  color:rgba(255,255,255,.83);
  text-decoration:none;
  font-size:14px;
}
.rp-footer-links a:hover{color:white}
.rp-copyright{
  margin-top:31px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.13);
  color:rgba(255,255,255,.48);
  font-size:12px;
}

/* responsive */
@media(max-width:980px){
  .rp-header-row{align-items:flex-start;flex-direction:column;padding-top:18px;padding-bottom:18px;gap:15px}
  .rp-nav{justify-content:flex-start}
  .rp-hero-grid{grid-template-columns:minmax(0,1fr) minmax(310px,.72fr);gap:38px}
  .rp-hero-visual{height:480px}
  .rp-intro-grid,.rp-why-grid{grid-template-columns:1fr}
  .rp-category,.rp-category-large{grid-column:span 6}
}
@media(max-width:760px){
  .rp-topbar{display:none}
  .rp-shell{padding-left:19px;padding-right:19px}
  .rp-header{position:static}
  .rp-header-row{
    min-height:76px;
    padding-top:11px;
    padding-bottom:11px;
    flex-direction:row;
    align-items:center;
    gap:12px;
  }
  .rp-brand{min-width:0}
  .rp-nav{margin-left:auto;gap:0}
  .rp-nav a:not(.rp-nav-cta){display:none}
  .rp-nav-cta{padding:8px 12px}
  .rp-hero{
    min-height:auto;
  }
  .rp-hero-grid{
    min-height:auto;
    grid-template-columns:1fr;
    gap:0;
  }
  .rp-hero-content{padding:40px 0 34px}
  .rp-kicker{margin-bottom:11px;font-size:10px;letter-spacing:.14em}
  .rp-hero h1{font-size:37px;line-height:1.04}
  .rp-hero-lead{margin-top:16px;font-size:17px;line-height:1.43}
  .rp-hero-assurance{margin-top:14px;padding:8px 0 8px 14px;font-size:14px;line-height:1.42}
  .rp-hero-actions{
    margin-top:19px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
  }
  .rp-btn{min-height:52px;padding:7px 10px;font-size:13px;line-height:1.25;text-align:center}
  .rp-hero-note{margin-top:13px;font-size:12px}
  .rp-hero-visual{
    width:calc(100% + 38px);
    height:220px;
    margin:0 -19px;
    border-left:0;
    border-right:0;
  }
  .rp-hero-visual::before{display:none}
  .rp-hero-visual img{object-position:50% 39%}
  .rp-choice-grid,.rp-trust-grid,.rp-process,.rp-contact-grid,.rp-footer-grid{grid-template-columns:1fr}
  .rp-choice,.rp-process-step,.rp-contact-card{border-right:0;border-bottom:1px solid var(--rp-line)}
  .rp-process-step{border-bottom-color:rgba(255,255,255,.18)}
  .rp-choice:last-child,.rp-process-step:last-child,.rp-contact-card:last-child{border-bottom:0}
  .rp-section{padding:62px 0}
  .rp-section-tight{padding:49px 0}
  .rp-intro-copy h2,.rp-why-copy h2{font-size:35px}
  .rp-category,.rp-category-large{grid-column:1/-1}
  .rp-category-image,.rp-category-large .rp-category-image{height:230px}
  .rp-footer-links{justify-content:flex-start}
}
@media(max-width:480px){
  .rp-brand strong{font-size:25px}
  .rp-brand span{font-size:9px;letter-spacing:.04em}
  .rp-hero h1{font-size:35px}
  .rp-hero-note{line-height:1.5}
  .rp-hero-visual{height:210px}
  .rp-hero-visual figcaption{left:19px;right:19px;bottom:18px}
  .rp-hero-visual figcaption strong{font-size:18px}
  .rp-category-image,.rp-category-large .rp-category-image{height:190px}
  .rp-contact-box-head{padding:31px 22px 25px}
  .rp-contact-box-head h2{font-size:32px}
}
@media(max-width:360px){
  .rp-eyebrow{font-size:11px;letter-spacing:.10em;overflow-wrap:anywhere}
  .rp-category h3,.rp-contact-box-head h2{overflow-wrap:anywhere}
}


/* ============================================================
   LESBARKEIT & KONTAKT – Optimierung für ältere Besucher (50+)
   Ergänzungsebene, überschreibt bewusst Werte von oben.
   ============================================================ */

/* --- Grundschrift größer und ruhiger --- */
body{
  font-size:18px;
  line-height:1.72;
}

/* --- Sichtbarer Tastatur-Fokus (Barrierefreiheit) --- */
a:focus-visible,
button:focus-visible{
  outline:3px solid var(--rp-gold);
  outline-offset:3px;
  border-radius:3px;
}

/* --- Sprunglink für Screenreader/Tastatur --- */
.rp-skip{
  position:absolute;
  left:-9999px;
  top:0;
  z-index:100;
  background:var(--rp-olive);
  color:#fff;
  padding:12px 18px;
  text-decoration:none;
  font-weight:700;
}
.rp-skip:focus{left:12px;top:12px}

/* --- Topbar: konkrete Zusagen, lesbar --- */
.rp-topbar{
  font-size:15px;
  color:rgba(255,255,255,.92);
}
.rp-topbar .rp-shell{min-height:40px}

/* --- Telefonnummer im Kopfbereich --- */
.rp-header-phone{
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin-left:auto;
  padding:8px 18px;
  text-decoration:none;
  border-left:1px solid var(--rp-line);
  border-right:1px solid var(--rp-line);
  line-height:1.25;
}
.rp-header-phone span{
  font-size:13px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#6c675d;
}
.rp-header-phone strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:26px;
  font-weight:500;
  color:#2c3428;
  white-space:nowrap;
}
.rp-header-phone:hover strong{color:var(--rp-gold)}
.rp-header-row{gap:20px}
.rp-nav{gap:22px}
.rp-nav a{font-size:17px;color:#35382f}
.rp-nav-cta{padding:12px 18px;font-size:17px}

/* --- Hero --- */
.rp-hero-lead{font-size:21px;line-height:1.6}
.rp-promises{
  list-style:none;
  margin:20px 0 0;
  padding:0;
  max-width:640px;
}
.rp-promises li{
  position:relative;
  padding:7px 0 7px 34px;
  color:#f4ead7;
  font-size:18px;
  font-weight:600;
  line-height:1.45;
}
.rp-promises li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:7px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:23px;
  height:23px;
  border-radius:50%;
  background:var(--rp-gold);
  color:#fff;
  font-size:13px;
  font-weight:800;
}
.rp-hero-actions{margin-top:28px;gap:14px}
.rp-btn{
  min-height:58px;
  padding:0 24px;
  font-size:18px;
}
.rp-btn-call{
  flex-direction:column;
  justify-content:center;
  gap:1px;
  padding:10px 26px;
  line-height:1.2;
}
.rp-btn-call span{
  font-size:13px;
  letter-spacing:.11em;
  text-transform:uppercase;
  font-weight:800;
  color:#5d5a4d;
}
.rp-btn-call strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:25px;
  font-weight:600;
  letter-spacing:.01em;
}
.rp-hero-note{font-size:15px;color:rgba(255,255,255,.84)}

/* --- Kontaktleiste unter dem Hero --- */
.rp-choice{padding:28px}
.rp-choice-label{font-size:12px;color:#5f584d}
.rp-choice strong{font-size:24px;overflow-wrap:anywhere}
.rp-choice small{font-size:16px;color:#565148}

/* --- Fließtext in Abschnitten --- */
.rp-eyebrow{font-size:13px}
.rp-section-head p{font-size:20px;color:#4b4840}
.rp-intro-copy p{font-size:19px;color:#413e37}
.rp-intro-call{
  margin-top:22px;
  padding:16px 20px;
  background:var(--rp-paper-2);
  border-left:4px solid var(--rp-gold);
  font-size:19px;
  font-weight:600;
}
.rp-intro-call a{
  font-family:Georgia,"Times New Roman",serif;
  font-size:26px;
  font-weight:600;
  white-space:nowrap;
  text-decoration:none;
  color:#33402f;
  border-bottom:2px solid var(--rp-gold-soft);
}
.rp-reassure p{color:rgba(255,255,255,.9);font-size:17px}
.rp-reassure li,.rp-checklist li{font-size:17px;color:#fff}
.rp-category p{font-size:17px;color:#4d4941}
.rp-category-tag{font-size:12px}
.rp-trust-card p{font-size:17px;color:#4d4941}
.rp-process-step p{color:rgba(255,255,255,.88);font-size:17px}
.rp-serious{font-size:17px;color:rgba(255,255,255,.94)}
.rp-why-copy p{font-size:19px;color:#443f39}
.rp-why-side p{font-size:18px;color:#4b4740}
.rp-text-link{font-size:18px}

/* --- Hinweis unter den Ankaufskategorien --- */
.rp-unsure{
  max-width:840px;
  margin:34px auto 0;
  padding:20px 24px;
  text-align:center;
  background:var(--rp-paper-2);
  border:1px solid var(--rp-line);
  border-radius:var(--rp-radius);
  font-size:19px;
  color:#3f3b34;
}
.rp-unsure a{
  font-weight:700;
  color:#33402f;
  white-space:nowrap;
}

/* --- Sicherheiten-Karten --- */
.rp-assure-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.rp-assure-card{
  background:var(--rp-paper);
  border:1px solid var(--rp-line);
  border-top:4px solid var(--rp-gold);
  border-radius:var(--rp-radius);
  padding:26px 26px 28px;
}
.rp-assure-card h3{
  margin:0 0 9px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:25px;
  font-weight:500;
}
.rp-assure-card p{
  margin:0;
  font-size:17px;
  color:#4d4941;
}

/* --- Kontaktbereich --- */
.rp-contact-box-head p{font-size:19px;color:#4b4840}
.rp-contact-card{padding:34px 26px}
.rp-contact-card span{font-size:12px}
.rp-contact-card strong{font-size:26px;overflow-wrap:anywhere}
.rp-contact-card small{font-size:16px;color:#565148}
.rp-contact-foot{
  margin:0;
  padding:20px 26px;
  text-align:center;
  background:var(--rp-paper-2);
  border-top:1px solid var(--rp-line);
  font-size:17px;
  font-weight:600;
  color:#3f3b34;
}
.rp-local{font-size:16px;color:#54504a}
.rp-local strong{color:#3d3a34}

/* --- Footer --- */
.rp-footer-brand p{font-size:16px;color:rgba(255,255,255,.78)}
.rp-footer-contact{margin-top:14px}
.rp-footer-contact a{
  font-family:Georgia,"Times New Roman",serif;
  font-size:21px;
  color:#e8d3ac;
  text-decoration:none;
  line-height:1.7;
  overflow-wrap:anywhere;
}
.rp-footer-contact a:hover{color:#fff}
.rp-footer-links a{font-size:16px;color:rgba(255,255,255,.9)}
.rp-copyright{font-size:13px;color:rgba(255,255,255,.66)}

/* --- Feste Kontaktleiste am unteren Rand (nur Mobil) --- */
.rp-callbar{display:none}

/* ============================================================
   Mobil: Navigation bleibt sichtbar, Telefon immer erreichbar
   ============================================================ */
@media(max-width:980px){
  .rp-header-row{flex-direction:row;flex-wrap:wrap;align-items:center}
  .rp-nav{width:100%;justify-content:flex-start}
}

@media(max-width:760px){
  /* Zusagen stehen mobil prominent im Hero - Leiste bleibt ausgeblendet */
  .rp-topbar{display:none}

  .rp-header-row{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    padding-top:12px;
    padding-bottom:12px;
  }
  .rp-header-phone{
    margin-left:auto;
    padding:6px 0 6px 14px;
    border-right:0;
  }
  .rp-header-phone span{font-size:11px}
  .rp-header-phone strong{font-size:21px}

  /* Navigationslinks bleiben erreichbar (vorher ausgeblendet) */
  .rp-nav{
    width:100%;
    margin-left:0;
    gap:8px;
    flex-wrap:wrap;
  }
  .rp-nav a:not(.rp-nav-cta){
    display:inline-block;
    padding:7px 11px;
    font-size:15px;
    border:1px solid var(--rp-line);
    border-radius:4px;
    background:var(--rp-white);
    text-decoration:none;
  }
  .rp-nav-cta{padding:8px 14px;font-size:15px}

  .rp-hero h1{font-size:34px}
  .rp-hero-lead{font-size:18px}
  .rp-promises li{font-size:17px;padding-left:31px}
  .rp-hero-actions{grid-template-columns:1fr;gap:11px}
  .rp-btn{min-height:60px;font-size:17px}
  .rp-btn-call strong{font-size:26px}
  .rp-btn-call span{font-size:12px}

  .rp-assure-grid{grid-template-columns:1fr}
  .rp-intro-call{font-size:18px}
  .rp-intro-call a{display:block;margin-top:6px;font-size:28px}
  .rp-unsure{font-size:18px}
  .rp-unsure a{display:block;margin-top:8px}

  /* Platz für die feste Kontaktleiste */
  body{padding-bottom:82px}
  .rp-callbar{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:60;
    background:#2d3a29;
    border-top:1px solid rgba(0,0,0,.2);
    box-shadow:0 -6px 22px rgba(0,0,0,.18);
  }
  .rp-callbar a{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    min-height:72px;padding:8px 4px;text-decoration:none;
    color:#fff;
    font-size:16px;font-weight:800;line-height:1.2;
  }
  .rp-callbar a+a{border-left:1px solid rgba(255,255,255,.22)}
  .rp-callbar a span{margin-top:3px;font-size:12px;font-weight:600;opacity:.88;overflow-wrap:anywhere;text-align:center}
}

@media(max-width:480px){
  .rp-hero h1{font-size:32px}
  .rp-header-phone strong{font-size:19px}
  .rp-brand strong{font-size:23px}
  .rp-choice strong,.rp-contact-card strong{font-size:22px}
  .rp-callbar a{font-size:18px}
}

/* --- Korrekturen --- */
.rp-why-side p strong{
  display:inline;
  font-family:inherit;
  font-size:inherit;
  font-weight:800;
  margin:0;
  color:#33402f;
  white-space:nowrap;
}
.rp-footer-links{
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
}
@media(max-width:760px){
  .rp-footer-links{align-items:flex-start}
}


/* E-Mail-Zeile im Hinweiskasten */
.rp-intro-mail{
  display:block;
  margin-top:6px;
  font-size:17px;
  font-weight:600;
  color:#33402f;
  text-decoration:none;
  border-bottom:2px solid var(--rp-gold-soft);
  width:fit-content;
  overflow-wrap:anywhere;
}

/* "Warum Republic Past" – mittig gesetzt */
.rp-why-mittig{margin-bottom:0}
.rp-why-mittig h2::after{
  content:"";
  display:block;
  width:54px;
  height:3px;
  margin:18px auto 0;
  background:linear-gradient(90deg,var(--rp-gold),var(--rp-gold-soft));
}
.rp-why-mittig p:not(.rp-eyebrow){
  font-size:19px;
  color:#4b473f;
}

/* ============================================================
   Mobil-Feinschliff Startseite (Korrektur 21.08.)
   Kompakter Kopf, engere Abschnitte, kürzere Seite.
   ============================================================ */
@media(max-width:760px){
  /* Kopf: Logo und Telefon in EINER Zeile, Menü kompakt darunter */
  .rp-header-row{
    padding-top:10px;
    padding-bottom:10px;
    gap:6px 10px;
  }
  .rp-brand{flex:1 1 auto;min-width:0}
  .rp-brand strong{font-size:22px}
  .rp-brand span{font-size:9px;letter-spacing:.06em}
  .rp-header-phone{
    flex:0 0 auto;
    margin-left:auto;
    padding:2px 0 2px 10px;
    text-align:right;
  }
  .rp-header-phone span{font-size:9px;letter-spacing:.04em}
  .rp-header-phone strong{font-size:17px}
  .rp-nav{
    flex:1 1 100%;
    margin-left:0;
    gap:5px;
  }
  .rp-nav a:not(.rp-nav-cta){
    padding:5px 9px;
    font-size:13px;
    border-radius:3px;
  }
  .rp-nav-cta{padding:5px 11px;font-size:13px;font-weight:700}

  /* Hero enger */
  .rp-hero-content{padding:30px 0 26px}
  .rp-hero h1{font-size:31px;line-height:1.1}
  .rp-hero-lead{margin-top:12px;font-size:16px}
  .rp-promises{margin-top:14px}
  .rp-promises li{padding:5px 0 5px 29px;font-size:16px}
  .rp-hero-actions{margin-top:15px;gap:8px}
  .rp-btn{min-height:52px}
  .rp-btn-call strong{font-size:22px}
  .rp-hero-note{margin-top:11px}
  .rp-hero-visual{height:190px}

  /* Kontaktwege unter dem Hero: kompakte Zeilen */
  .rp-choice{padding:15px 19px 16px}
  .rp-choice::before{width:34px;height:2px;left:19px}
  .rp-choice-label{margin-bottom:3px;font-size:11px}
  .rp-choice strong{font-size:19px}
  .rp-choice small{font-size:13px}

  /* Abschnitte enger */
  .rp-section{padding:44px 0}
  .rp-section-head{margin-bottom:26px}
  .rp-section-head p{font-size:17px;margin-top:12px}
  .rp-intro-copy h2,.rp-why-copy h2{font-size:29px}
  .rp-intro-copy p{font-size:17px}
  .rp-intro-grid{gap:26px}
  .rp-category-image,.rp-category-large .rp-category-image{height:180px}
  .rp-category-body{padding:19px 20px 21px}
  .rp-category h3,.rp-category-large h3{font-size:23px}
  .rp-category p{font-size:15px}
  .rp-category-grid{gap:14px}
  .rp-reassure{padding:24px 22px 26px}
  .rp-reassure h3{font-size:22px}
  .rp-checklist li{padding:8px 0 8px 24px;font-size:16px}
  .rp-process-step{padding:24px 22px 26px}
  .rp-process-step h3{font-size:22px}
  .rp-serious{margin-top:20px;padding:16px 18px;font-size:15px}
  .rp-assure-card{padding:19px 20px 21px}
  .rp-assure-card h3{font-size:21px;margin-bottom:6px}
  .rp-assure-card p{font-size:15px}
  .rp-assure-grid{gap:12px}
  .rp-unsure{margin-top:24px;font-size:16px;padding:16px 18px}
  .rp-contact-box-head{padding:24px 19px 20px}
  .rp-contact-box-head h2{font-size:27px}
  .rp-contact-box-head p{font-size:16px;margin-top:10px}
  .rp-contact-card{padding:20px 19px}
  .rp-contact-card strong{font-size:20px}
  .rp-contact-foot{padding:14px 18px;font-size:14px}
  .rp-local{margin-top:26px;font-size:13px}
  .rp-why-mittig p:not(.rp-eyebrow){font-size:17px}
  .rp-footer{padding:34px 0 26px}
  .rp-footer-grid{gap:22px}
  .rp-copyright{margin-top:20px;padding-top:16px}
}
@media(max-width:400px){
  .rp-brand strong{font-size:20px}
  .rp-header-phone strong{font-size:16px}
  .rp-nav a:not(.rp-nav-cta){padding:4px 7px;font-size:12px}
  .rp-nav-cta{padding:4px 9px;font-size:12px}
  .rp-hero h1{font-size:28px}
}

/* ============================================================
   Korrektur 21.08.: Kopfzeile im Zwischenbereich (981–1180 px)
   Vorher unabgedeckt – Menü rutschte versetzt nach oben.
   Jetzt: Logo + Telefon in Zeile 1, Menü sauber in Zeile 2.
   ============================================================ */
@media (min-width:761px) and (max-width:1180px){
  .rp-header-row{
    flex-wrap:wrap;
    align-items:center;
    min-height:0;
    padding-top:14px;
    padding-bottom:16px;
    gap:8px 18px;
  }
  .rp-brand{order:1;min-width:0;flex:0 1 auto}
  .rp-header-phone{
    order:2;
    margin-left:auto;
    border-right:0;
    padding-right:0;
  }
  .rp-header-phone span{white-space:nowrap}
  .rp-nav{
    order:3;
    width:100%;
    justify-content:flex-start;
    gap:8px 20px;
    margin-top:2px;
  }
}

/* ============================================================
   Korrektur 21.08. (2): Überbreite am Smartphone beseitigt.
   Die E-Mail-Adresse im Hinweiskasten durfte nicht umbrechen
   und schob die Seite über den Bildschirmrand hinaus – Safari
   zoomte deshalb die gesamte Startseite heraus.
   ============================================================ */
@media(max-width:760px){
  .rp-intro-call{
    min-width:0;
    max-width:100%;
    padding:14px 16px;
  }
  .rp-intro-call a{
    white-space:normal;
    overflow-wrap:anywhere;
    font-size:22px;
  }
  .rp-intro-call a.rp-intro-mail{font-size:17px;border-bottom-width:1px}
  .rp-unsure a{white-space:normal;overflow-wrap:anywhere}
  .rp-btn-call strong{white-space:normal}
}
/* Sicherheitsnetz: nichts darf die Seite seitlich aufschieben */
html,body{overflow-x:hidden;max-width:100%}


/* ============================================================
   Feinschliff 21.08. – Kopf ohne Telefonzeile, Hero ohne Knöpfe
   Die Kontaktwege stehen als drei gleichwertige Felder direkt
   unter dem Hero. Der Kopfbereich bleibt dadurch ruhig und
   die Startseite wiederholt die Rufnummer nicht mehr mehrfach.
   ============================================================ */

/* Kopfzeile: Marke links, Menü rechts – klassisch und aufgeräumt */
.rp-header-row{gap:40px}
.rp-nav{margin-left:auto}
.rp-nav a{font-size:17px}
.rp-nav-cta{padding:11px 20px}

/* Hero: die Zusagen tragen den Abschnitt, darunter folgt der Kontakt */
.rp-hero-content{padding-bottom:70px}
.rp-promises{margin-top:26px}
.rp-promises li{
  padding:9px 0 9px 36px;
  font-size:19px;
  font-weight:650;
}
.rp-promises li::before{
  width:25px;
  height:25px;
  top:9px;
  font-size:14px;
}
.rp-hero-note{
  margin-top:30px;
  padding-top:18px;
  border-top:1px solid rgba(231,201,150,.28);
  font-size:14px;
  color:rgba(255,255,255,.72);
  letter-spacing:.02em;
}

/* Kontaktfelder unter dem Hero etwas kräftiger – sie sind jetzt
   die zentrale Handlungsaufforderung der Startseite */
.rp-choice{padding:32px 28px 34px}
.rp-choice strong{font-size:26px}
.rp-choice small{font-size:16px}

/* Der Hinweiskasten im Abschnitt "Einfacher erster Schritt"
   entfällt – der Absatz davor schließt den Gedanken ab */
.rp-intro-copy p:last-child{margin-bottom:0}

@media(max-width:760px){
  .rp-header-row{gap:9px;min-height:0;padding-top:12px;padding-bottom:11px}
  .rp-nav{margin-top:1px}
  .rp-hero-content{padding:34px 0 30px}
  .rp-promises{margin-top:20px}
  .rp-promises li{padding:7px 0 7px 31px;font-size:17px}
  .rp-promises li::before{width:22px;height:22px;top:7px;font-size:12px}
  .rp-hero-note{margin-top:22px;padding-top:14px;font-size:13px}
  .rp-hero-visual{height:260px}          /* vorher 190px – Motiv war angeschnitten */
  .rp-hero-visual img{object-position:50% 46%}
  .rp-choice{padding:22px 19px 24px}
  .rp-choice strong{font-size:22px}
  .rp-choice small{font-size:15px}
}
@media(max-width:480px){
  .rp-hero-visual{height:240px}
}

/* ============================================================
   Großer Abschnittstitel (Ankaufsschwerpunkte)
   Trägt den Abschnitt allein – ohne Kleinzeile darüber.
   ============================================================ */
.rp-head-gross{max-width:820px;margin-bottom:52px}
.rp-head-gross h2{
  font-size:clamp(40px,4.6vw,62px);
  line-height:1.05;
  letter-spacing:-.02em;
  font-weight:500;
}
.rp-head-gross h2::after{
  content:"";
  display:block;
  width:64px;
  height:3px;
  margin:22px auto 0;
  background:linear-gradient(90deg,var(--rp-gold),var(--rp-gold-soft));
}
.rp-head-gross p{
  margin-top:22px;
  font-size:19px;
  color:#4e4a42;
}
@media(max-width:760px){
  .rp-head-gross{margin-bottom:30px}
  .rp-head-gross h2{font-size:34px;line-height:1.12}
  .rp-head-gross h2::after{width:52px;margin-top:16px}
  .rp-head-gross p{margin-top:16px;font-size:17px}
}
