/* ==========================================================
   Self-hosted fonts (GDPR-safe, no Google Fonts)
   Inter → declared as 'Source Sans 3' so existing CSS works unchanged
   Fraunces → declared as 'Playfair Display' so existing CSS works unchanged
   Switched 2026-04-17 · files in /fonts/
   ========================================================== */
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/inter-v20-latin_latin-ext-regular.woff2') format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/inter-v20-latin_latin-ext-500.woff2') format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/inter-v20-latin_latin-ext-600.woff2') format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/inter-v20-latin_latin-ext-700.woff2') format('woff2')}
/* Legacy CSS uses font-weight:300 (light). Use Inter 400 as the nearest fallback
   since we didn't download 300 — still readable, avoids broken fallback to Arial. */
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/inter-v20-latin_latin-ext-regular.woff2') format('woff2')}

@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/fraunces-v38-latin_latin-ext-regular.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/fraunces-v38-latin_latin-ext-500.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/fraunces-v38-latin_latin-ext-600.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/fraunces-v38-latin_latin-ext-700.woff2') format('woff2')}
/* Legacy CSS uses italic Playfair (font-style:italic). Synthesised from the
   regular Fraunces weight; browsers slant it. Acceptable for light editorial use. */
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/fraunces-v38-latin_latin-ext-regular.woff2') format('woff2')}

*{box-sizing:border-box;margin:0;padding:0}
:root{
  --slate:#1a2332;--slate2:#2c3e55;--slate3:#1e3040;
  --gold:#c9a84c;--gold2:#e8c97a;--gold3:#f5eecf;
  --white:#ffffff;--cream:#faf8f4;--gray:#f0ede8;
  --border:#e0dbd3;--muted:#8a8a8a;--text:#1c1c1c;--text2:#4a4a4a;
  --green:#4a7c59;--radius:3px;
  --shadow:0 2px 12px rgba(0,0,0,0.08);
  --shadow-h:0 8px 32px rgba(0,0,0,0.16);
}
body{font-family:'Source Sans 3',sans-serif;background:var(--cream);color:var(--text);-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100vh}
a{text-decoration:none;color:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}

/* ── NAV ── */
nav{background:var(--slate);position:sticky;top:0;z-index:300}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 40px;height:64px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo-crown{display:inline-flex;align-items:center;justify-content:center;width:42px;height:32px}
.logo-crown svg{width:100%;height:100%;display:block}
.logo-wordmark{display:flex;flex-direction:column;line-height:1;gap:2px}
.logo-prime{font-family:'Source Sans 3','Helvetica Neue',Arial,sans-serif;font-weight:900;font-size:16px;color:var(--white);letter-spacing:3px}
.logo-consilium{font-family:'Source Sans 3','Helvetica Neue',Arial,sans-serif;font-weight:600;font-size:9px;color:var(--gold);letter-spacing:2.6px}
@media (max-width:560px){
  .logo-crown{width:36px;height:28px}
  .logo-prime{font-size:14px;letter-spacing:2.4px}
  .logo-consilium{font-size:8px;letter-spacing:2.2px}
}
.nav-links{display:flex;list-style:none}
.nav-links a{font-size:13px;color:rgba(255,255,255,0.8);text-decoration:none;padding:0 14px;height:64px;display:flex;align-items:center;border-bottom:2px solid transparent;transition:all .15s;letter-spacing:0.2px}
.nav-links a:hover,.nav-links a.active{color:var(--gold);border-bottom-color:var(--gold)}
.nav-right{display:flex;align-items:center;gap:16px}
.nav-lang a{font-size:12px;color:rgba(255,255,255,0.5);margin-left:8px}
.nav-lang a.on{color:var(--gold)}
.nav-cta{background:var(--gold);color:var(--slate);border:none;padding:9px 22px;font-size:12px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:background .2s}
.nav-cta:hover{background:var(--gold2)}

/* ── HERO ── */
.hero{background:var(--slate);min-height:540px;display:flex;align-items:center;position:relative;overflow:hidden}
.hero-gradient{position:absolute;inset:0;background:linear-gradient(135deg,#1a2332 0%,#2c3e55 55%,#1e3a2f 100%)}
.hero-pattern{position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,transparent,transparent 40px,rgba(201,168,76,0.035) 40px,rgba(201,168,76,0.035) 41px)}
.hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding:60px 40px;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--gold);font-size:11px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;margin-bottom:20px}
.hero-eyebrow::before{content:'';width:28px;height:1px;background:var(--gold)}
.hero h1{font-family:'Playfair Display',serif;font-size:46px;font-weight:400;line-height:1.1;color:var(--white);margin-bottom:14px}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero-desc{font-size:15px;color:rgba(255,255,255,0.65);line-height:1.75;margin-bottom:32px;max-width:440px;font-weight:300}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap}
.btn-primary{background:var(--gold);color:var(--slate);border:none;padding:14px 28px;font-size:13px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:background .2s;display:inline-block}
.btn-primary:hover{background:var(--gold2);color:var(--slate)}
.btn-secondary{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.35);padding:13px 28px;font-size:13px;font-weight:400;cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:all .2s;display:inline-block}
.btn-secondary:hover{border-color:var(--gold);color:var(--gold)}
.hero-stats{display:flex;gap:32px;margin-top:40px;padding-top:32px;border-top:1px solid rgba(255,255,255,0.1)}
.hstat .num{font-family:'Playfair Display',serif;font-size:34px;font-weight:400;color:var(--gold);line-height:1}
.hstat .lbl{font-size:11px;color:rgba(255,255,255,0.45);letter-spacing:0.5px;margin-top:3px}

