/* React owns the interactions. Server-rendered content is visible immediately. */
#container,#wrapper{opacity:1!important;visibility:visible!important}
#s4 .dream-panel{animation:none!important}
#s4 figure img{user-select:none;-webkit-user-drag:none}
.dream-stage{touch-action:pan-y}
.dream-conversation{max-width:1440px;margin:12px auto 0;display:grid;gap:24px}
#s4 .dream-enquiry{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:50px;width:fit-content;max-width:100%;padding:14px 22px;border:1px solid #17364a;border-radius:5px;background:linear-gradient(180deg,#24485c,#17364a);box-shadow:inset 0 0 0 3px #17364a,inset 0 0 0 4px #b8a17d;color:#fffdfa;text-decoration:none;font:500 13px/1.6 var(--j-body)}
@media(min-width:980px){.dream-conversation{justify-items:end;align-items:center}}
@media(prefers-reduced-motion:reduce){.section{transform:none!important}.dream-panel img{transform:none!important}}

:root{--j-script:var(--font-great-vibes),Georgia,"Times New Roman",serif;--j-display:var(--font-libre-baskerville),Georgia,"Times New Roman",serif}
/* Header palette is the shared source for every button, in both languages. */
:root{--j-btn-primary-start:#24485c;--j-btn-primary-end:#17364a;--j-btn-primary-hover:#294b5f;--j-btn-primary-text:#fffdfa;--j-btn-primary-frame:#b8a17d;--j-btn-secondary-bg:#fffdfa;--j-btn-secondary-hover:#eee8df;--j-btn-secondary-border:#a99b87;--j-btn-secondary-frame:#c5b69f;--j-btn-secondary-text:#17364a;--j-btn-focus:#a37430}
.desktop-actions>a,.mobile-navigation summary,.mobile-language,.mobile-contactbar a,#s4 button,#s4 .dream-enquiry,#s9 .signoff-newsletter{background:var(--j-btn-secondary-bg);color:var(--j-btn-secondary-text);border:1px solid var(--j-btn-secondary-border);border-radius:5px;box-shadow:inset 0 0 0 3px var(--j-btn-secondary-bg),inset 0 0 0 4px var(--j-btn-secondary-frame),0 2px 2px #20323b0b;filter:none}
.desktop-actions>a:hover,.mobile-navigation summary:hover,.mobile-language:hover,.mobile-contactbar a:hover,#s4 button:hover,#s9 .signoff-newsletter:hover{background:var(--j-btn-secondary-hover);filter:none;color:var(--j-btn-secondary-text)}
.desktop-actions .desktop-appointment,.mobile-contactbar .mobile-appointment,#s4 .dream-choices button[aria-selected="true"],#s4 .dream-enquiry{background:linear-gradient(180deg,var(--j-btn-primary-start),var(--j-btn-primary-end));color:var(--j-btn-primary-text);border-color:var(--j-btn-primary-end);box-shadow:inset 0 0 0 3px var(--j-btn-primary-end),inset 0 0 0 4px var(--j-btn-primary-frame),0 2px 3px #12293415}
.desktop-actions .desktop-appointment:hover,.mobile-contactbar .mobile-appointment:hover,#s4 .dream-choices button[aria-selected="true"]:hover,#s4 .dream-enquiry:hover{background:var(--j-btn-primary-hover);color:var(--j-btn-primary-text);border-color:var(--j-btn-primary-end);filter:none}
.desktop-actions>a:focus-visible,.mobile-navigation summary:focus-visible,.mobile-language:focus-visible,.mobile-contactbar a:focus-visible,#s4 button:focus-visible,#s4 .dream-enquiry:focus-visible,#s9 .signoff-newsletter:focus-visible{outline:3px solid var(--j-btn-focus);outline-offset:4px}
/* One fine-line SVG family replaces section-leading numeric markers. */
.section .editorial-kicker.section-kicker{display:flex!important;align-items:center;gap:10px}
.section-micro-icon{display:block;flex:0 0 16px;width:16px;height:16px;stroke:currentColor;fill:none}
#s3 .item .item_inner:before{content:none!important}
/* Parallel, softly rounded double frames: actual inner borders, not square inset shadows. */
:root{--j-button-radius:8px}
.desktop-actions>a,.mobile-navigation summary,.mobile-language,.mobile-contactbar a,#s4 button,#s4 .dream-enquiry,#s9 .signoff-newsletter{position:relative;border-radius:8px;box-shadow:0 2px 3px #12293415;--j-button-frame:var(--j-btn-secondary-frame)}
.desktop-actions>a:after,.mobile-navigation summary:after,.mobile-language:after,.mobile-contactbar a:after,#s4 button:after,#s4 .dream-enquiry:after,#s9 .signoff-newsletter:after{content:"";position:absolute;inset:3px;border:1px solid var(--j-button-frame);border-radius:5px;pointer-events:none}
.desktop-actions .desktop-appointment,.mobile-contactbar .mobile-appointment,#s4 .dream-choices button[aria-selected="true"],#s4 .dream-enquiry{--j-button-frame:var(--j-btn-primary-frame);background:linear-gradient(180deg,var(--j-btn-primary-start),var(--j-btn-primary-end));color:var(--j-btn-primary-text);border-color:var(--j-btn-primary-end);box-shadow:0 2px 3px #12293415}
.dream-choices{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#a99b87 transparent;touch-action:pan-x;padding-inline:4px}
#s4 .dream-choices button{flex:0 0 auto;white-space:nowrap}
.dream-visual{min-width:0}
#s4 .dream-visual figure img{position:absolute;inset:0;opacity:1;visibility:visible}
/* Official current artwork sits on neutral paper with clearspace, without an enclosing badge. */
#s1{grid-template-rows:var(--j-photo) auto auto auto}
#s1>.hero-logo-layer{position:relative!important;grid-column:1;grid-row:4;align-self:auto;background:var(--j-paper)}
#s1 #section1_logo{padding:0 var(--j-gutter) 28px}
#s1 #logo{width:240px;max-width:100%;padding:28px;background:transparent;border:0;box-shadow:none;margin:auto}
#s1 #logo img{width:240px;max-width:100%;height:auto!important}
#s6 .brokerage-mark{display:block;width:240px;max-width:100%;height:auto!important;margin:28px 0}
#s9 .signoff-brokerage{width:220px;max-width:100%;height:auto!important;margin:28px 0}
.johanne-credentials{margin:24px 0;padding:20px 0;border-top:1px solid var(--j-rule);border-bottom:1px solid var(--j-rule)}
#s6 .johanne-credentials .credentials-expertise{margin:0 0 18px;font:400 18px/1.5 var(--j-display);color:var(--j-blue)}
.johanne-credentials dl{display:grid;gap:18px;margin:0}
.johanne-credentials dt{font:500 12px/1.5 var(--j-body);color:var(--j-blue);letter-spacing:.025em}
.johanne-credentials dd{font:400 12px/1.6 var(--j-body);margin:4px 0 0;color:#58636a;max-width:39ch}
html[data-motion="reduce"] *,html[data-motion="reduce"] *:before,html[data-motion="reduce"] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html[data-motion="reduce"] .section,html[data-motion="reduce"] .dream-panel img{transform:none!important}
@media(min-width:980px){#s1{grid-template-rows:clamp(400px,57svh,680px) auto auto auto}}

#s4 .dream-choices button{scroll-snap-align:start}
#s4 .dream-controls button{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:12px}
#s4 .dream-controls svg,#s4 .dream-enquiry svg{display:block;flex:0 0 16px;width:16px;height:16px;stroke:currentColor;fill:none}
.dream-controls>div{align-items:center}
#s4 .dream-manual-note{font:11px/1.4 var(--j-body);color:var(--j-muted);max-width:10ch;text-align:right}
@media(max-width:599px){#s4 .dream-choices{gap:8px}#s4 .dream-choices button{font-size:12px;padding:12px 18px}.dream-controls{gap:10px}#s4 .dream-controls p{font-size:11px}.dream-controls>div{gap:8px}}
/* Shared media layer: 12px with mobile video, 32px for stills, 40px overscan. */
#s1 #section1_bg.hero-parallax-frame{overflow:hidden;background-attachment:scroll}
#s1 .hero-parallax-frame .hero-media{position:absolute;inset:-40px 0 auto;display:block;width:100%;height:calc(100% + 80px);will-change:transform}
#s1 .hero-parallax-frame .hero-photo{position:absolute;inset:0;display:block;width:100%;height:100%}
#s1 .hero-parallax-frame .hero-photo img{height:100%!important;object-fit:cover}
/* Video and original fallback share the same crop and single transform. */
#s1 .hero-mobile-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:24% 50%;opacity:0;pointer-events:none;transition:opacity .3s ease}
#s1 .hero-mobile-video.is-ready{opacity:1}
@media(min-width:980px){#s1 .hero-mobile-video{display:none}}
#s4 .dream-photo-base{position:absolute;inset:0;pointer-events:none}
#s4 .dream-photo-entering{position:absolute;inset:0}
@media(prefers-reduced-motion:reduce){#s1 .hero-parallax-frame .hero-media{transform:none!important;will-change:auto}}
html[data-motion="reduce"] #s1 .hero-parallax-frame .hero-media{transform:none!important;will-change:auto}
@media(max-width:979px) and (orientation:landscape){:root{--j-photo:clamp(240px,65svh,360px)}.mobile-navigation{padding-top:max(8px,env(safe-area-inset-top));padding-left:max(var(--j-gutter),env(safe-area-inset-left));padding-right:max(var(--j-gutter),env(safe-area-inset-right))}.mobile-contactbar{padding-left:max(var(--j-gutter),env(safe-area-inset-left));padding-right:max(var(--j-gutter),env(safe-area-inset-right))}}
.detail-micro-icon{display:inline-block;width:16px;height:16px;flex:0 0 16px;stroke:currentColor;fill:none;vertical-align:-3px}
#s6 .contact-detail .detail-micro-icon{margin-right:9px;color:var(--j-blue)}
.johanne-credentials dt{display:flex;align-items:center;gap:9px}
.johanne-credentials dd{margin-left:25px}
.mobile-contactbar a{gap:8px}
@media(max-width:360px){.mobile-contactbar a{gap:6px;font-size:12px;letter-spacing:0}.mobile-contactbar .detail-micro-icon{width:14px;height:14px;flex-basis:14px}}
.mobile-contactbar a{padding-inline:12px}
.mobile-contactbar a span{min-width:0}
.mobile-contactbar .mobile-appointment{padding-inline:12px}
/* The line and slide timeout share the same deadline; no independent CSS timer. */
.dream-timer{height:2px;overflow:hidden;background:#d8d0c5;margin-top:24px}
.dream-timer span{display:block;width:100%;height:100%;background:var(--j-blue);transform-origin:left center}
#s4 .dream-controls{border-top:0;margin-top:0}
.mobile-contactbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.mobile-contactbar a,.mobile-contactbar .mobile-appointment{padding:10px 8px;gap:6px;font-size:13px;letter-spacing:0;white-space:nowrap}
.mobile-contactbar a span{white-space:nowrap;line-height:1.2;flex:0 1 auto}
@media(max-width:360px){.mobile-contactbar a,.mobile-contactbar .mobile-appointment{font-size:12px;padding-inline:6px;gap:4px}}
@media(max-width:360px){.mobile-contactbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}
.dream-timer[data-running="false"] span{background:var(--j-btn-secondary-border)}
/* Owner-selected regional photography, sized independently of legacy hover cards. */
#s3 .regional-card-photo{display:block;position:relative;aspect-ratio:3/2;margin:0 0 24px;overflow:hidden;background:#17364a}
#s3 .regional-card-photo img{display:block;width:100%;max-width:none;height:100%!important;object-fit:cover;object-position:center}
@media(min-width:600px) and (max-width:979px){#s3 .item .item_inner{display:block}}
/* Mobile reading and gestures: preserve the existing type and button system. */
@media(max-width:979px){
 .dream-choices{touch-action:auto}
 .johanne-credentials dt{font-size:14px;line-height:1.5}
 .johanne-credentials dd{font-size:13px;line-height:1.6}
 #s9 .signoff-contact>a{font-size:16px}
 #s9 .signoff-contact .signoff-newsletter{font-size:14px;line-height:1.5}
 #s9 .newsletter-note{font-size:12px;line-height:1.6}
 #s9 .signoff-social a{font-size:14px}
 #s9 .signoff-contact .map-directions{font-size:13px}
}
@media(max-width:979px) and (orientation:landscape){
 .mobile-menu-links{padding-block:4px;max-height:calc(100svh - 147px)}
 .mobile-menu-links a{min-height:44px;padding-block:8px;font-size:15px;line-height:1.35}
}
/* A slower editorial rhythm; every item remains visible before enhancement. */
.coastal-photo,.johanne-portrait{overflow:hidden}
[data-journey-kind="photo"]{transform-origin:center}
@media(prefers-reduced-motion:reduce){[data-journey-kind]{transform:none!important;opacity:1!important}}
html[data-motion="reduce"] [data-journey-kind]{transform:none!important;opacity:1!important}
/* Calendar artwork is atmospheric, never presented as a property listing. */
#s8{position:relative;isolation:isolate;overflow:hidden;height:auto!important;min-height:0;background:#142f3b;color:#fffdfa}
#s8 .chapter-backdrop{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
#s8 .chapter-media{position:absolute;inset:-40px 0 auto;display:block;width:100%;height:calc(100% + 80px);will-change:transform}
#s8 .chapter-media img{display:block;width:100%;max-width:none;height:100%!important;object-fit:cover;object-position:center 56%}
#s8 .chapter-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#0b2634d8 0%,#0b2634c7 52%,#0b2634b8 100%)}
#s8>.chapter-content{position:relative!important;inset:auto!important;z-index:1}
#s8>.chapter-content>.w980{padding:68px var(--j-gutter)!important;max-width:1440px!important}
#s8 .row1{display:block;max-width:none;margin:0!important}
#s8 .col1{float:none;width:100%;max-width:1050px}
#s8 h2{color:#fffdfa;font-size:clamp(44px,5.2vw,72px)!important;line-height:1.12!important;margin-bottom:24px!important;max-width:none}
#s8 .editorial-kicker{color:#f0dec6;margin-bottom:18px!important}
#s8 .col1 .txt{width:auto;display:grid;grid-template-columns:1fr;gap:14px;max-width:980px}
#s8 .txt p{color:#fffdfa;font:400 16px/1.8 var(--j-body);margin:0;max-width:49ch}
@media(min-width:980px){#s8>.chapter-content>.w980{padding-block:88px!important}#s8 .col1 .txt{grid-template-columns:1fr 1fr;gap:48px}}
@media(prefers-reduced-motion:reduce){#s8 .chapter-media{transform:none!important;will-change:auto}}
html[data-motion="reduce"] #s8 .chapter-media{transform:none!important;will-change:auto}
/* Compact sign-off: identity and brokerage share one baseline, not a long stack. */
#s9 .signoff-main{gap:24px;padding:34px 0}
#s9 .signoff-portrait{width:128px;align-self:center}
#s9 .signoff-message h2{font-size:42px!important;line-height:1.08!important;max-width:none;margin:0 0 14px!important}
#s9 .signoff-message .editorial-kicker{margin-bottom:12px!important}
#s9 blockquote{font-size:16px;line-height:1.6;max-width:46ch;margin:0}
#s9 .signoff-signature{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-top:20px}
#s9 .signoff-name{font-size:18px;line-height:1.4}
#s9 .signoff-name span{font-size:10px;line-height:1.4;margin-top:4px}
#s9 .signoff-signature .signoff-brokerage{width:136px;margin:0}
#s9 .signoff-contact{padding:0}
#s9 .signoff-contact h3{font-size:24px!important;margin-bottom:8px!important}
#s9 .signoff-direct{display:flex;flex-wrap:wrap;gap:0 20px}
#s9 .signoff-direct a{display:inline-flex;align-items:center;min-height:44px;color:var(--j-blue);font:400 16px/1.5 var(--j-body);text-underline-offset:4px;overflow-wrap:anywhere}
#s9 .signoff-contact .signoff-newsletter{margin-top:8px;padding:12px 18px;min-height:48px}
#s9 .newsletter-note{margin:8px 0 0;font-size:12px;line-height:1.5;max-width:46ch}
#s9 .signoff-social{gap:24px;margin-top:8px}
#s9 .signoff-bottom{align-items:center;gap:8px 24px;padding:12px 0;font-size:11px;line-height:1.5}
#s9 .signoff-bottom .map-directions{font:400 13px/1.5 var(--j-body);color:var(--j-blue);min-height:44px}
@media(min-width:980px){
 #s9 .signoff-main{grid-template-columns:164px minmax(0,1.35fr) minmax(280px,1fr);gap:32px;align-items:center;padding:24px 0}
 #s9 .signoff-portrait{width:164px}
 #s9 .signoff-message h2{font-size:40px!important;line-height:1.08!important;margin-bottom:12px!important}
 #s9 .signoff-message .editorial-kicker{font-size:9px;line-height:1.4;margin-bottom:8px!important}
 #s9 blockquote{font-size:15px;line-height:1.55}
 #s9 .signoff-signature{gap:14px 22px;margin-top:14px}
 #s9 .signoff-direct a{font-size:14px}
 #s9 .signoff-contact .signoff-newsletter{font-size:13px;padding:10px 16px}
 #s9 .newsletter-note{font-size:11px;line-height:1.45}
 #s9 .signoff-social a{min-height:36px;font-size:13px}
 #s9 .signoff-bottom{padding:0;min-height:44px}
}
@media(max-width:599px){#s9 .signoff-signature{gap:14px 20px}#s9 .signoff-signature .signoff-brokerage{width:120px}#s9 .signoff-bottom{display:grid;justify-content:start;gap:0;padding-bottom:18px}}
/* Social links remain beside the email as one unbroken, accessible contact row. */
#s9 .signoff-email-row{display:inline-flex;align-items:center;gap:2px;max-width:100%;min-width:0}
#s9 .signoff-email{white-space:nowrap}
#s9 .signoff-email-row .signoff-social{display:flex;gap:0;margin:0;flex:0 0 auto}
#s9 .signoff-email-row .signoff-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;flex:0 0 44px;padding:0;border-radius:6px;text-decoration:none;color:var(--j-blue)}
#s9 .signoff-social svg{display:block;width:18px;height:18px}
#s9 .signoff-social a:hover{background:var(--j-btn-secondary-hover)}
#s9 .signoff-social a:focus-visible{outline:3px solid var(--j-btn-focus);outline-offset:1px}
@media(max-width:360px){#s9 .signoff-direct .signoff-email{font-size:14px}}

/* The layout reserves the final 3:2 frame; only its crop and image transform move. */
#s3 .regional-card-photo img{transform-origin:center}
#s3 .regional-card-photo[data-scroll-photo="active"] img{will-change:transform}
#s3 .item .item_inner .txt_wrapper{display:block}
.dream-choices-wrap{position:relative;min-width:0}
.dream-swipe-cue{position:absolute;top:0;bottom:0;width:14px;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--j-blue)}
.dream-swipe-cue[hidden]{display:none}
.dream-swipe-cue.is-end{right:-18px}
.dream-swipe-cue.is-start{left:-18px}
.dream-swipe-cue svg{display:block;width:14px;height:14px}
@keyframes discover-next{0%,100%{transform:translateY(0)}45%{transform:translateY(4px)}}
@media(prefers-reduced-motion:no-preference){
 .hero-discover .detail-micro-icon{animation:discover-next 1.6s ease .8s 1}
 .advisor-signature .contact-detail>.detail-micro-icon,.signoff-newsletter .detail-micro-icon,.mobile-contactbar .detail-micro-icon{transition:transform .22s ease}
 .advisor-signature .contact-detail:has(a:focus-visible)>.detail-micro-icon{transform:translateY(-2px)}
 .signoff-newsletter:focus-visible .detail-micro-icon{transform:translateX(2px)}
 .advisor-signature .contact-detail:has(a:active)>.detail-micro-icon,.mobile-contactbar a:active .detail-micro-icon{transform:scale(.94)}
 .signoff-newsletter:active .detail-micro-icon{transform:translateX(1px) scale(.94)}
}
@media(prefers-reduced-motion:no-preference) and (hover:hover){
 .advisor-signature .contact-detail:has(a:hover)>.detail-micro-icon{transform:translateY(-2px)}
 .signoff-newsletter:hover .detail-micro-icon{transform:translateX(2px)}
}
@media(prefers-reduced-motion:reduce){
 #s3 .regional-card-photo{clip-path:none!important}
 #s3 .regional-card-photo img{transform:none!important;will-change:auto}
}
html[data-motion="reduce"] #s3 .regional-card-photo{clip-path:none!important}
html[data-motion="reduce"] #s3 .regional-card-photo img{transform:none!important;will-change:auto}
html[data-motion="reduce"] .hero-discover .detail-micro-icon,
html[data-motion="reduce"] .advisor-signature .detail-micro-icon,
html[data-motion="reduce"] .signoff-newsletter .detail-micro-icon,
html[data-motion="reduce"] .mobile-contactbar .detail-micro-icon{transform:none!important}
