@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/cormorant-garamond-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url(../fonts/geist-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url(../fonts/geist-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ---------- Farben: dunkel (Standard) und hell ---------- */
html[data-theme] body {
    --rx-bg: #0B0B0B; --rx-surface: #141414; --rx-surface-2: #1D1D1C; --rx-line: #2A2A28;
    --rx-text: #F3F1EC; --rx-muted: #9C9993; --rx-inv: #F3F1EC; --rx-on-inv: #0B0B0B; --rx-chip: #232321;
}
html[data-theme="light"] body {
    --rx-bg: #FFFFFF; --rx-surface: #F5F4F1; --rx-surface-2: #ECEAE5; --rx-line: #E2DFDA;
    --rx-text: #121212; --rx-muted: #6A6763; --rx-inv: #121212; --rx-on-inv: #FFFFFF; --rx-chip: #EFEDE9;
}
html[data-theme] body {
    --e-global-color-rxbg: var(--rx-bg); --e-global-color-rxsurface: var(--rx-surface); --e-global-color-rxsurface2: var(--rx-surface-2);
    --e-global-color-rxline: var(--rx-line); --e-global-color-rxtext: var(--rx-text); --e-global-color-rxmuted: var(--rx-muted);
    --e-global-color-rxinv: var(--rx-inv); --e-global-color-rxoninv: var(--rx-on-inv); --e-global-color-rxchip: var(--rx-chip);
    --e-global-color-primary: var(--rx-text); --e-global-color-secondary: var(--rx-text); --e-global-color-text: var(--rx-muted); --e-global-color-accent: var(--rx-inv);
    --immoprex-text: var(--rx-text); --immoprex-bg: var(--rx-bg); --immoprex-muted: var(--rx-muted); --immoprex-line: var(--rx-line);
    --immoprex-surface: var(--rx-surface); --immoprex-surface-2: var(--rx-surface-2); --immoprex-chip: var(--rx-chip);
    --immoprex-inverse: var(--rx-inv); --immoprex-on-inverse: var(--rx-on-inv); --immoprex-accent-font: 'Cormorant Garamond', Georgia, serif;
    background: var(--rx-bg); color: var(--rx-text);
    font-family: 'Geist', system-ui, sans-serif; font-size: 17px; line-height: 1.6;
    -webkit-font-smoothing: antialiased; transition: background-color .25s ease, color .25s ease;
}
.reich-site a { color: inherit; }
.reich-site a:hover { color: inherit; opacity: .85; }
.reich-site ::selection { background: var(--rx-inv); color: var(--rx-on-inv); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* ---------- Typo-Akzent: kursive Serifen-Wörter in Überschriften ---------- */
.reich-site .elementor-heading-title em, .reich-site h1 em, .reich-site h2 em, .reich-site h3 em {
    font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-weight: 500; font-size: 1.12em; letter-spacing: -.01em;
}

/* ---------- Logo als Maske, damit es die Textfarbe annimmt ---------- */
.rx-logo { display: block; background: currentColor; -webkit-mask: center / contain no-repeat; mask: center / contain no-repeat; }
.rx-logo--mark { width: 60px; height: 51px; -webkit-mask-image: url(../img/logo-mark.svg); mask-image: url(../img/logo-mark.svg); }
.rx-logo--full { width: 186px; height: 155px; -webkit-mask-image: url(../img/logo-full.svg); mask-image: url(../img/logo-full.svg); }

/* ---------- Buttons: Pille mit Pfeil im Kreis ---------- */
.rx-btn, .reich-site .rx-b .elementor-button {
    --rx-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    display: inline-flex; align-items: center; gap: 14px; padding: 5px 5px 5px 22px; min-height: 46px;
    border: 1px solid var(--rx-inv); border-radius: 999px; background: var(--rx-inv); color: var(--rx-on-inv) !important;
    font-family: 'Geist', sans-serif; font-size: 14px; font-weight: 500; line-height: 1.2; text-decoration: none !important; white-space: nowrap;
    transition: opacity .2s ease; fill: currentColor;
}
.rx-btn::after, .reich-site .rx-b .elementor-button-content-wrapper::after {
    content: ""; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--rx-on-inv);
    -webkit-mask: var(--rx-arrow) center / 16px no-repeat, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
    mask: var(--rx-arrow) center / 16px no-repeat, linear-gradient(#000 0 0); mask-composite: exclude;
    transition: transform .2s ease;
}
.reich-site .rx-b .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 14px; }
.rx-btn:hover::after, .reich-site .rx-b .elementor-button:hover .elementor-button-content-wrapper::after { transform: translateX(2px); }
.rx-btn:hover, .reich-site .rx-b .elementor-button:hover { opacity: 1; }
.reich-site .rx-b--outline .elementor-button { background: transparent; border-color: var(--rx-text); color: var(--rx-text) !important; }
.reich-site .rx-b--outline .elementor-button-content-wrapper::after { background: var(--rx-inv); }
.rx-btn--glass, .reich-site .rx-b--glass .elementor-button { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .7); color: #fff !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.rx-btn--glass::after, .reich-site .rx-b--glass .elementor-button-content-wrapper::after { background: #fff; }

/* ---------- Bühne (großes Bild oben) ---------- */
.reich-site .rx-hero, .reich-site .rx-band { --width: auto; width: auto; max-width: 1392px; margin-left: auto !important; margin-right: auto !important; overflow: hidden; }
@media (max-width: 1440px) { .reich-site .rx-hero, .reich-site .rx-band { margin-left: 24px !important; margin-right: 24px !important; } }

/* ---------- Kopfzeile ---------- */
.rx-header {
    position: absolute; z-index: 100; top: 24px; left: 50%; transform: translateX(-50%);
    width: min(1392px, calc(100% - 48px)); height: 92px; padding: 0 64px;
    display: flex; align-items: center; justify-content: space-between; color: #fff; pointer-events: none;
}
.rx-header > * { pointer-events: auto; }
.rx-header__logo { color: #fff !important; }
.rx-nav { position: absolute; top: 0; left: 50%; transform: translateX(-50%); padding: 20px 30px; border-radius: 0 0 26px 26px; background: var(--rx-bg); transition: background-color .25s ease; }
.rx-menu, .rx-menu ul { list-style: none; margin: 0; padding: 0; }
.rx-menu { display: flex; gap: 26px; }
.rx-menu > li { position: relative; }
.rx-menu a { display: inline-flex; align-items: center; gap: 4px; color: var(--rx-muted) !important; font-size: 14px; font-weight: 500; text-decoration: none !important; white-space: nowrap; }
.rx-menu > li.current-menu-item > a, .rx-menu > li.current-menu-ancestor > a, .rx-menu a:hover { color: var(--rx-text) !important; opacity: 1; }
.rx-menu > li.menu-item-has-children > a::after { content: ""; width: 6px; height: 6px; margin-left: 2px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.rx-menu .sub-menu { position: absolute; top: calc(100% + 20px); left: -18px; min-width: 230px; padding: 10px; border: 1px solid var(--rx-line); border-radius: 16px; background: var(--rx-bg); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: all .18s ease; }
.rx-menu .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -22px; height: 22px; }
.rx-menu li:hover > .sub-menu, .rx-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.rx-menu .sub-menu a { display: block; padding: 10px 12px; border-radius: 10px; }
.rx-menu .sub-menu a:hover { background: var(--rx-surface-2); }
.rx-header__actions { display: flex; align-items: center; gap: 12px; }
.rx-switch { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 999px; background: rgba(255, 255, 255, .12); cursor: pointer; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.rx-switch__opt { width: 34px; height: 34px; border-radius: 50%; position: relative; }
.rx-switch__opt::after { content: ""; position: absolute; inset: 9px; background: #fff; -webkit-mask: center / contain no-repeat; mask: center / contain no-repeat; }
.rx-switch__opt--dark::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 9.5A5.5 5.5 0 016.5 3a5.5 5.5 0 106.5 6.5z' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 9.5A5.5 5.5 0 016.5 3a5.5 5.5 0 106.5 6.5z' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.rx-switch__opt--light::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M8 1.5v1.5M8 13v1.5M1.5 8H3M13 8h1.5M3.4 3.4l1 1M11.6 11.6l1 1M3.4 12.6l1-1M11.6 4.4l1-1' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M8 1.5v1.5M8 13v1.5M1.5 8H3M13 8h1.5M3.4 3.4l1 1M11.6 11.6l1 1M3.4 12.6l1-1M11.6 4.4l1-1' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E"); }
html[data-theme="dark"] .rx-switch__opt--dark, html[data-theme="light"] .rx-switch__opt--light { background: #fff; }
html[data-theme="dark"] .rx-switch__opt--dark::after, html[data-theme="light"] .rx-switch__opt--light::after { background: #0B0B0B; }
.rx-burger { display: none; width: 46px; height: 46px; border: 1px solid rgba(255, 255, 255, .6); border-radius: 50%; background: rgba(255, 255, 255, .08); cursor: pointer; padding: 0; position: relative; }
.rx-burger span:not(.screen-reader-text) { position: absolute; left: 14px; right: 14px; height: 1.5px; background: #fff; transition: transform .2s; }
.rx-burger span:nth-child(1) { top: 18px; } .rx-burger span:nth-child(2) { top: 26px; }
.rx-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(4px) rotate(45deg); }
.rx-burger[aria-expanded="true"] span:nth-child(2) { transform: translateY(-4px) rotate(-45deg); }
.rx-mobile { position: fixed; inset: 0; z-index: 90; padding: 140px 24px 40px; background: var(--rx-bg); overflow-y: auto; }
.rx-mobile[hidden] { display: none; }
.rx-mobile__menu, .rx-mobile__menu ul { list-style: none; margin: 0; padding: 0; }
.rx-mobile__menu > li { border-bottom: 1px solid var(--rx-line); padding: 14px 0; }
.rx-mobile__menu a { font-size: 22px; font-weight: 500; text-decoration: none !important; }
.rx-mobile__menu .sub-menu { padding: 8px 0 0 2px; display: grid; gap: 6px; }
.rx-mobile__menu .sub-menu a { font-size: 16px; color: var(--rx-muted) !important; }
.rx-mobile .rx-btn { margin-top: 28px; }
body.rx-menu-open { overflow: hidden; }
body.rx-menu-open .rx-header { position: fixed; color: var(--rx-text); }
body.rx-menu-open .rx-header__logo { color: var(--rx-text) !important; }
body.rx-menu-open .rx-burger { border-color: var(--rx-line); }
body.rx-menu-open .rx-burger span:not(.screen-reader-text) { background: var(--rx-text); }

/* Seiten ohne großes Bild oben */
.reich-no-hero .rx-header { position: relative; top: 0; margin: 24px auto 0; color: var(--rx-text); }
.reich-no-hero .rx-header__logo { color: var(--rx-text) !important; }
.reich-no-hero .rx-nav { background: var(--rx-surface); }
.reich-no-hero .rx-switch, .reich-no-hero .rx-burger { border-color: var(--rx-line); background: var(--rx-surface); }
.reich-no-hero .rx-switch__opt::after { background: var(--rx-text); }
.reich-no-hero .rx-burger span:not(.screen-reader-text) { background: var(--rx-text); }
.reich-no-hero .rx-btn--glass { background: transparent; border-color: var(--rx-text); color: var(--rx-text) !important; }
.reich-no-hero .rx-btn--glass::after { background: var(--rx-inv); }

/* ---------- Fußzeile ---------- */
.rx-footer { max-width: 1312px; margin: 0 auto; padding: 0 24px 40px; color: var(--rx-text); }
.rx-footer__grid { display: grid; grid-template-columns: 400px repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rx-line); border-bottom: 1px solid var(--rx-line); }
.rx-footer__grid > div { padding: 48px 32px 48px 0; }
.rx-footer__brand p { max-width: 300px; margin: 16px 0 0; color: var(--rx-muted); font-size: 14px; line-height: 1.5; }
.rx-footer__title { margin: 0 0 14px; font-size: 14px; font-weight: 500; }
.rx-footer__col p, .rx-footer__col li { margin: 0 0 14px; color: var(--rx-muted); font-size: 14px; line-height: 1.8; }
.rx-footer__col ul { list-style: none; margin: 0; padding: 0; }
.rx-footer a { text-decoration: none !important; }
.rx-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 24px; color: var(--rx-muted); font-size: 12px; }
.rx-footer__bottom p { margin: 0; }
.rx-footer__bottom ul { list-style: none; display: flex; flex-wrap: wrap; gap: 24px; margin: 0; padding: 0; }

/* ---------- immoprex im Reich-Look ---------- */
.reich-site .immoprex-container { max-width: 1312px; padding-left: 24px; padding-right: 24px; }
.reich-site .immoprex-single .immoprex-stage { max-width: 1392px; margin: 24px auto 56px; }
.reich-site .immoprex-single .immoprex-stage__thumbs { padding: 0 0 2px; }
.reich-no-hero .immoprex-archive .immoprex-container { padding-top: 80px; }
.reich-site .immoprex-listing, .reich-site .immoprex-form { font-family: 'Geist', sans-serif; }

/* ---------- Elementor-Feinheiten ---------- */
.reich-site .rx-toggle .elementor-toggle-item { border-bottom: 1px solid var(--rx-line); }
.reich-site .rx-toggle .elementor-toggle-item:first-child { border-top: 1px solid var(--rx-line); }
.reich-site .rx-toggle .elementor-tab-title { border: 0 !important; display: flex; justify-content: space-between; gap: 24px; }
.reich-site .rx-toggle .elementor-tab-title .elementor-toggle-icon { order: 2; flex: none; }
.reich-site .rx-toggle .elementor-tab-content { border: 0 !important; }
.reich-site .rx-toggle .elementor-tab-content h1, .reich-site .rx-toggle .elementor-tab-content h2 { font-size: 24px; margin: 32px 0 12px; color: var(--rx-text); }
.reich-site .rx-toggle .elementor-tab-content h3, .reich-site .rx-toggle .elementor-tab-content h4, .reich-site .rx-toggle .elementor-tab-content h5 { font-size: 17px; margin: 24px 0 8px; color: var(--rx-text); }
.reich-site .elementor-widget-text-editor a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.reich-site .elementor-widget-icon-list a, .reich-site .elementor-widget-icon-box a { text-decoration: none; }
.reich-site .elementor-widget-heading .elementor-heading-title { margin: 0; }
.reich-site .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.reich-site .rx-numbers .elementor-heading-title { font-variant-numeric: tabular-nums; }
.reich-site .rx-card { border: 1px solid var(--rx-line); }

/* ---------- Mobil ---------- */
@media (max-width: 1180px) {
    .rx-nav { display: none; }
    .rx-burger { display: inline-block; }
    .rx-header { padding: 0 40px; }
    .rx-footer__grid { grid-template-columns: 1fr 1fr; }
    .rx-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 1440px) and (min-width: 1181px) { .rx-header { padding: 0 64px; } }
@media (max-width: 767px) {
    .reich-site .rx-hero, .reich-site .rx-band { margin-left: 12px !important; margin-right: 12px !important; }
    .rx-header { top: 12px; width: calc(100% - 24px); padding: 0 20px; height: 76px; }
    .rx-logo--mark { width: 50px; height: 42px; }
    .rx-header__cta { display: none !important; }
    .reich-site .rx-hero, .reich-site .rx-band { margin-left: 12px !important; margin-right: 12px !important; border-radius: 20px; }
    .rx-footer__grid { grid-template-columns: 1fr; }
    .rx-footer__grid > div { padding: 32px 0 0; }
    .rx-footer__grid > div:last-child { padding-bottom: 32px; }
    .rx-footer__bottom { flex-direction: column; align-items: flex-start; }
    .reich-site .immoprex-single .immoprex-stage { margin: 12px 12px 40px; }
}