/* SEARCH CARD */
.hero-search{background:var(--white);box-shadow:0 8px 40px rgba(0,0,0,0.3)}
.hs-head{background:var(--slate2);padding:16px 24px;display:flex;gap:0}
.hs-tab{flex:1;padding:9px 0;text-align:center;font-size:12px;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;border:none;background:transparent;color:rgba(255,255,255,0.5);cursor:pointer;font-family:'Source Sans 3',sans-serif;border-bottom:2px solid transparent;transition:all .15s}
.hs-tab.on,.hs-tab:focus{color:var(--gold);border-bottom-color:var(--gold);outline:none}
.hs-body{padding:24px}
.hs-field{margin-bottom:16px}
.hs-field label{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:6px}
.hs-field select,.hs-field input{width:100%;border:1.5px solid var(--border);padding:10px 12px;font-size:14px;color:var(--text);font-family:'Source Sans 3',sans-serif;outline:none;background:var(--cream);border-radius:var(--radius);transition:border-color .15s;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px}
.hs-field input{background-image:none;padding-right:12px}
.hs-field select:focus,.hs-field input:focus{border-color:var(--gold)}
.hs-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn-hs{width:100%;background:var(--gold);color:var(--slate);border:none;padding:13px;font-size:13px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;cursor:pointer;font-family:'Source Sans 3',sans-serif;margin-top:4px;transition:background .2s}
.btn-hs:hover{background:var(--gold2)}
.hs-chips{padding:14px 24px;border-top:1px solid var(--gray);display:flex;gap:7px;flex-wrap:wrap}
.hs-chip{font-size:11px;padding:4px 11px;border:1px solid var(--border);color:var(--text2);cursor:pointer;background:var(--white);border-radius:20px;transition:all .15s;font-family:'Source Sans 3',sans-serif}
.hs-chip:hover{border-color:var(--gold);color:var(--slate)}

/* ── STATS STRIP ── */
.stats-strip{background:var(--slate3);padding:20px 40px;display:flex;justify-content:center;gap:0;border-bottom:2px solid var(--gold)}
.ss-item{flex:1;max-width:200px;text-align:center;border-right:1px solid rgba(255,255,255,0.08);padding:0 20px}
.ss-item:last-child{border-right:none}
.ss-num{font-family:'Playfair Display',serif;font-size:28px;color:var(--gold);font-weight:400;line-height:1}
.ss-lbl{font-size:11px;color:rgba(255,255,255,0.45);letter-spacing:0.5px;margin-top:3px;text-transform:uppercase}

/* ── SECTION COMMON ── */
.section-wrap{max-width:1200px;margin:0 auto;padding:0 40px}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.section-title{font-family:'Playfair Display',serif;font-size:32px;font-weight:400;color:var(--text)}

/* ── PROPERTIES ── */
.props-section{padding:64px 0}
.sec-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:16px}
.loc-tabs{display:flex;gap:0;flex-wrap:wrap}
.lt{font-size:12px;font-weight:700;padding:8px 16px;border:1.5px solid var(--border);background:var(--white);color:var(--muted);cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:all .15s;margin-left:-1px}
.lt.on{background:var(--slate);color:var(--gold);border-color:var(--slate);z-index:1}
.lt:hover:not(.on){background:var(--gray);color:var(--text)}

/* GRID */
.prop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}

