:root{--sage:#536657;--ink:#2e3830}
.project-wordmark{width:280px;height:auto;max-width:100%}
.brand.light .project-wordmark{width:315px}
.site-header{max-width:none}
.home .site-header{position:absolute;top:0;left:0;right:0;max-width:none;background:transparent;color:#fff;border-bottom:1px solid #ffffff36;height:106px;padding:0 5%;z-index:20}
.home .parent-brand{width:250px}
.home .parent-brand img{width:100%;height:auto;filter:brightness(0) invert(1)}
.home .site-header nav{font-size:11px;gap:26px}
.home .nav-contact{border-color:#ffffff8c}
.hero{max-width:none}
.hero-stage{position:relative;min-height:740px;height:100vh;height:100svh;isolation:isolate;background:#2e3830;color:#fff;display:flex;align-items:flex-end;overflow:hidden}
.hero-film,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.hero-film{object-fit:cover;object-position:50% 42%;filter:saturate(.86)}
.hero-shade{z-index:-1;background:linear-gradient(180deg,rgba(15,26,20,.5),rgba(15,26,20,.04) 28%,rgba(15,26,20,.18) 42%,rgba(15,26,20,.76) 100%)}
.hero-content{width:100%;padding:180px 5% 142px}
.hero .hero-location{font-size:10px;letter-spacing:.25em;margin-bottom:29px;text-shadow:0 2px 8px #0008}
.hero h1{margin:0;width:min(100%,1060px);line-height:1}
.hero h1 img{width:100%;height:auto;filter:drop-shadow(0 2px 14px #0003)}
.hero .hero-lead{font-size:clamp(19px,2vw,28px);font-weight:300;line-height:1.5;margin:30px 0 25px;letter-spacing:.005em;max-width:560px;text-shadow:0 2px 10px #0005}
.hero-actions{display:flex;align-items:center;gap:33px;flex-wrap:wrap}
.hero .hero-primary{background:#f8f6f0;color:#2e3830;border-color:#f8f6f0;padding:15px 24px;font-size:11px;gap:30px}
.hero .hero-primary:hover{background:#e8ece5;border-color:#e8ece5}
.hero-plan-link{font-size:11px;text-decoration:none;border-bottom:1px solid #ffffff66;padding:10px 0;display:inline-flex;gap:25px;align-items:center}
.hero-plan-link:hover{border-color:#fff}
.hero-bottom{position:absolute;bottom:28px;left:5%;right:5%;display:flex;align-items:flex-end;justify-content:space-between;gap:25px}
.hero-film-note{display:flex;align-items:center;gap:24px}
#hero-play-toggle{display:flex;align-items:center;gap:11px;background:transparent;border:1px solid #ffffff80;color:#fff;padding:10px 15px;font-size:10px;min-height:44px}
#hero-play-toggle:hover{background:#ffffff18}
.hero-play-symbol{font-size:16px;line-height:1;width:15px;text-align:center}
.film-label{font-size:8px;letter-spacing:.16em;color:#e2e5df}
.hero-gu{width:110px;display:block;flex-shrink:0}
.hero-gu img{width:100%;height:auto}
.hero-summary{display:flex;justify-content:space-between;align-items:center;gap:35px;padding:34px 5%;border-bottom:1px solid var(--line)}
.hero-summary .eyebrow{margin:0;white-space:nowrap;font-size:9px}
.hero-summary p{font-size:13px;max-width:690px}
.fact-strip{padding-left:5%;padding-right:5%}
.plan-view-tabs{display:flex;gap:0;margin-bottom:25px;border-bottom:1px solid var(--line)}
.plan-view-tabs button{background:transparent;border:0;border-bottom:2px solid transparent;padding:14px 24px 14px 0;margin-right:30px;font-size:15px;text-align:left}
.plan-view-tabs button span{display:block;font-size:10px;margin-top:3px;color:var(--muted)}
.plan-view-tabs button[aria-pressed=true]{border-bottom-color:var(--sage);font-weight:600}
.plan-stage{min-width:0;position:relative}
.plan-stage .plan-image{width:100%;height:100%}
.plan-stage [hidden]{display:none!important}
sonnenhaus-plan-3d{display:block;min-height:570px}
.plan-info{padding:30px}
@media(min-width:1600px){.hero-content{padding-left:7%;padding-right:7%}.home .site-header{padding-left:7%;padding-right:7%}.hero-bottom{left:7%;right:7%}.hero h1{width:1180px}.hero .hero-lead{font-size:30px}}
@media(max-width:1100px){.home .parent-brand{width:210px}.home .site-header nav{gap:17px;font-size:10px}.hero h1{width:100%}.hero-stage{min-height:680px}.hero-content{padding-bottom:140px}.project-wordmark{width:250px}.site-header{gap:20px}.site-header nav{gap:15px}.plan-layout{grid-template-columns:250px 1fr}}
@media(max-width:800px){.home .site-header{height:88px}.home .menu-button{border-color:#ffffff80;color:#fff}.home .site-header nav{top:87px;color:var(--ink);background:var(--paper);padding:20px 5%;font-size:13px}.home .site-header .nav-contact{border-color:var(--sage)}.hero-stage{min-height:680px;max-height:1100px}.hero-content{padding:150px 5% 155px}.hero .hero-location{font-size:9px;letter-spacing:.18em}.hero .hero-lead{font-size:25px}.hero-summary{display:block;padding:28px 5%}.hero-summary p{margin-top:12px;font-size:12px}.hero-film{object-position:48% center}.hero-film-note{gap:15px}.film-label{font-size:7px}.hero-gu{width:95px}.plan-layout{grid-template-columns:220px 1fr}.plan-info{padding:22px}.project-wordmark{width:270px}}
@media(max-width:540px){.home .site-header{height:78px;gap:20px}.home .site-header nav{top:77px}.home .parent-brand{width:195px;max-width:65%}.home .menu-button{padding:10px 12px}.hero-stage{height:100svh;min-height:650px;max-height:1000px}.hero-content{padding:145px 5% 145px}.hero .hero-location{font-size:7px;letter-spacing:.14em;margin-bottom:21px}.hero h1{width:100%;max-width:480px}.hero .hero-lead{font-size:21px;line-height:1.5;margin:22px 0 25px!important;max-width:100%}.hero-actions{gap:14px;display:flex;align-items:flex-start;flex-direction:column}.hero .hero-primary{padding:13px 19px;font-size:10px;min-height:46px}.hero-plan-link{font-size:10px;padding:7px 0}.hero-bottom{bottom:24px;align-items:flex-end;gap:12px}.hero-film-note{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.hero-gu{width:82px}.film-label{font-size:6px;letter-spacing:.12em}#hero-play-toggle{font-size:9px;padding:9px 11px;min-height:42px}.hero-film{object-position:49% center}.hero-shade{background:linear-gradient(180deg,#10201888,rgba(15,26,20,.08) 25%,rgba(15,26,20,.15) 38%,rgba(15,26,20,.87) 100%)}.hero-summary .eyebrow{font-size:8px;white-space:normal}.hero-summary p{font-size:12px}.project-wordmark{width:218px;max-width:100%}.site-header .brand{min-width:0;flex-shrink:1}.brand.light .project-wordmark{width:280px}.plan-layout{display:flex;flex-direction:column}.plan-stage{width:100%}.plan-view-tabs button{padding:10px 12px 10px 0;margin-right:12px;font-size:12px}.plan-view-tabs button span{font-size:8px;max-width:145px;line-height:1.6}.plan-info{padding:25px}.plan-image img{height:390px}sonnenhaus-plan-3d{min-height:510px}.plan-layout.is-3d .plan-info{padding-bottom:22px}.plan-info .caption{font-size:9px!important}}
@media(max-height:650px) and (min-width:700px){.hero-stage{min-height:620px}.hero-content{padding-top:160px;padding-bottom:120px}.hero h1{width:75%}.hero .hero-lead{font-size:19px;margin:18px 0!important}.hero .hero-location{margin-bottom:16px}}
@media print{.home .site-header{position:relative;background:var(--sage)}.hero-stage{height:auto;min-height:450px;background:var(--sage);print-color-adjust:exact}.hero-content{padding:80px 5%}.hero-film{display:none}.hero-bottom,.plan-view-tabs{display:none}.hero-summary{padding:20px 0}}
@media(max-width:540px){sonnenhaus-plan-3d .p3-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}sonnenhaus-plan-3d .p3-toolbar button{min-width:0;min-height:40px}sonnenhaus-plan-3d .p3-toolbar [data-action="top"],sonnenhaus-plan-3d .p3-toolbar [data-action="reset"]{grid-column:span 2}}
.hero h1{width:100%;max-width:none}

/* The poster button stays over the player until playback actually starts. */
.video-shell video{position:absolute;inset:0}
.video-shell video[hidden],.video-start[hidden]{display:none}
.video-start{position:absolute;inset:0;z-index:2}
.video-tag{z-index:3}
.video-start:disabled{cursor:wait}
.video-start[aria-busy="true"] .play-icon{font-size:0}
.video-start[aria-busy="true"] .play-icon::after{content:"";width:22px;height:22px;border:2px solid #ffffff66;border-top-color:white;border-radius:50%;animation:video-loading .8s linear infinite}
@keyframes video-loading{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.video-start[aria-busy="true"] .play-icon::after{animation:none}}

/* Place the aerial photo zoom control above the parking annotation. */
.plot-layout .zoom-label{top:14px;right:14px;bottom:auto;padding:5px 9px;font-size:9px}
