/* Fine inset frames, quiet depth and a consistent tactile shape. */
:root{--j-button-radius:5px;--j-frame:#a88b63}
.desktop-actions>a,.mobile-navigation summary,.mobile-language,.mobile-contactbar a,.dream-studio button,.signoff-newsletter,.mobile-photo-viewer button{position:relative;border-radius:var(--j-button-radius);border:1px solid #a99b87;box-shadow:inset 0 0 0 3px var(--j-white),inset 0 0 0 4px #c5b69f,0 2px 2px #20323b0b;background-color:var(--j-white);transition:background 180ms,color 180ms,box-shadow 180ms;cursor:pointer}
.desktop-actions .desktop-appointment,.mobile-contactbar .mobile-appointment,.dream-studio button[aria-selected="true"]{background:linear-gradient(180deg,#24485c,#17364a);border-color:#17364a;box-shadow:inset 0 0 0 3px #17364a,inset 0 0 0 4px #b8a17d,0 2px 3px #12293415;color:#fffdfa}
.desktop-actions>a:hover,.mobile-navigation summary:hover,.mobile-language:hover,.mobile-contactbar a:hover,.dream-studio button:hover{filter:brightness(.96)}
.desktop-actions>a:focus-visible,.mobile-contactbar a:focus-visible,.dream-studio button:focus-visible,.signoff-newsletter:focus-visible{outline:3px solid #a37430;outline-offset:4px}
.mobile-language{min-height:48px}
/* Replace small city thumbnails with one strong, correctly identified panorama. */
#s3 .community-panorama{position:relative;display:block;width:100%;height:clamp(260px,45vw,520px);margin:0;overflow:hidden}
#s3 .community-panorama img{display:block;width:100%;max-width:none;height:100%!important;object-fit:cover;object-position:50% 48%}
#s3 .community-panorama figcaption{position:absolute;bottom:18px;left:var(--j-gutter);padding:6px 10px;background:#17364aeb;color:#fffdfa;font:12px/1.5 var(--j-body)}
#s3 .item .item_inner{display:block;counter-increment:communities}
#s3 .item .item_inner:before{content:'0' counter(communities);display:block;margin-bottom:24px;color:#d5b994;font:12px/1 var(--j-body);letter-spacing:.1em}
#s3 .layer.left{counter-reset:communities}
#s3 .item .item_inner>.right{display:block}
/* Dream studio: a curated concept collection, without simulated generation. */
#s4.dream-studio{padding:64px var(--j-gutter);background:var(--j-paper);color:var(--j-ink)}
.dream-intro{display:grid;gap:10px;max-width:1440px;margin:0 auto 30px}
#s4 .dream-intro h2{max-width:none;margin-bottom:14px!important}
#s4 .editorial-kicker{display:block;margin:0 0 16px;font:500 10px/1.5 var(--j-body);letter-spacing:.15em;text-transform:uppercase;color:var(--j-accent)}
#s4 .dream-intro>p{max-width:50ch;margin:0}
.dream-experience{max-width:1440px;margin:auto;border-top:1px solid var(--j-rule)}
.dream-choices{display:flex;gap:10px;padding:22px 0;overflow:auto}
#s4 button{min-height:48px;padding:12px 22px;font:500 13px/1.4 var(--j-body);color:var(--j-blue)}
#s4 button[aria-selected="true"]{color:#fffdfa}
#s4 .dream-stage{touch-action:pan-y;min-width:0}
#s4 .dream-panel{display:grid;min-width:0;animation:dream-reveal 300ms ease-out}
#s4 [hidden]{display:none!important}
#s4 figure{position:relative;margin:0;min-width:0;overflow:hidden;aspect-ratio:3/2}
#s4 figure img{display:block;width:100%;height:100%!important;object-fit:cover}
#s4 .dream-notes{padding:28px 0 8px}
.dream-number{display:block;color:var(--j-accent);font:11px/1.4 var(--j-body);letter-spacing:.13em;margin-bottom:18px}
#s4 .dream-notes h3{font:400 clamp(28px,3vw,40px)/1.2 var(--j-display)!important;margin-bottom:14px!important;letter-spacing:-.035em}
#s4 .dream-notes p{font-size:14px;line-height:1.75;max-width:45ch;margin-bottom:16px}
#s4 .dream-notes .dream-subtitle{color:var(--j-muted);font-size:15px}
#s4 .dream-materials{font-size:11px!important;letter-spacing:.035em;text-transform:uppercase;border-top:1px solid var(--j-rule);padding-top:16px;color:var(--j-accent)}
.dream-view-switch{display:flex;gap:10px;margin-top:22px}
#s4 .dream-view-switch button{font-size:12px;padding:10px 18px}
#s4 .dream-view-switch button[aria-pressed="true"]{text-decoration:underline;text-underline-offset:4px}
#s4 .dream-palette{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
#s4 .dream-palette span{display:flex;align-items:end;min-height:76px;padding:9px;font:11px/1.4 var(--j-body);color:#20323b;border:1px solid #c9beb0}
.material-stone{background:repeating-linear-gradient(168deg,#e5d9c4 0 9px,#dbccb5 10px,#e6dbc9 12px 24px)}
.material-oak{background:repeating-linear-gradient(92deg,#c7a276 0 4px,#b99368 5px,#d2b58e 7px 13px)}
.material-linen{background:repeating-linear-gradient(0deg,#e9e3d8 0 2px,#e2dacd 3px 4px)}
.dream-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;border-top:1px solid var(--j-rule)}
#s4 .dream-controls p{font-size:12px;line-height:1.5;margin:0;color:var(--j-muted)}
.dream-controls>div{display:flex;gap:10px}
#s4 .dream-controls button{min-width:48px;padding:10px 16px;font-size:20px}
@keyframes dream-reveal{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}
/* A single architectural image replaces the marked, low-resolution gallery. */
#s5 .editorial-home{margin:0;padding:0 var(--j-gutter) 56px;max-width:1440px;margin:auto}
#s5 .editorial-home img{display:block;width:100%;height:auto!important}
#s5 .editorial-home figcaption{font:11px/1.6 var(--j-body);color:var(--j-muted);padding-top:12px}
/* Preferred portrait, flush to its own container. */
#s6 .johanne-portrait{padding:0!important;border:0;background:transparent}
/* The translation is an aside, rather than a second body section. */
#s7{display:block;padding:0!important;min-height:0!important;background:#ece7dd}
#s7 #s7_txt .w980{max-width:1100px!important;padding:60px var(--j-gutter)}
#s7 h2{max-width:none}
#s7 .txt .bilingual-translation{font:400 13px/1.6 var(--j-body)!important;color:#58636a;max-width:70ch;padding-top:17px;margin-top:20px;margin-bottom:0;border-top:1px solid #c9beb0}
/* The two outdated mansion photos are removed; preserve the invitation. */
#s8 .row1{display:block;max-width:1100px;margin:auto}
#s8 .col1{max-width:860px}
#s8 h2{max-width:none}
#s8 .txt{display:grid;gap:0}
/* A professional personal sign-off, with the authentic existing quote. */
#s9.personal-signoff{background:var(--j-paper);color:var(--j-ink);padding:0 var(--j-gutter)!important;border-top:1px solid var(--j-rule)}
#s9 .signoff-main{display:grid;gap:30px;max-width:1440px;margin:auto;padding:56px 0}
.signoff-portrait{width:160px;align-self:start}
#s9 .signoff-portrait img{display:block;width:100%;height:auto!important}
#s9 .signoff-message h2{font-size:clamp(40px,8vw,54px)!important;max-width:17ch;margin-bottom:22px!important}
#s9 blockquote{margin:0 0 25px;max-width:38ch;font:400 19px/1.65 var(--j-display);color:var(--j-muted)}
#s9 .signoff-name{font:400 21px/1.4 var(--j-display);margin:0}
.signoff-name span{display:block;margin-top:7px;font:11px/1.5 var(--j-body);letter-spacing:.08em;text-transform:uppercase;color:var(--j-muted)}
#s9 .signoff-brokerage{display:block;width:180px;height:auto!important;margin-top:22px}
#s9 .signoff-contact h3{font:400 24px/1.3 var(--j-display)!important;margin:0 0 18px!important;letter-spacing:-.02em}
.signoff-contact>a{display:block;width:fit-content;max-width:100%;min-height:44px;padding:8px 0;color:var(--j-blue);font:14px/1.7 var(--j-body);text-decoration-thickness:1px;text-underline-offset:4px;overflow-wrap:anywhere}
#s9 .signoff-contact .signoff-newsletter{display:block;width:100%;margin-top:15px;padding:16px 20px;text-decoration:none;font:500 13px/1.5 var(--j-body)}
#s9 .newsletter-note{display:block;color:var(--j-muted);font:11px/1.6 var(--j-body);margin:12px 0}
.signoff-social{display:flex;gap:24px;margin-top:15px}
.signoff-social a{display:inline-flex;align-items:center;min-height:44px;color:var(--j-blue);font:12px/1.5 var(--j-body);text-underline-offset:4px}
#s9 .map-directions{font-size:11px}
.signoff-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;max-width:1440px;margin:auto;padding:22px 0;border-top:1px solid var(--j-rule);font:10px/1.5 var(--j-body);letter-spacing:.04em;color:var(--j-muted)}
@media(min-width:980px){
 #s4.dream-studio{padding-top:88px;padding-bottom:88px}
 .dream-intro{grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-bottom:40px}
 #s4 .dream-panel{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:40px}
 #s4 figure{align-self:start;aspect-ratio:3/2}
 #s4 .dream-notes{padding:20px 0}
 .dream-controls{margin-top:30px}
 #s3 .community-panorama{height:460px}
 #s5 .editorial-home{padding-bottom:90px}
 #s5 .editorial-home img{max-height:560px;object-fit:cover}
 #s6 .johanne-portrait{max-width:520px}
 #s7 #s7_txt .w980{padding-top:88px;padding-bottom:88px}
 #s7 .txt{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;align-items:start}
 #s7 .txt .bilingual-translation{margin:0;padding:0 0 0 30px;border-top:0;border-left:1px solid var(--j-rule)}
 #s8 .txt{grid-template-columns:1fr 1fr;gap:60px}
 #s9 .signoff-main{grid-template-columns:220px minmax(0,1.5fr) minmax(0,1fr);gap:50px;padding:80px 0}
 .signoff-portrait{width:220px}
 #s9 .signoff-message h2{font-size:58px!important}
 #s9 blockquote{font-size:19px}
 .signoff-contact{padding-top:8px}
}
@media(prefers-reduced-motion:reduce){#s4 .dream-panel{animation:none!important}*,*:before,*:after{transition:none!important}}

.material-bronze{background:linear-gradient(100deg,#b79a71,#d1b58b,#a68a62)}.material-planting{background:#9caa86}
#s9.personal-signoff .editorial-kicker{color:var(--j-accent)}