/* CARD */
.pcard{background:var(--white);border:1px solid var(--border);overflow:hidden;cursor:pointer;transition:box-shadow .2s,transform .2s;display:flex;flex-direction:column}
.pcard:hover{box-shadow:var(--shadow-h);transform:translateY(-3px)}
.pcard[data-status="reserved"] .pc-photo::after{content:'Reserviert';position:absolute;inset:0;background:rgba(26,35,50,0.55);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--gold);letter-spacing:1px;text-transform:uppercase}
.pc-photo{height:200px;position:relative;overflow:hidden;background:#dce8f5;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.pc-photo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pc-photo-ph{display:flex;flex-direction:column;align-items:center;gap:6px}
.pc-photo-ph svg{width:40px;height:40px;stroke:#b0c4d8;fill:none;stroke-width:1.2}
.pc-photo-ph span{font-size:11px;color:#b0c4d8}
.pbadge{position:absolute;top:12px;left:12px;font-size:10px;font-weight:700;padding:4px 10px;letter-spacing:0.5px;text-transform:uppercase}
.bk{background:var(--slate);color:var(--gold)}
.bm{background:var(--green);color:var(--white)}
.bkm{background:var(--gold);color:var(--slate)}
.pfav{position:absolute;top:10px;right:10px;width:30px;height:30px;background:rgba(255,255,255,0.92);border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}
.pfav svg{width:14px;height:14px;stroke:#999;fill:none;stroke-width:2;transition:stroke .15s}
.pfav:hover svg,.pfav.active svg{stroke:#e53935;fill:#e53935}
.pc-body{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1}
.pc-loc{font-size:11px;color:var(--muted);margin-bottom:4px;display:flex;align-items:center;gap:4px}
.pc-loc::before{content:'';display:none}
.pc-title{font-family:'Playfair Display',serif;font-size:17px;font-weight:400;color:var(--text);margin-bottom:10px;line-height:1.25;flex:1}
.pc-price{font-size:22px;font-weight:700;color:var(--text);margin-bottom:6px;font-family:'Playfair Display',serif;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.pc-price small{font-family:'Source Sans 3',sans-serif;font-size:11px;font-weight:400;color:var(--muted)}
/* Breakdown line under the headline price — mirrors the apartment-detail
   page's "+ parking · + utilities · Warm rent" so the two views match. */
.pc-price-sub{font-family:'Source Sans 3',sans-serif;font-size:11px;font-weight:400;color:var(--muted);margin-bottom:10px;line-height:1.5}
.pc-specs{display:flex;gap:0;border:1px solid var(--border);margin-bottom:10px;background:var(--cream)}
.spec{flex:1;padding:7px 4px;text-align:center;border-right:1px solid var(--border)}
.spec:last-child{border-right:none}
.spec .v{font-size:14px;font-weight:700;color:var(--text);display:block}
.spec .k{font-size:10px;color:var(--muted);display:block}
.pc-tags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}
.ptag{font-size:10px;padding:2px 8px;background:var(--gold3);color:var(--text2);border:1px solid #e0d5b0}
.pc-foot{display:flex;align-items:center;justify-content:space-between;padding-top:11px;border-top:1px solid var(--gray);margin-top:auto}
.pc-agent{font-size:11px;color:var(--muted)}
.btn-expose{font-size:11px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:var(--slate);border:1.5px solid var(--slate);background:transparent;padding:7px 14px;cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:all .15s}
.btn-expose:hover{background:var(--slate);color:var(--gold)}

.see-all{text-align:center;margin-top:32px}
.btn-ghost{border:2px solid var(--slate);color:var(--slate);background:transparent;padding:12px 36px;font-size:13px;font-weight:700;letter-spacing:0.3px;cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:all .2s;display:inline-block}
.btn-ghost:hover{background:var(--slate);color:var(--gold)}

/* ── LOCATIONS ── */
.locs-section{background:var(--slate);padding:64px 0}
.locs-head{text-align:center;margin-bottom:40px}
.locs-head .eyebrow{color:var(--gold)}
.locs-head h2{font-family:'Playfair Display',serif;font-size:32px;font-weight:400;color:var(--white)}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}
.loc-card{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);padding:36px;position:relative;overflow:hidden;transition:background .2s;display:flex;flex-direction:column}
.loc-card:hover{background:rgba(255,255,255,0.08)}
.loc-card-num{position:absolute;right:24px;top:16px;font-family:'Playfair Display',serif;font-size:80px;font-weight:400;color:rgba(201,168,76,0.12);line-height:1}
.loc-tag{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.loc-card h3{font-family:"Playfair Display",serif;font-size:22px;font-weight:400;color:var(--white);margin-bottom:12px}
.loc-card p{font-size:13px;color:rgba(255,255,255,0.55);line-height:1.75;margin-bottom:20px;max-width:340px;font-weight:300;min-height:88px}
.loc-pills{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:24px}
.lpill{font-size:10px;padding:3px 10px;border:1px solid rgba(255,255,255,0.2);color:rgba(255,255,255,0.5);letter-spacing:0.3px}
.loc-btn{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);background:transparent;padding:9px 20px;cursor:pointer;font-family:"Source Sans 3",sans-serif;transition:all .2s}
.loc-btn:hover{background:var(--gold);color:var(--slate)}

/* ── WHY ── */
.why-section{background:var(--white);padding:64px 0;border-top:1px solid var(--border)}
.why-head{text-align:center;margin-bottom:40px}
.why-head h2{font-family:'Playfair Display',serif;font-size:32px;font-weight:400;color:var(--text)}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.why-item{padding:28px;border-right:1px solid var(--border);text-align:center}
.why-item:last-child{border-right:none}
.why-icon{width:48px;height:48px;background:var(--gold3);border:1px solid #e0d5b0;margin:0 auto 14px;display:flex;align-items:center;justify-content:center}
.why-icon svg{width:22px;height:22px;stroke:var(--gold);fill:none;stroke-width:1.5}
.why-item h3{font-family:'Playfair Display',serif;font-size:16px;font-weight:400;color:var(--text);margin-bottom:8px}
.why-item p{font-size:13px;color:var(--muted);line-height:1.65;font-weight:300}

/* ── CONTACT PAGE ── */
.page-hero{background:var(--slate);padding:60px 40px;text-align:center}
.page-hero h1{font-family:'Playfair Display',serif;font-size:42px;font-weight:400;color:var(--white);margin-bottom:8px}
.page-hero p{font-size:15px;color:rgba(255,255,255,0.6);font-weight:300}
.contact-section{padding:64px 0;flex:1 0 auto}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.ci-left .eyebrow{margin-bottom:10px}
.ci-left h2{font-family:'Playfair Display',serif;font-size:30px;font-weight:400;color:var(--text);margin-bottom:14px}
.ci-left p{font-size:14px;color:var(--muted);line-height:1.75;margin-bottom:28px;font-weight:300}
.ci-detail{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.ci-dot{width:7px;height:7px;background:var(--gold);flex-shrink:0;margin-top:6px}
.ci-text .dl{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.ci-text .dv{font-size:14px;color:var(--text)}
.cform{display:flex;flex-direction:column;gap:14px}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cg{display:flex;flex-direction:column;gap:6px}
.cg label{font-size:11px;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;color:var(--muted)}
.cg input,.cg select,.cg textarea{border:1.5px solid var(--border);padding:11px 14px;font-size:14px;color:var(--text);font-family:'Source Sans 3',sans-serif;outline:none;background:var(--white);border-radius:var(--radius);transition:border-color .15s;width:100%}
.cg input:focus,.cg select:focus,.cg textarea:focus{border-color:var(--gold)}
.cg select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:30px}
.cg textarea{height:130px;resize:vertical;min-height:100px;line-height:1.6}
.cg optgroup{font-weight:700;color:var(--slate)}
.cf-counter{font-size:11px;color:var(--muted);text-align:right;letter-spacing:0.3px;margin-top:2px}
.btn-submit{background:var(--slate);color:var(--white);border:none;padding:14px;font-size:13px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:background .2s;margin-top:4px;width:100%}
.btn-submit:hover{background:var(--gold);color:var(--slate)}
.cf-legal{font-size:11px;color:var(--muted);line-height:1.6}
.success-msg{background:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d32;padding:14px 16px;font-size:14px;border-radius:var(--radius);display:none}
.error-msg{background:#fdecea;border:1px solid #f5c2c0;color:#a02722;padding:14px 16px;font-size:13.5px;border-radius:var(--radius);margin-bottom:18px;line-height:1.55}
.error-msg strong{display:block;margin-bottom:6px;font-size:13px}
.error-msg ul{list-style:disc;padding-left:20px;margin:0}
.error-msg li{margin:2px 0}

/* ── SIMPLE PAGES ── */
.simple-page{padding:60px 0;flex:1 0 auto}
.simple-page h1{font-family:'Playfair Display',serif;font-size:34px;font-weight:400;margin-bottom:24px;color:var(--text)}
.simple-page h2{font-size:20px;font-weight:600;margin:28px 0 10px}
.simple-page p{font-size:14px;color:var(--text2);line-height:1.8;margin-bottom:12px}

/* ── FOOTER ── */
footer{background:var(--slate);padding:28px 40px;margin-top:auto}
.footer-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}
.f-logo{font-family:'Playfair Display',serif;font-size:17px;color:var(--white)}
.f-logo span{color:var(--gold)}
.f-links{display:flex;gap:24px;flex-wrap:wrap}
.f-links a{font-size:12px;color:rgba(255,255,255,0.4);transition:color .15s}
.f-links a:hover{color:var(--gold)}
.f-copy{font-size:12px;color:rgba(255,255,255,0.3)}

/* ── ADMIN ── */
.admin-wrap{max-width:900px;margin:40px auto;padding:0 20px}
.admin-wrap h1{font-family:'Playfair Display',serif;font-size:28px;margin-bottom:24px}
.admin-table{width:100%;border-collapse:collapse;background:var(--white);box-shadow:var(--shadow)}
.admin-table th{background:var(--slate);color:var(--gold);font-size:12px;letter-spacing:0.5px;text-transform:uppercase;padding:12px 16px;text-align:left}
.admin-table td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px}
.admin-table tr:last-child td{border-bottom:none}
.admin-table tr:hover td{background:var(--cream)}
.btn-del{font-size:11px;font-weight:700;color:#c0392b;border:1px solid #c0392b;background:transparent;padding:4px 10px;cursor:pointer;font-family:'Source Sans 3',sans-serif}
.btn-del:hover{background:#c0392b;color:#fff}
.admin-form{background:var(--white);padding:28px;box-shadow:var(--shadow);margin-top:32px}
.admin-form h2{font-family:'Playfair Display',serif;font-size:22px;margin-bottom:20px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* ── RESPONSIVE ── */

/* Favourites counter (desktop nav) */
.nav-favs {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 4px;
  transition: color .15s, border-color .15s;
  margin-right: 12px;
}
.nav-favs:hover { color: var(--gold); border-color: rgba(201,168,76,0.25); }
.nav-favs.has-favs { color: var(--gold); border-color: rgba(201,168,76,0.45); }
.nav-favs-count {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  min-width: 14px;
  text-align: center;
}
.nav-favs-count.is-empty { opacity: 0.5; }

/* Mobile drawer: favs link with counter chip */
.nav-mobile-favs-count {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 8px;
  background: rgba(201,168,76,0.15);
  color: var(--gold);
  border-radius: 100px;
  font-size: 11px;
  font-weight: 700;
  vertical-align: middle;
}
.nav-mobile-favs-count.is-empty { opacity: 0.5; }

/* ─── Share + save row on apartment detail pages ─────────────── */
/* The apartment hero uses a cream background, so the share row needs
   warm/dark text — not the white-on-dark we'd use for slate panels. */
.pc-share-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
  padding-top: 20px;
  border-top: 1px solid rgba(28, 35, 50, 0.08);
}
.pc-share-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: transparent;
  color: #5a4f3e;
  border: 1px solid rgba(28, 35, 50, 0.18);
  border-radius: 4px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-decoration: none;
  cursor: pointer;
  transition: all .18s;
  -webkit-tap-highlight-color: transparent;
}
.pc-share-btn:hover {
  color: #1c1c1c;
  border-color: var(--gold);
  background: rgba(201, 168, 76, 0.08);
}
.pc-share-btn svg { flex-shrink: 0; }

/* "Saved" / "Save" labels — show only the relevant one */
.pc-share-l-on  { display: none; }
.pc-share-l-off { display: inline; }
.pc-share-btn.is-fav .pc-share-l-on  { display: inline; }
.pc-share-btn.is-fav .pc-share-l-off { display: none; }
.pc-share-btn.pc-fav-btn.is-fav {
  color: #b85a3a;
  border-color: #b85a3a;
  background: rgba(184, 90, 58, 0.06);
}
.pc-share-btn.pc-fav-btn.is-fav .pc-icon-heart {
  fill: #b85a3a;
  stroke: #b85a3a;
}
/* "Copied!" feedback */
.pc-share-btn.is-copied .pc-share-l-on  { display: inline; }
.pc-share-btn.is-copied .pc-share-l-off { display: none; }
.pc-share-btn.is-copied {
  color: var(--gold);
  border-color: var(--gold);
}

/* ─── Grid card heart (Bad Soden + Hofheim landing pages) ────── */
/* Sits at the top-right of the card, shifted INWARD so it doesn't cross
   the status pill (which sits at right edge ~14px). The heart sits to the
   left of the pill at a fixed offset. */
.tr-unit-fav,
.hf-unit-fav {
  position: absolute;
  top: 14px;
  right: 134px;
  width: 28px;
  height: 28px;
  background: rgba(255,255,255,0.95);
  border: 1px solid rgba(28,35,50,0.1);
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(28,35,50,0.4);
  transition: opacity .18s, color .15s, transform .15s, box-shadow .15s, border-color .15s;
  z-index: 4;
  -webkit-tap-highlight-color: transparent;
  padding: 0;
  opacity: 0;
}
.tr-unit-fav svg,
.hf-unit-fav svg { width: 14px; height: 14px; }
/* Heart visible: always when saved; on hover for browsers that support hover */
.tr-unit-fav.is-fav,
.hf-unit-fav.is-fav { opacity: 1; }
@media (hover: hover) {
  .tr-unit-card:hover .tr-unit-fav,
  .hf-unit-card:hover .hf-unit-fav { opacity: 1; }
}
/* Touch screens (no hover): always visible */
@media (hover: none) {
  .tr-unit-fav,
  .hf-unit-fav { opacity: 1; }
}
.tr-unit-fav:hover,
.hf-unit-fav:hover {
  color: #b85a3a;
  transform: scale(1.08);
  box-shadow: 0 4px 12px rgba(184,90,58,0.18);
  border-color: rgba(184,90,58,0.3);
}
.tr-unit-fav.is-fav,
.hf-unit-fav.is-fav {
  color: #b85a3a;
  border-color: rgba(184,90,58,0.4);
  background: #fff;
}
.tr-unit-fav.is-fav svg,
.hf-unit-fav.is-fav svg {
  fill: #b85a3a;
}
/* Card position required for absolute child */
.tr-unit-card,
.hf-unit-card { position: relative; }

/* ─── Open Day / Besichtigungstermin panel (apartment pages) ─── */
.pc-od-sec {
  background: #faf8f4;
  padding: 64px 0;
}
.pc-od-card {
  background: #fff;
  border: 1px solid #e8e2d4;
  border-left: 4px solid var(--gold);
  padding: 40px 44px;
  max-width: 920px;
  margin: 0 auto;
  box-shadow: 0 2px 8px rgba(28,35,50,0.04);
}
.pc-od-head { margin-bottom: 28px; }
.pc-od-eyebrow {
  display: inline-block;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
}
.pc-od-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 28px;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: #1c1c1c;
  margin: 0 0 10px;
  line-height: 1.2;
}
.pc-od-sub {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 14.5px;
  line-height: 1.6;
  color: #5a5246;
  margin: 0;
  max-width: 620px;
}
.pc-od-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.pc-od-item {
  display: grid;
  grid-template-columns: 220px 1fr auto;
  gap: 24px;
  align-items: center;
  padding: 22px 0;
  border-top: 1px solid #efeae0;
}
.pc-od-when { font-family: 'Source Sans 3', sans-serif; }
.pc-od-date {
  font-size: 15.5px;
  font-weight: 600;
  color: #1c1c1c;
  letter-spacing: 0.005em;
}
.pc-od-time {
  font-size: 13px;
  color: #7a6f5e;
  margin-top: 2px;
}
.pc-od-meta { font-family: 'Source Sans 3', sans-serif; }
.pc-od-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 6px;
}
.pc-od-loc {
  font-size: 14px;
  color: #1c1c1c;
  line-height: 1.4;
}
.pc-od-note {
  font-size: 13px;
  color: #7a6f5e;
  line-height: 1.5;
  margin-top: 4px;
}
.pc-od-btn {
  display: inline-block;
  background: var(--gold);
  color: var(--slate);
  font-family: 'Source Sans 3', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 12px 22px;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s;
}
.pc-od-btn:hover {
  background: var(--gold2);
  color: var(--slate);
}
@media (max-width: 720px) {
  .pc-od-sec { padding: 48px 20px; }
  .pc-od-card { padding: 32px 24px; }
  .pc-od-title { font-size: 24px; }
  .pc-od-item {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 20px 0;
  }
  .pc-od-cta { justify-self: start; }
}

/* Hamburger button + mobile drawer: hidden on desktop, shown on mobile */
.nav-burger { display: none; }
.nav-mobile { display: none; }

@media(max-width:900px){
  .hero-inner{grid-template-columns:1fr}
  .hero-search{display:none}
  .prop-grid{grid-template-columns:repeat(2,1fr)}
  .loc-grid,.contact-grid{grid-template-columns:1fr}
  .why-grid{grid-template-columns:repeat(2,1fr)}
  /* Mobile nav: hide desktop links and the right-hand DE/EN+CTA cluster, show hamburger */
  .nav-links{display:none}
  .nav-right{display:none}
  .form-grid{grid-template-columns:1fr}

  /* Mobile header order: hamburger LEFT, logo RIGHT.
     The HTML order is logo → hamburger; we flip visually with flex `order`
     so the underlying markup (and accessibility/keyboard order) stay the
     same on desktop and mobile. */
  .nav-inner > .nav-burger { order: 1; }
  .nav-inner > .logo       { order: 2; }

  .nav-burger {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 6px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .nav-burger-line {
    display: block;
    width: 20px;
    height: 1.5px;
    background: #f5eecf;
    margin: 0 auto;
    transition: transform .22s cubic-bezier(.2,.8,.2,1), opacity .15s;
    transform-origin: 50% 50%;
  }
  /* Animate to "X" when open */
  .nav-burger.is-open .nav-burger-line:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
  .nav-burger.is-open .nav-burger-line:nth-child(2) { opacity: 0; }
  .nav-burger.is-open .nav-burger-line:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

  /* Drawer slides down below the nav bar */
  .nav-mobile {
    display: block;
    position: absolute;
    top: 64px;
    left: 0;
    right: 0;
    background: var(--slate);
    border-top: 1px solid rgba(201,168,76,0.18);
    box-shadow: 0 16px 32px rgba(0,0,0,0.28);
    max-height: 0;
    overflow: hidden;
    transition: max-height .22s cubic-bezier(.2,.8,.2,1);
    z-index: 290;
  }
  .nav-mobile.is-open { max-height: 480px; }

  .nav-mobile-links {
    list-style: none;
    margin: 0;
    padding: 12px 0;
  }
  .nav-mobile-links li {
    margin: 0;
  }
  .nav-mobile-links a {
    display: block;
    padding: 14px 24px;
    font-family: 'Source Sans 3', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: rgba(255,255,255,0.85);
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    letter-spacing: 0.01em;
    transition: color .15s, background .15s;
  }
  .nav-mobile-links a:hover,
  .nav-mobile-links a:active {
    color: var(--gold);
    background: rgba(201,168,76,0.06);
  }
  .nav-mobile-links li:last-child a { border-bottom: none; }
  .nav-mobile-cta {
    color: var(--gold) !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase;
    font-size: 13px !important;
    padding: 18px 24px !important;
    margin-top: 8px;
    border-top: 1px solid rgba(201,168,76,0.2) !important;
  }
  .nav-mobile-lang {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 16px 24px 22px;
    border-top: 1px solid rgba(255,255,255,0.06);
  }
  .nav-mobile-lang a {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.16em;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    transition: color .15s;
  }
  .nav-mobile-lang a.on { color: var(--gold); }
  .nav-mobile-lang a:hover { color: var(--gold); }
  .nav-mobile-lang span { color: rgba(255,255,255,0.25); }

  /* Lock body scroll while drawer is open */
  body.nav-mobile-locked { overflow: hidden; }
}

@media(max-width:600px){
  .prop-grid{grid-template-columns:1fr}
  .why-grid{grid-template-columns:1fr}
  .hero h1{font-size:34px}
  .nav-inner{padding:0 20px}
}
/* ═══════════════════════════════════════════════════════════════
   CONTACT PAGE — warm cream panel (luxury-residential vibe)
   Same .contact-dark / .cd-* classes (HTML untouched), repaletted
   from dark slate → cream + brown + copper. Inputs become white
   cards with copper focus rings; buttons stay copper.
   ═══════════════════════════════════════════════════════════════ */
.contact-dark {
  background: var(--cream, #f4ede0);
  color: var(--text, #3a2a1e);
  padding: 80px 0 80px;
  /* Push footer down naturally without inflating the section to fill
     the entire viewport — that creates an awkward empty cream void
     below the form on tall screens. */
  flex: 0 0 auto;
  position: relative;
  overflow: hidden;
}
.contact-dark::before {
  content: '';
  position: absolute;
  top: -200px; right: -200px;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(184, 115, 46, 0.06) 0%, transparent 60%);
  pointer-events: none;
}
.cd-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
  z-index: 1;
}
.cd-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 80px;
  align-items: start;
}

/* ── LEFT column ────────────────────────────────────────────── */
.cd-left { padding-top: 0; display: flex; flex-direction: column; }
.cd-eyebrow {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #b8732e;
  margin-bottom: 32px;
}
.cd-headline {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(40px, 5.2vw, 64px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: #3a2a1e;
  margin: 0 0 40px;
}
.cd-headline em {
  color: #b8732e;
  font-style: italic;
}
.cd-rule {
  width: 60px;
  height: 1px;
  background: rgba(184, 115, 46, 0.55);
  margin: 0 0 36px;
}
.cd-detail { margin-bottom: 22px; }
.cd-dl {
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #b8732e;
  margin-bottom: 6px;
  font-weight: 600;
}
.cd-dv {
  font-size: 15px;
  color: #3a2a1e;
  line-height: 1.55;
}
.cd-dv a {
  color: #3a2a1e;
  text-decoration: none;
  border-bottom: 1px solid rgba(184, 115, 46, 0.45);
  transition: border-color 0.2s, color 0.2s;
  padding-bottom: 1px;
}
.cd-dv a:hover {
  color: #b8732e;
  border-color: #b8732e;
}

/* Logo */
.cd-logo {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 40px;
  text-decoration: none;
  align-self: flex-start;
  transition: opacity 0.2s;
}
.cd-logo:hover { opacity: 0.85; }
.cd-logo-crown { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 42px; }
.cd-logo-crown svg { width: 100%; height: 100%; display: block; }
.cd-logo-wordmark { display: flex; flex-direction: column; line-height: 1; gap: 3px; }
.cd-logo-prime {
  font-family: 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 900;
  font-size: 22px;
  color: #3a2a1e;
  letter-spacing: 4px;
}
.cd-logo-consilium {
  font-family: 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 600;
  font-size: 11px;
  color: #b8732e;
  letter-spacing: 3.4px;
}

/* ── RIGHT column: form ─────────────────────────────────────── */
.cd-right { padding-top: 0; }
.cd-form { display: flex; flex-direction: column; gap: 18px; }
.cd-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cd-field { position: relative; }
.cd-field input,
.cd-field textarea,
.cd-field select {
  width: 100%;
  background: #fff;
  border: 1px solid #d8c8a8;
  padding: 18px 14px 14px;
  font-size: 15px;
  font-family: 'Source Sans 3', sans-serif;
  color: #3a2a1e;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
}
.cd-field textarea {
  min-height: 140px;
  resize: vertical;
  line-height: 1.55;
  padding-top: 22px;
}
.cd-field label {
  position: absolute;
  top: 16px;
  left: 15px;
  font-size: 13px;
  color: #9a8775;
  pointer-events: none;
  transition: all 0.18s ease;
  background: transparent;
  padding: 0 4px;
  font-weight: 400;
}
/* Float label when focused or filled — sits on cream bg */
.cd-field input:focus + label,
.cd-field textarea:focus + label,
.cd-field input:not(:placeholder-shown) + label,
.cd-field textarea:not(:placeholder-shown) + label,
.cd-field-select label {
  top: -8px;
  left: 10px;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #b8732e;
  background: var(--cream, #f4ede0);
  font-weight: 600;
}
.cd-field input:focus,
.cd-field textarea:focus,
.cd-field select:focus {
  border-color: #b8732e;
  box-shadow: 0 0 0 2px rgba(184, 115, 46, 0.18);
}
/* Select chevron */
.cd-field-select::after {
  content: '';
  position: absolute;
  right: 18px; top: 50%;
  width: 10px; height: 10px;
  border-right: 2px solid #3a2a1e;
  border-bottom: 2px solid #3a2a1e;
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}
.cd-field-select select { padding-right: 40px; cursor: pointer; }
.cd-field-select optgroup { font-weight: 700; color: #3a2a1e; }

.cd-counter {
  position: absolute;
  right: 12px;
  bottom: 10px;
  font-size: 10px;
  color: #9a8775;
  letter-spacing: 0.05em;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.85);
  padding: 2px 6px;
  border-radius: 2px;
}

.cd-required-note {
  font-size: 11px;
  color: #9a8775;
  letter-spacing: 0.08em;
  margin: -4px 0 0;
}

.cd-submit {
  background: #b8732e;
  color: #fff;
  border: none;
  padding: 18px 32px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  align-self: flex-start;
  padding-right: 40px;
  padding-left: 40px;
  margin-top: 8px;
}
.cd-submit:hover {
  background: #a06226;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(184, 115, 46, 0.25);
}

.cd-legal {
  font-size: 11px;
  color: #9a8775;
  line-height: 1.7;
  margin: 4px 0 0;
  max-width: 560px;
}

/* ── Success state ──────────────────────────────────────────── */
.cd-success {
  background: rgba(184, 115, 46, 0.06);
  border: 1px solid rgba(184, 115, 46, 0.30);
  padding: 48px 40px;
  text-align: center;
  max-width: 520px;
}
.cd-success-mark {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #b8732e;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}
.cd-success h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 28px;
  font-weight: 500;
  color: #b8732e;
  margin: 0 0 12px;
}
.cd-success p {
  font-size: 14px;
  color: #5a4a38;
  line-height: 1.7;
  margin: 0;
}

/* ── Error box ──────────────────────────────────────────────── */
.cd-error {
  background: rgba(184, 56, 50, 0.08);
  border: 1px solid rgba(184, 56, 50, 0.30);
  color: #7a2d28;
  padding: 16px 20px;
  font-size: 13.5px;
  line-height: 1.6;
  margin-bottom: 22px;
}
.cd-error strong {
  display: block;
  color: #7a2d28;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 700;
}
.cd-error ul { margin: 0; padding-left: 20px; list-style: disc; }
.cd-error li { margin: 2px 0; }

/* ── Mobile ─────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .contact-dark { padding: 56px 0 64px; }
  .cd-grid { grid-template-columns: 1fr; gap: 48px; }
  .cd-headline { margin-bottom: 30px; }
  .cd-rule { margin-bottom: 24px; }
  .cd-row { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .cd-inner { padding: 0 24px; }
  .cd-submit { width: 100%; text-align: center; }
}


/* "Preis auf Anfrage" in listing cards — lighter than the big serif price */
.pc-price-onreq {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 500;
  font-style: italic;
  color: var(--text);
  letter-spacing: 0.005em;
}
/* ── HOMEPAGE LOCATION CARDS — equal height alignment ── */
.hp-loc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: stretch;
}
.hp-loc-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 340px;
  padding: 36px;
  border-radius: 12px;
  background-size: cover;
  background-position: center;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: transform .2s, box-shadow .2s;
}
.hp-loc-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.25);
}
.hp-loc-card .eyebrow {
  margin-bottom: 10px;
}
.hp-loc-card h3 {
  font-family: 'Playfair Display', serif;
  font-size: 26px;
  font-weight: 400;
  color: var(--white);
  margin-bottom: 12px;
  line-height: 1.25;
}
.hp-loc-card p {
  font-size: 13px;
  color: rgba(255,255,255,0.7);
  line-height: 1.75;
  margin-bottom: 20px;
  font-weight: 300;
}
.hp-loc-link {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
}
@media (max-width: 680px) {
  .hp-loc-grid { grid-template-columns: 1fr; }
  .hp-loc-card { min-height: 280px; }
}

/* ── HERO COPY — centered ── */
.hp-hero-copy {
  text-align: center;
}
.hp-hero-copy h1,
.hp-hero-copy .hp-hero-desc {
  text-align: center;
}
.hp-hero-ctas {
  justify-content: center;
}

/* ── HERO SEARCH BAR — centered ── */
.hp-search {
  margin-left: auto;
  margin-right: auto;
}
.hp-quick-links {
  justify-content: center;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

/* ── HERO COPY — left on desktop, center on mobile ── */
@media (min-width: 681px) {
  .hp-hero-copy {
    text-align: left;
  }
  .hp-hero-copy h1,
  .hp-hero-copy .hp-hero-desc {
    text-align: left;
  }
  .hp-hero-ctas {
    justify-content: flex-start;
  }
  .hp-quick-links {
    justify-content: flex-start;
  }
}

/* ── PROPERTIES SECTION HEAD — centered stacked layout ── */
.hp-section-head--center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 40px;
}
.hp-section-head--center .eyebrow {
  margin-bottom: 10px;
}
.hp-section-head--center h2 {
  margin-bottom: 12px;
}
.hp-section-sub {
  font-size: 15px;
  color: var(--text2);
  max-width: 560px;
  line-height: 1.7;
  font-weight: 300;
}

/* ── PROPERTIES SECTION HEAD — force all children to stack centered ── */
.hp-section-head--center {
  display: block !important;
  text-align: center !important;
  margin-bottom: 40px;
}
.hp-section-head--center .eyebrow {
  display: block;
  margin-bottom: 10px;
}
.hp-section-head--center h2 {
  display: block;
  margin-bottom: 14px;
  margin-left: auto;
  margin-right: auto;
}
.hp-section-head--center .hp-section-sub {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 560px;
  font-size: 15px;
  color: var(--text2);
  line-height: 1.7;
  font-weight: 300;
}

/* ── PROPERTIES SECTION HEAD — more space between H2 and description ── */
.hp-section-head--center h2 {
  margin-bottom: 28px !important;
}

/* ── FORCE section head flex override for all centered heads ── */
.hp-section-head--center,
.hp-process .hp-section-head--center,
.hp-locations .hp-section-head--center {
  display: block !important;
  flex-direction: unset !important;
  justify-content: unset !important;
  align-items: unset !important;
  text-align: center !important;
}

/* ── CTA BOX — paragraph max-width is set in assets/home-redesign.css
       (which loads after style.css and wins the cascade). Editing it
       here has no effect — see .hp-cta-box and .hp-cta-box p in that
       file. Mobile fallback kept here for completeness. ── */
@media (max-width: 760px) {
  .hp-cta-box p { max-width: 100%; }
}
/* ── CTA eyebrow — remove ::before line since it's centered ── */
.hp-cta-box .eyebrow::before {
  display: none;
}

/* ── PROCESS GRID — equal height cards ── */
.hp-process-grid {
  align-items: stretch !important;
}
.hp-process-step {
  height: 100%;
  display: flex !important;
  flex-direction: column !important;
}

/* ── PROCESS STEPS — prevent h3 wrapping ── */
.hp-process-step h3 {
  white-space: nowrap;
  font-size: 15px !important;
}
/* ════════════════════════════════════════════════════════════════
   "Preis auf Anfrage" treatment (architecture v2, May 2026)
   Applied per-listing when admin toggles price_on_request = on.
   The classes are added by the public render-points wherever a
   price would normally appear; this block restyles them as a calm,
   non-numeric badge so the layout doesn't shift.
   ════════════════════════════════════════════════════════════════ */

.tr-unit-price-onreq,
.hf-unit-price-onreq {
    font-style: italic;
    font-weight: 500;
    letter-spacing: .01em;
    color: var(--gold-400, #c9a84c);
    font-size: 0.92em;
}

/* Apartment-detail hero */
.tr-d-price-onreq,
.hf-d-price-onreq {
    font-style: italic;
    font-weight: 500;
    color: var(--gold-400, #c9a84c);
}

/* Apartment-detail cost card replaced by neutral on-request card */
.tr-d-cost-card--onreq,
.hf-d-cost-card--onreq {
    background: rgba(201, 168, 76, 0.05);
    border-left: 3px solid var(--gold-400, #c9a84c);
}

.tr-d-cost-onreq-note,
.hf-d-cost-onreq-note {
    margin: 12px 0 0;
    font-size: 13px;
    line-height: 1.5;
    color: #4a4a4a;
    font-style: italic;
}

/* Favourites card */
.fv-card-pv-onreq {
    font-style: italic;
    color: #c9a84c;
}