/*
Theme Name: Estate Studio
Description: Immobilienverwaltung und visuelle Seitengestaltung in einem eigenständigen Block-Theme.
Version: 0.2.2
Update URI: false
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: estate-studio
License: GPL-2.0-or-later
*/
html { scroll-behavior: smooth; }
body { margin: 0; }
a, button { transition: color .15s, background-color .15s; }
:where(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--wp--preset--color--accent); outline-offset: 4px; }
.es-section { margin-block: 2rem; }
.es-agent-profile { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; padding: 1.5rem; border: 1px solid var(--wp--preset--color--border); border-radius: 12px; }
.es-agent-profile img { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; }
.es-agent-profile h2 { margin-top: 0; }
.es-agent-profile a { overflow-wrap: anywhere; }
.es-block-label { padding: 1.5rem; border: 1px dashed #919b96; border-radius: 8px; background: #f1f5f2; color: #183b30; }
.es-comparison { position: relative; overflow: hidden; aspect-ratio: 16 / 10; border-radius: 12px; background: #eee; }
.es-comparison img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.es-comparison .es-before { clip-path: inset(0 calc(100% - var(--es-compare, 50%)) 0 0); }
.es-comparison input { position: absolute; bottom: 1rem; left: 10%; width: 80%; z-index: 3; accent-color: var(--wp--preset--color--accent); }
.es-comparison-label { position: absolute; top: 1rem; padding: .35rem .75rem; background: #fff; color: #183b30; border-radius: 4px; }
.es-comparison-label:first-of-type { left: 1rem; }
.es-comparison-label:last-of-type { right: 1rem; }
.es-listings-design-compact .es-card { display: grid; grid-template-columns: minmax(130px, 35%) 1fr; }
.es-listings-design-compact .es-card-image { height: 100%; }
.es-listings-design-compact .es-grid { grid-template-columns: 1fr; }
.es-listings-design-soft .es-card { border-radius: 20px; box-shadow: 0 12px 35px #183b3010; }
.es-property-title { font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.1; }
.es-detail-blocks .es-gallery { margin-bottom: 2rem; }
.es-detail-blocks .es-section { padding-block: 1.5rem; border-bottom: 1px solid var(--wp--preset--color--border); }
.es-button, .es-card-button { background: var(--wp--preset--color--accent) !important; color: var(--wp--preset--color--base) !important; }
.es-button:hover, .es-card-button:hover { background: var(--wp--preset--color--hover) !important; }
.es-contact-form :is(input, textarea) { max-width: 100%; box-sizing: border-box; }
.es-listings, .es-detail-blocks { --es-red:var(--wp--preset--color--accent); --es-ink:var(--wp--preset--color--contrast); --es-muted:#61716a; --es-line:var(--wp--preset--color--border); --es-paper:var(--wp--preset--color--surface); }
.es-detail-blocks .es-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 2rem; }
.es-detail-blocks .es-facts>div { display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--es-line); }
.es-detail-blocks .es-facts dd { margin:0; text-align:right; }
.es-detail-blocks .es-contact-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.es-detail-blocks .es-contact-form label { display:flex; flex-direction:column; gap:.5rem; }
.es-detail-blocks .es-contact-form label.es-privacy { flex-direction:row; align-items:start; }
.es-detail-blocks .es-contact-form :is(input:not([type=checkbox]),textarea) { width:100%; padding:.75rem; border:1px solid var(--es-line); border-radius:6px; font:inherit; }
.es-detail-blocks .es-wide { grid-column:1 / -1; }
.es-detail-blocks .es-honeypot { position:absolute; left:-10000px; }
.es-property-title, .es-section { overflow-wrap:anywhere; }
@media(max-width:600px) { .es-detail-blocks .es-facts, .es-detail-blocks .es-contact-form { grid-template-columns:1fr; } }
@media (max-width: 700px) { .es-listings-design-compact .es-card { grid-template-columns: 1fr; } .es-agent-profile { padding: 1rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
