body.immobilien { --ink: #1d3430; --paper: #fff; --accent: #153e37; --line: #d3deda; --surface: #e9f0ed; --display-font: Georgia,serif; --display-weight: 400; }
.masthead { border-bottom: 1px solid var(--line); min-height: 106px; }
.wordmark strong { font-size: 1.12rem; }
.wordmark span { font-size: .6rem; }
.estate-intro { padding-block: 48px 42px; }
.estate-intro h1 { font-size: 4.4rem; }
.estate-intro > div { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-top: 24px; }
.estate-intro > div p { font-size: .95rem; }
.estate-panorama { position: relative; }
.estate-panorama img { height: 380px; object-position: center 55%; }
.estate-panorama figcaption { position: absolute; bottom: 0; right: 0; background: var(--accent); color: white; font-size: .75rem; padding: 16px 28px; max-width: 100%; }
.estate-section-head { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-bottom: 36px; }
.estate-section-head h2 { font-size: 2.7rem; }
.estate-section-head > span { max-width: 200px; }
.property-filter { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; padding-block: 24px; border-block: 1px solid var(--line); }
.property-filter input, .property-filter select { background: #f5f8f6; border-color: #c1cdc7; }
.filter-reset { grid-column: 1/-1; justify-self: end; background: none; border: 0; text-decoration: underline; padding: 8px 0; min-height: 44px; font-size: .8rem; }
.result-count { margin-block: 24px; font-size: .875rem; }
.property-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px 32px; }
.property { border-bottom: 1px solid var(--line); padding-bottom: 20px; }
.property-photo { position: relative; overflow: hidden; }
.property-photo img { aspect-ratio: 16/10; transition: transform .3s; }
.property:hover .property-photo img { transform: scale(1.025); }
.property-photo > span { position: absolute; top: 16px; left: 16px; background: white; padding: 6px 12px; font-size: .75rem; }
.property-location { font-size: .75rem; text-transform: uppercase; margin-block: 20px 10px; }
.property h3 { font: 1.6rem Georgia,serif; }
.property-facts { display: flex; flex-wrap: wrap; gap: 12px 20px; font-size: .85rem; margin-block: 20px 14px; }
.property-facts strong { margin-left: auto; }
.property-content button { background: none; border: 0; border-bottom: 1px solid var(--accent); padding: 10px 0; min-height: 44px; font-size: .85rem; }
.no-properties { padding: 40px 0; }
.no-properties p { margin-block: 16px; }
.estate-valuation { background: #153e37; color: white; --accent: #d6e7bb; --on-accent: #153e37; --surface: #264b41; }
.valuation-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; }
.valuation-layout h2 { font-size: 3.6rem; margin-bottom: 24px; }
.valuation-layout p { max-width: 44ch; }
.estate-services { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }
.estate-services h2 { margin-bottom: 28px; }
.estate-services article { display: flex; gap: 28px; border-top: 1px solid var(--line); padding-block: 26px; }
.estate-services article > span { font-size: .75rem; }
.estate-services article h3 { font-size: 1.15rem; margin-bottom: 12px; }
.estate-services article p { font-size: .95rem; }
.estate-regions { padding-bottom: 48px; display: flex; flex-wrap: wrap; gap: 14px 40px; font: 1.3rem Georgia,serif; }
.page-footer { background: #edf3ef; }
#property-dialog .button { margin-top: 24px; }
@media (max-width: 1024px) { .estate-intro h1 { font-size: 3.6rem; } .valuation-layout, .estate-services { gap: 48px; } .property-facts strong { margin-left: 0; width: 100%; } }
@media (max-width: 700px) { .estate-intro h1 { font-size: 2.75rem; } .estate-intro > div, .estate-section-head { align-items: start; flex-direction: column; gap: 16px; } .estate-panorama img { height: 290px; } .estate-section-head > span { max-width: none; } .property-filter { grid-template-columns: repeat(2,minmax(0,1fr)); } .property-grid, .valuation-layout, .estate-services { grid-template-columns: 1fr; } .estate-section-head h2 { font-size: 2.1rem; } .valuation-layout h2 { font-size: 3rem; } }
@media (max-width: 360px) { .property-filter { grid-template-columns: 1fr; } .wordmark strong { font-size: 1rem; } .estate-intro h1 { font-size: 2.4rem; } }
