/*
Theme Name: Julie Nickerson Realtor
Theme URI: https://julienickerson.ca/
Author: Markethink
Description: A custom, editorial WordPress theme for Julie Nickerson REALTOR®.
Version: 1.2.16
Text Domain: julie-nickerson
*/

:root {
	--ink: #0b0b0b;
	--charcoal: #282828;
	--muted: #686868;
	--cream: #f8f7f4;
	--paper: #fff;
	--red: #e42330;
	--border: rgba(11, 11, 11, 0.13);
	--serif: "Playfair Display", Georgia, serif;
	--display: "Cinzel", "Times New Roman", serif;
	--sans: "Inter", Arial, sans-serif;
	--container: 1400px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-weight: 300; line-height: 1.7; }
body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.08; }
h2 { font-size: clamp(2.45rem, 4.2vw, 4.2rem); }
h3 { font-size: 1.65rem; }
p { font-size: 1rem; }
.container { width: min(calc(100% - 64px), var(--container)); margin-inline: auto; }
.section { padding: clamp(86px, 9vw, 150px) 0; }
.center { text-align: center; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: 10px; left: 10px; transform: translateY(-150%); background: #fff; padding: 10px 16px; color: #000; }
.skip-link:focus { transform: translateY(0); }
.red-rule { width: 94px; height: 6px; margin-bottom: 36px; background: var(--red); }
.red-rule--center { margin-inline: auto; }
.eyebrow, .script-label { margin-bottom: 18px; color: var(--muted); font-family: var(--serif); font-size: .95rem; letter-spacing: .08em; text-transform: uppercase; }
.script-label { font-size: 1.25rem; letter-spacing: .05em; text-transform: none; }
.eyebrow--light { color: rgba(255,255,255,.84); }
.button { display: inline-flex; min-height: 54px; align-items: center; justify-content: center; padding: 15px 34px; border: 1px solid transparent; cursor: pointer; font-size: .73rem; font-weight: 600; letter-spacing: .2em; line-height: 1.2; text-align: center; text-transform: uppercase; transition: background-color .3s ease, border-color .3s ease, color .3s ease, transform .3s ease, box-shadow .3s ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(0,0,0,.1); }
.button--red { border-color: var(--red); background: var(--red); color: #fff; }
.button--red:hover, .button--red:focus-visible { background: #bd1622; border-color: #bd1622; }
.button--outline-light { border-color: rgba(255,255,255,.7); color: #fff; }
.button--outline-light:hover, .button--outline-light:focus-visible { background: #fff; color: #111; }
.button--outline-dark { border-color: #111; color: #111; }
.button--outline-dark:hover, .button--outline-dark:focus-visible { background: #111; color: #fff; }
.text-link { display: inline-flex; gap: 28px; align-items: center; padding-bottom: 6px; border-bottom: 1px solid var(--red); font-size: .78rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.text-link span { color: var(--red); font-size: 1.15rem; }
.button-row { display: flex; flex-wrap: wrap; gap: 16px; }

.site-header { position: absolute; z-index: 30; top: 0; left: 0; width: 100%; color: #fff; animation: header-enter .8s .1s both ease-out; transition: background .25s, transform .25s; }
.site-header.is-scrolled { position: fixed; background: rgba(17,17,17,.96); box-shadow: 0 8px 30px rgba(0,0,0,.12); }
.site-header__inner { display: grid; width: min(calc(100% - 72px), 1780px); min-height: 110px; align-items: center; margin: auto; grid-template-columns: 1fr auto 1fr; }
.site-nav { display: flex; align-items: center; gap: clamp(22px, 2.8vw, 54px); }
.site-nav--right { justify-content: flex-end; }
.site-nav a { position: relative; font-size: .68rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.site-nav a::after { position: absolute; bottom: -8px; left: 0; width: 0; height: 1px; background: var(--red); content: ""; transition: width .25s; }
.site-nav a:hover::after, .site-nav a:focus-visible::after { width: 100%; }
.site-brand { display: flex; min-width: 220px; flex-direction: column; align-items: center; gap: 7px; padding: 0 25px; text-align: center; }
.site-brand img, .site-brand .custom-logo { width: 176px; max-height: 46px; object-fit: contain; }
.site-brand__name { font-family: var(--serif); font-size: .9rem; letter-spacing: .22em; text-transform: uppercase; }
.brand-artwork { position: relative; display: block; overflow: hidden; flex: none; }
/* Use the supplied transparent PNGs intact, displaying their artwork rather than the canvas padding. */
.brand-artwork > img { position: absolute; display: block; max-width: none; max-height: none; height: auto; object-fit: initial; }
.brand-artwork--horizontal { width: 240px; aspect-ratio: 1676 / 332; }
.site-brand .brand-artwork--horizontal > img { width: 119.3317%; left: -10.0835%; top: -164.759%; }
.brand-artwork--stacked { width: min(180px, 100%); aspect-ratio: 722 / 561; }
.brand-artwork--stacked > img { width: 149.5845%; left: -26.5928%; top: -60.4278%; }
.site-brand .custom-logo-link { display: flex; }
body:not(.home) .site-header { background: #111; }
.menu-toggle { display: none; width: 46px; height: 46px; padding: 10px; border: 0; background: transparent; }
.menu-toggle > span:not(.screen-reader-text) { display: block; width: 100%; height: 1px; margin: 6px 0; background: currentColor; }
.mobile-menu { padding: 12px 32px 28px; background: #111; }
.mobile-menu ul { margin: 0; padding: 0; list-style: none; }
.mobile-menu a { display: block; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.12); font-family: var(--serif); font-size: 1.25rem; }

.hero { position: relative; display: grid; min-height: min(1182px, 100vh); place-items: center; overflow: hidden; background: #111; color: #fff; }
.hero__slides { position: absolute; z-index: 0; inset: 0; overflow: hidden; }
.hero__slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.025); background-image: var(--slide-image); background-position: center; background-size: cover; transition: opacity 1.4s ease, transform 7.5s ease-out; }
.hero__slide.is-active { z-index: 1; opacity: 1; transform: scale(1.075); }
.hero__overlay { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.48), rgba(0,0,0,.25)); }
.hero__content { position: relative; z-index: 2; width: min(1100px, calc(100% - 40px)); padding-top: 90px; text-align: center; }
.hero__content > * { opacity: 0; animation: hero-enter .9s both ease-out; }
.hero__content > :nth-child(1) { animation-delay: .3s; }
.hero__content > :nth-child(2) { animation-delay: .42s; }
.hero__content > :nth-child(3) { animation-delay: .56s; }
.hero__content > :nth-child(4) { animation-delay: .7s; }
.hero .eyebrow { margin-bottom: 25px; font-family: var(--sans); font-size: .78rem; letter-spacing: .42em; }
.hero h1:not(.eyebrow), .hero .hero__title { margin-bottom: 28px; font-size: clamp(3.4rem, 6.2vw, 7.2rem); letter-spacing: .055em; text-shadow: 0 10px 30px rgba(0,0,0,.55); text-transform: uppercase; }
.hero__intro { margin-bottom: 42px; font-family: var(--serif); font-size: clamp(1rem, 1.45vw, 1.55rem); letter-spacing: .05em; }
.hero__scroll { position: absolute; z-index: 2; bottom: 28px; left: 50%; display: flex; flex-direction: column; align-items: center; transform: translateX(-50%); font-size: .58rem; letter-spacing: .2em; text-transform: uppercase; }
.hero__scroll span { width: 1px; height: 48px; margin-bottom: 10px; transform-origin: top; background: rgba(255,255,255,.65); animation: scroll-pulse 2.4s infinite ease-in-out; }
.hero__pagination { position: absolute; z-index: 3; right: clamp(26px, 3.1vw, 60px); bottom: clamp(30px, 3vw, 58px); display: flex; align-items: center; gap: 15px; }
.hero__pagination button { position: relative; display: flex; width: 34px; height: 34px; align-items: center; justify-content: center; padding: 0; border: 0; background: transparent; color: rgba(255,255,255,.58); cursor: pointer; font-family: var(--sans); font-size: .58rem; letter-spacing: .12em; transition: color .3s ease; }
.hero__pagination button::after { position: absolute; bottom: 0; width: 28px; height: 1px; transform: scaleX(0); transform-origin: left; background: #fff; content: ""; transition: transform .35s ease; }
.hero__pagination button.is-active { color: #fff; }
.hero__pagination button.is-active::after { transform: scaleX(1); }

.about { background: #fff; }
.about__grid { display: grid; align-items: center; gap: clamp(70px, 9vw, 160px); grid-template-columns: minmax(340px, .9fr) 1.1fr; }
.about__image { position: relative; }
.about__image::before { position: absolute; z-index: 0; top: -60px; left: 28px; width: 1px; height: calc(100% + 120px); background: #e8e8e8; content: ""; }
.about__image img { position: relative; z-index: 1; width: 100%; aspect-ratio: .66; border-radius: 18px; object-fit: cover; object-position: center; filter: saturate(.92); }
.about__copy { max-width: 680px; }
.about__copy .script-label { color: rgba(0,0,0,.35); font-size: clamp(2.5rem, 5vw, 4.8rem); text-transform: uppercase; }
.about__copy h2 { margin-bottom: 35px; }
.about__copy p { color: #444; }
.about__copy .text-link { margin-top: 26px; }

.community { position: relative; display: flex; min-height: 760px; align-items: center; overflow: hidden; background: #111 var(--community-image) 70% center/cover no-repeat; color: #fff; }
.community__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,8,8,.93) 0%, rgba(8,8,8,.73) 47%, rgba(8,8,8,.05) 100%); }
.community__content { position: relative; z-index: 1; }
.community__content > * { max-width: 620px; }
.community h2 { margin-bottom: 30px; font-size: clamp(2.7rem, 4vw, 4.6rem); text-transform: uppercase; }
.community p { color: rgba(255,255,255,.8); }
.community .button { margin-top: 25px; }
.social-row { display: flex; gap: 16px; margin-top: 48px; }
.social-row a { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--red); border-radius: 50%; font-size: .76rem; font-weight: 600; text-transform: uppercase; }
.social-row a { transition: background-color .3s ease, color .3s ease, transform .3s ease; }
.social-row a:hover, .social-row a:focus-visible { transform: translateY(-3px); background: var(--red); color: #fff; }

.section-heading { max-width: 850px; margin-bottom: 68px; }
.section-heading--center { margin-inline: auto; text-align: center; }
.section-heading h2 { margin-bottom: 20px; text-transform: uppercase; }
.section-heading p:last-child { color: var(--muted); }
.property-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
.property-card { position: relative; min-height: 620px; overflow: hidden; background: #111; color: #fff; }
.property-card img { width: 100%; height: 100%; min-height: 620px; object-fit: cover; transition: transform .6s ease; }
.property-card::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.65), transparent 42%); content: ""; }
.property-card > div { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: 35px 28px; text-align: center; }
.property-card p { margin-bottom: 6px; font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; }
.property-card h3 { margin: 0; font-size: 1.35rem; text-transform: uppercase; }
.property-card:hover img { transform: scale(1.035); }
.listings .center { margin-top: 48px; }

.services { padding-bottom: 0; }
.service-row { display: grid; min-height: 780px; grid-template-columns: 1fr 1.1fr; }
.service-row--image-left { grid-template-columns: 1.1fr 1fr; }
.service-copy { display: flex; max-width: 650px; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(60px, 8vw, 150px); }
.service-copy h2 { margin-bottom: 30px; text-transform: uppercase; }
.service-copy p { color: #4a4a4a; }
.service-copy .text-link, .service-copy .button-row { margin-top: 24px; }
.service-image { min-height: 650px; }
.service-image img { width: 100%; height: 100%; object-fit: cover; }

.testimonials { background: var(--cream); }
.testimonial-track { display: grid; gap: 22px; grid-template-columns: repeat(4, 1fr); }
.testimonial-card { position: relative; display: flex; min-height: 480px; flex-direction: column; justify-content: space-between; margin: 0; padding: 58px 40px 36px; border: 1px solid rgba(0,0,0,.06); background: #fff; box-shadow: 0 15px 35px rgba(0,0,0,.03); }
.quote-mark { position: absolute; top: -8px; left: 22px; color: rgba(0,0,0,.06); font-family: var(--serif); font-size: 8rem; line-height: 1; }
.testimonial-card > p { position: relative; color: #444; font-size: .95rem; }
.testimonial-card footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding-top: 24px; border-top: 1px solid var(--border); }
.testimonial-card strong { font-family: var(--display); font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.testimonial-card footer span { color: var(--red); font-size: .7rem; letter-spacing: .09em; }

.insights { background: #fff; }
.insights__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 64px; }
.insights__header h2 { margin-bottom: 0; font-family: var(--display); font-size: clamp(2.7rem, 4.3vw, 4.5rem); text-transform: uppercase; }
.article-grid { display: grid; gap: 48px; grid-template-columns: repeat(3, 1fr); }
.article-card { overflow: hidden; }
.article-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .75s cubic-bezier(.2,.75,.25,1); }
.article-card:hover img { transform: scale(1.025); }
.article-card__meta { display: flex; justify-content: space-between; gap: 20px; margin: 24px 0 12px; padding-bottom: 12px; border-bottom: 1px solid #e6e4df; color: var(--red); font-size: .68rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.article-card h3 { font-size: 1.7rem; }

.guidance { display: grid; min-height: 820px; background: var(--cream); grid-template-columns: .9fr 1.1fr; }
.guidance__content { display: flex; max-width: 780px; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(70px, 7vw, 130px); }
.guidance__content h2 { text-transform: uppercase; }
.guidance-list { width: 100%; margin: 35px 0 45px; border-top: 1px solid var(--border); }
.guidance-list > div { display: grid; align-items: start; padding: 24px 0; border-bottom: 1px solid var(--border); grid-template-columns: 60px 1fr; }
.guidance-list span { color: var(--red); font-size: .72rem; font-weight: 600; }
.guidance-list h3 { margin: 0; font-size: 1.35rem; }
.guidance-list p { max-width: 470px; margin: 12px 0 0; color: #666; font-size: .85rem; line-height: 1.65; }
.guidance__image img { width: 100%; height: 100%; object-fit: cover; }

.faq__grid { display: grid; align-items: start; gap: 80px; grid-template-columns: .75fr 1.25fr; }
.faq__intro { position: sticky; top: 150px; }
.faq__intro h2 { font-family: var(--display); text-transform: uppercase; }
.faq__intro p { color: #555; }
.faq__intro .button { margin-top: 24px; }
.accordion { border-top: 1px solid var(--border); }
.accordion__item { border-bottom: 1px solid var(--border); }
.accordion__item button { display: grid; width: 100%; align-items: center; padding: 28px 0; border: 0; background: transparent; cursor: pointer; grid-template-columns: 1fr 24px; text-align: left; }
.accordion__item button span { padding-right: 30px; font-family: var(--serif); font-size: clamp(1.25rem, 2vw, 1.8rem); }
.accordion__item i { position: relative; width: 18px; height: 18px; }
.accordion__item i::before, .accordion__item i::after { position: absolute; top: 50%; left: 0; width: 18px; height: 1px; background: var(--red); content: ""; }
.accordion__item i::after { transform: rotate(90deg); transition: transform .2s; }
.accordion__item.is-open i::after { transform: rotate(0); }
.accordion__panel { padding: 0 70px 28px 0; }
.accordion__panel p { margin: 0; color: #555; }

.contact { position: relative; display: grid; min-height: 900px; place-items: center; overflow: hidden; background: #111 var(--contact-image) center 35%/cover no-repeat; color: #fff; }
.contact__overlay { position: absolute; inset: 0; background: linear-gradient(rgba(0,0,0,.23), rgba(0,0,0,.42)); }
.contact__content { position: relative; z-index: 1; width: min(850px, calc(100% - 40px)); text-align: center; }
.contact__line { width: 1px; height: 60px; margin: 0 auto 38px; background: rgba(255,255,255,.55); }
.contact h2 { margin-bottom: 30px; font-size: clamp(2.8rem, 5.2vw, 5.5rem); text-shadow: 0 5px 30px rgba(0,0,0,.4); text-transform: uppercase; }
.contact__name { margin-bottom: 36px; font-family: var(--display); font-size: 1.45rem; letter-spacing: .12em; text-transform: uppercase; }
.contact__details { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 24px; margin-top: 38px; font-size: .78rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.contact__details span { width: 1px; height: 14px; background: rgba(255,255,255,.65); }

.contact-modal { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 24px; }
.contact-modal[hidden] { display: none; }
.contact-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.72); backdrop-filter: blur(4px); }
.contact-modal__dialog { position: relative; z-index: 1; width: min(760px, 100%); max-height: calc(100vh - 48px); overflow-y: auto; padding: clamp(35px, 5vw, 70px); background: #fff; box-shadow: 0 30px 100px rgba(0,0,0,.35); }
.contact-modal__dialog h2 { margin-bottom: 12px; font-size: clamp(2rem, 4vw, 3.7rem); }
.contact-modal__close { position: absolute; top: 15px; right: 18px; border: 0; background: transparent; cursor: pointer; font-size: 2rem; line-height: 1; }
.contact-modal form { margin-top: 32px; }
.form-row { display: grid; gap: 20px; grid-template-columns: 1fr 1fr; }
.contact-modal label { display: block; margin-bottom: 18px; color: #444; font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.contact-modal input, .contact-modal select, .contact-modal textarea { display: block; width: 100%; margin-top: 8px; padding: 13px 0; border: 0; border-bottom: 1px solid #aaa; border-radius: 0; background: transparent; color: #111; font-size: .95rem; letter-spacing: normal; outline: none; text-transform: none; }
.contact-modal textarea { border: 1px solid #aaa; padding: 12px; resize: vertical; }
.contact-modal input:focus, .contact-modal select:focus, .contact-modal textarea:focus { border-color: var(--red); }
.honeypot { position: absolute !important; left: -9999px !important; }

.site-footer { padding: 90px 0 30px; background: #2d2d2d; color: rgba(255,255,255,.7); }
.site-footer__grid { display: grid; gap: 60px; grid-template-columns: 1.5fr 1fr 1fr; }
.site-footer__grid > div:not(.site-footer__brand) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.site-footer__brand p { margin: 0 0 24px; font-family: var(--serif); font-size: 1.2rem; letter-spacing: .12em; text-transform: uppercase; }
.site-footer__brand small { display: block; margin-top: 7px; font-family: var(--sans); font-size: .65rem; letter-spacing: .18em; }
.footer-heading { margin-bottom: 15px; color: var(--red); font-size: .67rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.footer-heading--social { margin-top: 28px; }
.site-footer a, .site-footer address { font-size: .83rem; font-style: normal; }
.site-footer a:hover { color: #fff; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 30px; margin-top: 70px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); }
.site-footer__bottom p { margin: 0; font-size: .65rem; letter-spacing: .07em; }

.content-shell { min-height: 70vh; padding: 180px 0 100px; }
.prose { max-width: 900px; }
.prose article { margin-bottom: 70px; }
.prose h1 { font-size: clamp(2.5rem, 6vw, 5rem); }
.content-image { display: block; width: 100%; height: auto; margin: 24px 0; }
.prose .nav-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px; }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .85s ease, transform .85s cubic-bezier(.2,.75,.25,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.about__image.reveal, .service-image.reveal, .article-card.reveal { transform: translateY(18px) scale(.985); }
.about__image.reveal.is-visible, .service-image.reveal.is-visible, .article-card.reveal.is-visible { transform: translateY(0) scale(1); }
.property-card:nth-child(2), .testimonial-card:nth-child(2), .article-card:nth-child(2) { transition-delay: .09s; }
.property-card:nth-child(3), .testimonial-card:nth-child(3), .article-card:nth-child(3) { transition-delay: .18s; }
.testimonial-card:nth-child(4) { transition-delay: .27s; }

@keyframes header-enter {
	from { opacity: 0; transform: translateY(-12px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes hero-enter {
	from { opacity: 0; transform: translateY(18px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes scroll-pulse {
	0%, 100% { opacity: .35; transform: scaleY(.55); }
	50% { opacity: 1; transform: scaleY(1); }
}

/* Desktop proportions follow the approved 1920px Figma frame and scale down fluidly. */
@media (min-width: 1181px) {
	.hero { height: clamp(860px, 61.5625vw, 1182px); min-height: 0; }
	.hero__slide { background-position: center 42%; background-size: 121% auto; }
	.hero__content { width: min(960px, 60vw); padding-top: 2.4vw; }
	.hero .eyebrow { margin-bottom: 1.3vw; font-size: clamp(.68rem, .708vw, .85rem); }
	.hero h1:not(.eyebrow), .hero .hero__title { margin-bottom: 1.45vw; font-size: clamp(4.25rem, 3.7vw, 4.45rem); line-height: 1.07; letter-spacing: .073em; }
	.hero__intro { margin-bottom: 2.2vw; font-size: clamp(1.1rem, 1.25vw, 1.5rem); }
	.hero .button { width: 255px; }

	.about { height: clamp(870px, 60.885vw, 1169px); padding: 0; }
	.about__grid { width: min(76.2vw, 1463px); height: 100%; gap: 5.05vw; grid-template-columns: minmax(0, 30.89vw) minmax(0, 38.65vw); }
	.about__image img { width: 100%; height: min(47.29vw, 908px); aspect-ratio: auto; object-position: center 50%; }
	.about__image::before { top: -3.125vw; height: calc(100% + 6.25vw); }
	.about__copy { max-width: none; }
	.about__copy .red-rule { margin-bottom: 2vw; }
	.about__copy .script-label { margin-bottom: 1.1vw; font-size: clamp(3.4rem, 3.65vw, 4.375rem); line-height: 1; white-space: nowrap; }
	.about__copy h2 { margin-bottom: 1.82vw; font-size: clamp(2.1rem, 2.083vw, 2.5rem); line-height: 1.18; }
	.about__copy p { margin-bottom: 1.25vw; font-size: clamp(.9rem, .833vw, 1rem); line-height: 1.8; }
	.about__copy .text-link { display: none; }

	.community { height: clamp(860px, 62.5vw, 1200px); min-height: 0; background-position: 66% center; }
	.community__shade { background: linear-gradient(90deg, rgba(8,8,8,.95) 0%, rgba(8,8,8,.78) 36%, rgba(8,8,8,.2) 63%, rgba(8,8,8,.02) 100%); }
	.community__content { width: 100%; max-width: none; padding-left: min(12.03vw, 231px); }
	.community__content > * { max-width: min(31vw, 595px); }
	.community .eyebrow { font-size: clamp(1.3rem, 1.46vw, 1.75rem); letter-spacing: .02em; text-transform: none; }
	.community h2 { margin-bottom: 1.55vw; font-size: clamp(2.15rem, 2.333vw, 2.8rem); line-height: 1.15; }
	.community p { max-width: min(25.7vw, 493px); margin-bottom: 1.1vw; font-size: clamp(.9rem, .875vw, 1.05rem); line-height: 1.9; }
	.community .button { width: 255px; margin-top: 1.3vw; }
	.social-row { margin-top: 2.5vw; }

	.listings { height: clamp(1080px, 76.77vw, 1474px); padding: 0; overflow: hidden; }
	.listings > .container { width: 100%; max-width: none; }
	.listings .section-heading { padding-top: min(6.98vw, 134px); margin-bottom: min(3.15vw, 60px); }
	.listings .section-heading h2 { font-size: clamp(3.2rem, 3.333vw, 4rem); }
	.property-grid { width: calc(100% + 10px); gap: min(1.875vw, 36px); margin-left: -5px; }
	.property-card, .property-card img { min-height: 0; height: min(41.667vw, 800px); }
	.property-card::after { background: linear-gradient(0deg, rgba(0,0,0,.78), transparent 28%); }
	.property-card > div { padding: min(2.15vw, 41px) 28px; }
	.property-card h3 { font-size: clamp(1.05rem, 1.25vw, 1.5rem); letter-spacing: .025em; }
	.listings .center { margin-top: min(4.15vw, 80px); }
	.listings .button { width: 278px; min-height: 62px; }

	.services { height: clamp(1650px, 113.333vw, 2176px); padding: 0; overflow: hidden; }
	.service-row { height: 50%; min-height: 0; grid-template-columns: 45% 55%; }
	.service-row--image-left { grid-template-columns: 55% 45%; }
	.service-image { align-self: center; height: min(46.875vw, 900px); min-height: 0; }
	.service-image img { object-position: center; }
	.service-row--image-left .service-image img { object-position: center 55%; }
	.service-copy { max-width: none; padding: 0 4.5vw 0 min(15.23vw, 292px); }
	.service-row--image-left .service-copy { padding: 0 min(8vw, 154px) 0 min(5.42vw, 104px); }
	.service-copy h2 { margin-bottom: min(1.55vw, 30px); font-size: clamp(2.45rem, 2.5vw, 3rem); }
	.service-copy p { max-width: 540px; font-size: clamp(.94rem, .917vw, 1.1rem); line-height: 1.85; }
	.service-copy .button { width: 214px; }

	.testimonials { height: clamp(900px, 62.292vw, 1196px); padding: 0; overflow: hidden; }
	.testimonials > .container { width: 100%; max-width: none; }
	.testimonials .section-heading { padding-top: min(7.29vw, 140px); margin-bottom: min(3.3vw, 64px); }
	.testimonials .section-heading h2 { font-size: clamp(3rem, 3.125vw, 3.75rem); }
	.testimonial-track { width: max-content; gap: min(2.5vw, 48px); margin-left: min(1.25vw, 24px); grid-template-columns: repeat(4, min(25vw, 480px)); }
	.testimonial-card { width: min(25vw, 480px); min-height: 0; height: min(35.573vw, 683px); padding: min(4.2vw, 80px) min(2.5vw, 48px) min(2vw, 38px); }
	.testimonial-card > p { font-size: clamp(.84rem, .833vw, 1rem); line-height: 1.85; }

	.insights { height: clamp(750px, 51.615vw, 991px); padding: 0; background: var(--cream); }
	.insights > .container { width: min(83.333vw, 1600px); max-width: none; }
	.insights__header { padding-top: min(3.02vw, 58px); margin-bottom: min(3.4vw, 65px); }
	.insights__header h2 { font-size: clamp(3rem, 3.333vw, 4rem); }
	.article-grid { gap: min(2.917vw, 56px); }
	.article-card img { height: min(19.375vw, 372px); aspect-ratio: auto; }
	.article-card__meta { margin-top: min(1.25vw, 24px); font-size: clamp(.55rem, .573vw, .688rem); }
	.article-card h3 { font-size: clamp(1.35rem, 1.46vw, 1.75rem); }

	.guidance { min-height: clamp(720px, 49.375vw, 948px); grid-template-columns: 45% 55%; }
	.guidance__content { max-width: none; padding: 4vw min(5vw, 96px) 4vw min(5.99vw, 115px); }
	.guidance__content .red-rule { width: 54px; height: 3px; margin-bottom: 18px; }
	.guidance__content .eyebrow { margin-bottom: 1.2vw; font-family: var(--sans); font-size: .7rem; letter-spacing: .18em; }
	.guidance__content h2 { margin-bottom: 1.2vw; font-size: clamp(2.35rem, 2.5vw, 3rem); line-height: 1.12; text-transform: none; }
	.guidance__content > p:not(.eyebrow) { max-width: 565px; font-size: clamp(.86rem, .833vw, 1rem); line-height: 1.75; }
	.guidance-list { margin: min(1.5vw, 29px) 0 min(1.8vw, 35px); }
	.guidance-list > div { padding: min(1.12vw, 22px) 0; }
	.guidance-list p { margin-top: 8px; line-height: 1.55; }
	.guidance__image { position: relative; min-height: 0; }
	.guidance__image img { position: absolute; inset: 0; }

	.faq { min-height: clamp(790px, 53.802vw, 1033px); padding: 0; }
	.faq__grid { width: min(72.917vw, 1400px); max-width: none; gap: min(3.333vw, 64px); padding-top: min(5.833vw, 112px); grid-template-columns: 35% 60%; }
	.faq__intro { position: static; padding-top: min(2.86vw, 55px); }
	.faq__intro h2 { font-size: clamp(2.6rem, 2.7vw, 3.25rem); line-height: 1.12; }
	.faq__intro p { max-width: 450px; font-size: clamp(.86rem, .833vw, 1rem); line-height: 1.75; }
	.accordion__item button { padding: min(1.46vw, 28px) 0; }
	.accordion__item button span { font-size: clamp(1.35rem, 1.542vw, 1.85rem); }

	.contact { height: clamp(900px, 65.625vw, 1260px); min-height: 0; background-position: center 42%; }
	.contact__content { width: min(48vw, 920px); }
	.contact h2 { margin-bottom: min(1.6vw, 31px); font-size: clamp(3rem, 3.333vw, 4rem); line-height: 1.12; }
	.contact__name { margin-bottom: min(1.9vw, 36px); }

	.site-footer { min-height: clamp(430px, 29.427vw, 565px); padding: min(4.69vw, 90px) 0 min(1.56vw, 30px); }
	.site-footer__grid { width: min(76vw, 1460px); max-width: none; gap: min(6vw, 115px); grid-template-columns: 1.45fr 1fr 1fr; }
	.site-footer__bottom { width: min(76vw, 1460px); max-width: none; margin-top: min(3.65vw, 70px); }
}

@media (max-width: 1180px) {
	.site-nav { gap: 18px; }
	.site-nav a { font-size: .58rem; }
	.site-brand { min-width: 185px; }
	.testimonial-track { overflow-x: auto; grid-template-columns: repeat(4, minmax(310px, 1fr)); scroll-snap-type: x mandatory; }
	.testimonial-card { min-height: 420px; scroll-snap-align: start; }
	.service-copy, .guidance__content { padding: 75px 60px; }
}

@media (max-width: 900px) {
	.container { width: min(calc(100% - 40px), var(--container)); }
	.site-header__inner { width: calc(100% - 32px); min-height: 84px; grid-template-columns: 1fr auto; }
	.site-nav { display: none; }
	.site-brand { align-items: flex-start; min-width: 0; padding: 0; }
	.site-brand img, .site-brand .custom-logo { width: 145px; }
	.site-brand__name { font-size: .78rem; }
	.menu-toggle { display: block; }
	.hero { min-height: 820px; }
	.hero__content { padding-top: 70px; }
	.about__grid, .faq__grid { gap: 55px; grid-template-columns: 1fr; }
	.about__image { width: min(560px, 100%); margin: auto; }
	.about__image img { aspect-ratio: .8; object-position: center 32%; }
	.about__copy { margin: auto; }
	.community { min-height: 760px; background-position: 62% center; }
	.community__shade { background: rgba(0,0,0,.67); }
	.property-grid, .article-grid { gap: 22px; grid-template-columns: 1fr; }
	.property-card, .property-card img { min-height: 520px; }
	.service-row, .service-row--image-left, .guidance { grid-template-columns: 1fr; }
	.service-row--image-left .service-image { order: 2; }
	.service-row--image-left .service-copy { order: 1; }
	.service-image { min-height: 560px; }
	.guidance__image { min-height: 580px; }
	.insights__header { align-items: flex-start; flex-direction: column; }
	.faq__intro { position: static; }
	.contact { min-height: 800px; }
	.site-footer__grid { grid-template-columns: 1.4fr 1fr; }
}

@media (max-width: 600px) {
	.brand-artwork--horizontal { width: min(210px, 62vw); }
	.section { padding: 78px 0; }
	.hero { min-height: 720px; }
	.hero__slide { background-position: 60% center; }
	.hero__pagination { right: 16px; bottom: 20px; gap: 6px; }
	.hero__pagination button { width: 28px; }
	.hero h1:not(.eyebrow), .hero .hero__title { font-size: clamp(2.8rem, 13vw, 4.2rem); }
	.hero__intro { font-size: 1rem; }
	.about__image::before { display: none; }
	.about__copy .script-label { font-size: 2.2rem; }
	.community { min-height: 700px; }
	.property-card, .property-card img { min-height: 440px; }
	.service-copy, .guidance__content { padding: 70px 24px; }
	.service-image { min-height: 440px; }
	.testimonial-card { min-height: 460px; padding: 55px 30px 30px; }
	.insights__header h2 { font-size: 2.5rem; }
	.guidance__image { min-height: 430px; }
	.accordion__item button span { font-size: 1.2rem; }
	.accordion__panel { padding-right: 25px; }
	.contact { min-height: 760px; background-position: 47% center; }
	.contact h2 { font-size: 2.5rem; }
	.contact__details { flex-direction: column; gap: 8px; letter-spacing: .06em; text-transform: none; }
	.contact__details span { display: none; }
	.form-row { grid-template-columns: 1fr; }
	.site-footer__grid { grid-template-columns: 1fr; }
	.site-footer__bottom { flex-direction: column; }
}

@media (max-width: 360px) {
	.home #commercial .service-copy h2 { font-size: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
	.reveal { opacity: 1; transform: none; }
	.site-header, .hero__content > *, .hero__scroll span { animation: none !important; opacity: 1; transform: none; }
	.hero__slide { transform: none !important; }
}

/* ==========================================================================
   Inner pages (1.2.7). Scoped to header navigation and jn- components only;
   homepage rules above are unchanged. Desktop measurements follow the
   reference layouts at 1280x720 (5vw = 64px, 90vw = 1152px).
   ========================================================================== */

/* Residential dropdown (desktop) and nested mobile fallback links. */
.site-nav__item { position: relative; display: flex; align-items: center; }
.site-nav__caret { display: inline-block; width: 5px; height: 5px; margin: 0 0 3px 8px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); }
.site-nav__submenu { position: absolute; z-index: 40; top: calc(100% + 22px); left: -24px; min-width: 240px; margin: 0; padding: 14px 0; list-style: none; background: rgba(17,17,17,.97); box-shadow: 0 18px 40px rgba(0,0,0,.22); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; }
.site-nav__submenu::before { position: absolute; top: -22px; right: 0; left: 0; height: 22px; content: ""; }
.site-nav__item:hover .site-nav__submenu, .site-nav__item:focus-within .site-nav__submenu { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s; }
.site-nav .site-nav__submenu a { display: block; padding: 11px 24px; color: rgba(255,255,255,.82); white-space: nowrap; }
.site-nav .site-nav__submenu a::after { display: none; }
.site-nav .site-nav__submenu a:hover, .site-nav .site-nav__submenu a:focus-visible { background: rgba(255,255,255,.07); color: #fff; }
.site-nav a:focus-visible, .mobile-menu a:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.mobile-menu .sub-menu { margin: 0; padding: 0 0 0 18px; list-style: none; }
.mobile-menu .sub-menu a { font-family: var(--sans); font-size: .95rem; }
/* The ten expanded links are taller than a 320x568 screen: keep the menu within the viewport below
   the 84px mobile header bar (also when the scrolled header is fixed) and let it scroll on its own. */
@media (max-width: 900px) {
	.mobile-menu { max-height: calc(100vh - 84px); max-height: calc(100dvh - 84px); overflow-y: auto; overscroll-behavior: contain; }
}

/* Transparent header over an inner photographic hero or the dark Contact stage; scrolled state keeps its dark background. */
body.jn-inner-page:has(.jn-hero, .jn-stage) .site-header:not(.is-scrolled) { background: transparent; }

/* Page canvas and shared type: off-white body, Cinzel uppercase headings, Inter body copy. */
.jn-inner { display: block; overflow-x: clip; background: var(--cream); }
.jn-page { color: var(--ink); }
.jn-page h2, .jn-page h3 { font-family: var(--display); font-weight: 400; letter-spacing: .02em; text-transform: uppercase; }
.jn-page h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); line-height: 1.2; }
.jn-page h3 { font-size: 1.2rem; line-height: 1.35; }
.jn-eyebrow { margin: 0 0 20px; color: var(--muted); font-family: var(--sans); font-size: .8rem; font-weight: 500; letter-spacing: .24em; line-height: 1.5; text-transform: uppercase; }
.jn-lead { color: var(--charcoal); font-size: 1.2rem; line-height: 1.75; }
.jn-page p a:not(.button):not(.text-link), .jn-numbered__list a { border-bottom: 1px solid var(--red); }
.jn-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 36px; }
.jn-inner a:focus-visible, .jn-inner button:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.jn-inner [id] { scroll-margin-top: 120px; }

/* Common hero: 85vh full-width photograph, header overlays it, text left at a 5vw inset. */
.jn-hero { position: relative; isolation: isolate; display: flex; min-height: 85vh; min-height: 85svh; align-items: center; overflow: hidden; padding: 150px 5vw 72px; background: #111; color: #fff; }
.jn-hero__image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.jn-hero__image--top { object-position: center 25%; }
.jn-hero__shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.36) 55%, rgba(0,0,0,.14) 100%), linear-gradient(180deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,0) 34%); }
.jn-hero__content { width: 100%; max-width: 760px; }
.jn-hero .jn-eyebrow { margin-bottom: 22px; color: rgba(255,255,255,.88); }
.jn-hero__title { margin: 0 0 26px; font-family: var(--display); font-size: clamp(2.5rem, 5.5vw, 4.4rem); font-weight: 400; line-height: 1.1; text-transform: uppercase; overflow-wrap: break-word; text-wrap: balance; }
.jn-hero--compact .jn-hero__title { font-size: clamp(2.3rem, 4.5vw, 3.6rem); }
.jn-hero__intro { max-width: 600px; margin: 0; color: rgba(255,255,255,.9); font-size: 1rem; font-weight: 300; line-height: 1.7; }

/* Centered introduction. */
.jn-intro { padding: clamp(80px, 10vw, 128px) 24px; text-align: center; }
.jn-intro__inner { max-width: 900px; margin: 0 auto; }
.jn-page .jn-intro__title { margin: 0 0 32px; font-size: clamp(2.1rem, 4vw, 3.2rem); line-height: 1.15; }
.jn-intro p:not(.jn-eyebrow) { margin: 0 0 20px; color: #3d3d3d; font-size: clamp(1.05rem, 1.44vw, 1.15rem); line-height: 1.8; }
.jn-intro p:last-child { margin-bottom: 0; }
.jn-intro--places .jn-places { justify-content: center; margin-bottom: 24px; }

/* Alternating editorial rows: 58% photo and 48% text panel overlapping by 6% inside 90vw.
   Light rows: photo left, white panel right. Dark rows: photo right, charcoal panel left. */
.jn-rows { display: grid; width: min(90vw, 1600px); margin: 0 auto; padding: clamp(96px, 12.5vw, 160px) 0; row-gap: clamp(96px, 12.5vw, 160px); }
.jn-intro + .jn-rows, .jn-archive + .jn-rows { padding-top: 0; }
.jn-rows + .jn-intro { padding-top: 0; }
.jn-archive + .jn-intro { padding-top: clamp(32px, 4vw, 48px); }
.jn-row { display: grid; align-items: center; grid-template-columns: minmax(0, 52fr) minmax(0, 6fr) minmax(0, 42fr); }
.jn-row--media-right { grid-template-columns: minmax(0, 42fr) minmax(0, 6fr) minmax(0, 52fr); }
.jn-row__media { grid-row: 1; grid-column: 1 / 3; margin: 0; overflow: hidden; background: #1a1a1a; aspect-ratio: 4 / 3; }
.jn-row__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.jn-row__media .jn-row__image--top { object-position: center 22%; }
.jn-row__panel { position: relative; z-index: 1; grid-row: 1; grid-column: 2 / 4; padding: clamp(48px, 6.25vw, 80px) clamp(32px, 5vw, 64px); background: #fff; color: var(--ink); }
.jn-row--media-right .jn-row__media { grid-column: 2 / 4; }
.jn-row--media-right .jn-row__panel { grid-column: 1 / 3; }
.jn-row--dark .jn-row__panel { background: #111; color: #fff; }
.jn-row--dark .jn-eyebrow { color: rgba(255,255,255,.7); }
.jn-page .jn-row__title { margin: 0 0 24px; font-size: clamp(1.5rem, 2.25vw, 1.8rem); line-height: 1.25; }
.jn-row__panel p:not(.jn-eyebrow) { margin: 0 0 18px; color: #444; font-size: 1.05rem; line-height: 1.8; }
.jn-row--dark .jn-row__panel p:not(.jn-eyebrow) { color: rgba(255,255,255,.84); }
.jn-row__panel > :last-child { margin-bottom: 0; }
.jn-row__panel .text-link { margin-top: 8px; }
.jn-row--dark .jn-places li { color: #fff; }

/* Community names as an understated inline list. */
.jn-places { display: flex; flex-wrap: wrap; gap: 6px 0; margin: 0 0 18px; padding: 0; list-style: none; }
.jn-places li { font-size: .95rem; line-height: 1.6; }
.jn-places li:not(:last-child)::after { margin: 0 12px; color: var(--muted); content: "\00B7"; }

/* Compact invitation before the closing call to action. */
.jn-invite { padding: 0 24px clamp(96px, 12.5vw, 160px); text-align: center; }
.jn-invite__inner { max-width: 720px; margin: 0 auto; padding-top: clamp(48px, 5vw, 64px); border-top: 1px solid var(--border); }
.jn-page .jn-invite__title { margin: 0 0 18px; font-size: clamp(1.4rem, 2vw, 1.8rem); }
.jn-invite p { color: #4a4a4a; }
.jn-invite__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 40px; margin: 28px 0 0; }

/* Large photographic closing call to action. */
.jn-photo-cta { position: relative; isolation: isolate; display: flex; min-height: clamp(520px, 100vh, 960px); align-items: center; justify-content: center; overflow: hidden; padding: 120px 24px; background: #111; color: #fff; text-align: center; }
.jn-photo-cta__image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.jn-photo-cta__shade { position: absolute; z-index: -1; inset: 0; background: rgba(0,0,0,.56); }
.jn-photo-cta__content { width: 100%; max-width: 872px; }
.jn-photo-cta .jn-eyebrow { color: rgba(255,255,255,.85); }
.jn-page .jn-photo-cta__title { margin: 0 0 24px; font-size: clamp(2rem, 3.5vw, 2.8rem); line-height: 1.3; }
.jn-photo-cta p:not(.jn-eyebrow) { max-width: 640px; margin: 0 auto; color: rgba(255,255,255,.88); font-size: 1.05rem; line-height: 1.8; }
.jn-photo-cta p a:not(.button) { border-bottom-color: rgba(255,255,255,.6); }
.jn-photo-cta p.jn-photo-cta__contact { margin-top: 36px; font-size: .9rem; letter-spacing: .08em; }

/* About: slim in-page navigation, then the biography collage. */
.jn-subnav { border-bottom: 1px solid var(--border); background: #fff; }
.jn-subnav ul { display: flex; min-height: 110px; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px clamp(24px, 4vw, 64px); margin: 0; padding: 20px 5vw; list-style: none; }
.jn-subnav a { display: inline-block; padding: 8px 0; border-bottom: 1px solid transparent; font-size: .8rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; transition: border-color .2s ease; }
.jn-subnav a:hover { border-bottom-color: var(--red); }
.jn-bio { display: grid; width: min(90vw, 1600px); margin: 0 auto; padding: clamp(80px, 10vw, 128px) 0; align-items: center; column-gap: clamp(40px, 8.75vw, 112px); grid-template-columns: minmax(0, 41fr) minmax(0, 49fr); }
/* Backdrop 374x533 with the portrait 340x558 layered over its lower right (sizes at 1280px). */
.jn-collage { position: relative; margin: 0; padding-bottom: 25%; }
.jn-collage__backdrop { display: block; width: 79%; height: auto; aspect-ratio: 374 / 533; object-fit: cover; }
.jn-collage__portrait { position: absolute; right: 0; bottom: 0; width: 72%; height: auto; aspect-ratio: 340 / 558; object-fit: cover; object-position: center top; box-shadow: 0 30px 60px rgba(0,0,0,.18); }
.jn-bio__copy h2 { margin: 0 0 28px; }
.jn-bio__copy p:not(.jn-eyebrow):not(.jn-lead) { color: #444; font-size: 1.05rem; line-height: 1.85; }

/* Number-led, vertically separated list. */
.jn-numbered { padding: clamp(96px, 12.5vw, 160px) 0; background: #fff; }
.jn-numbered__inner { display: grid; width: min(90vw, 1600px); margin: 0 auto; align-items: start; column-gap: clamp(40px, 8.75vw, 112px); row-gap: 48px; grid-template-columns: minmax(0, 41fr) minmax(0, 49fr); }
.jn-numbered__head h2 { margin: 0 0 24px; }
.jn-numbered__head p:not(.jn-eyebrow) { color: #444; line-height: 1.85; }
.jn-numbered__list { margin: 0; padding: 0; border-top: 1px solid var(--border); counter-reset: jn-number; list-style: none; }
.jn-numbered__list > li { display: grid; padding: 32px 0; border-bottom: 1px solid var(--border); column-gap: 32px; counter-increment: jn-number; grid-template-columns: 56px minmax(0, 1fr); }
.jn-numbered__list > li::before { grid-row: 1 / span 2; color: var(--muted); content: counter(jn-number, decimal-leading-zero); font-family: var(--display); font-size: 1.6rem; line-height: 1.2; }
.jn-numbered__list h3 { margin: 0 0 10px; }
.jn-numbered__list p { margin: 0; color: #4a4a4a; }

/* Awards. */
.jn-awards-band { padding: clamp(96px, 12.5vw, 160px) 5vw; text-align: center; }
.jn-awards-band h2 { margin: 0 0 18px; }
.jn-awards-band__text { margin: 0 auto 56px; color: #555; }
.jn-awards { display: grid; max-width: 1152px; margin: 0 auto; padding: 0; list-style: none; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.jn-awards li { padding: 16px 32px; border-left: 1px solid var(--border); }
.jn-awards li:first-child { border-left: 0; }
.jn-awards strong { display: block; font-family: var(--display); font-size: clamp(1.2rem, 1.8vw, 1.5rem); font-weight: 400; line-height: 1.3; text-transform: uppercase; }
.jn-awards span { display: block; margin-top: 12px; color: var(--muted); font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; }

/* Testimonial. */
.jn-quote { padding: clamp(96px, 12.5vw, 160px) 24px; background: #fff; }
.jn-quote figure { max-width: 900px; margin: 0 auto; text-align: center; }
.jn-quote blockquote { margin: 0; }
.jn-quote blockquote::before { display: block; height: 56px; color: rgba(0,0,0,.16); content: "\201C"; font-family: var(--display); font-size: 6rem; line-height: 1; }
.jn-quote blockquote p { color: var(--charcoal); font-family: var(--serif); font-size: clamp(1.2rem, 2vw, 1.55rem); line-height: 1.65; }
.jn-quote figcaption { margin-top: 32px; font-family: var(--display); font-size: .9rem; letter-spacing: .14em; text-transform: uppercase; }
.jn-quote figcaption span { display: block; margin-top: 6px; color: var(--muted); font-family: var(--sans); font-size: .72rem; letter-spacing: .16em; }

/* Photographic archive grids: two columns for properties, three for the Knowledge Base. */
.jn-archive { padding: clamp(64px, 7.5vw, 96px) 5vw; }
.jn-archive--three { padding: 64px 5vw clamp(96px, 12.5vw, 160px); }
.jn-archive--flush { padding-top: 0; }
.jn-archive__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 48px; margin: 0 0 40px; }
.jn-page .jn-archive__title { margin: 0; font-size: clamp(1.5rem, 2.25vw, 1.8rem); }
.jn-archive__head p { max-width: 600px; margin: 0; color: #555; }
.jn-archive--two .jn-card-grid { display: grid; gap: 32px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jn-archive--three .jn-card-grid, .jn-tiles { display: grid; gap: 48px 32px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.jn-archive__note { margin: 40px 0 0; color: #555; font-size: .9rem; }

/* Dynamic property and article cards: image-led, unboxed, content-aware heights. */
.jn-card { display: flex; flex-direction: column; }
.jn-card__link { display: flex; flex: 1; flex-direction: column; }
.jn-card__media { position: relative; overflow: hidden; background: #1a1a1a; aspect-ratio: 3 / 2; }
.jn-card__image { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.jn-card__image--empty { background: linear-gradient(135deg, #3a3a3a, #141414); }
.jn-card__link:hover .jn-card__image { transform: scale(1.03); }
.jn-card__status { position: absolute; top: 20px; left: 20px; padding: 7px 14px; background: #111; color: #fff; font-size: .66rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.jn-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 10px; padding: 24px 0 0; }
.jn-card__label { margin: 0; color: var(--muted); font-size: .72rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.jn-page .jn-card__title { margin: 0; font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.3; }
.jn-card__excerpt { margin: 0; color: #4a4a4a; font-size: .95rem; }
.jn-card__more { margin-top: auto; padding-top: 8px; border-bottom: 1px solid var(--red); font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.jn-tiles { margin: 0; padding: 0; list-style: none; }
.jn-tile__link { display: flex; height: 100%; flex-direction: column; }
.jn-tile__media { overflow: hidden; background: #1a1a1a; aspect-ratio: 4 / 3; }
.jn-tile__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.jn-tile__media .jn-tile__image--top { object-position: center 22%; }
.jn-tile__link:hover .jn-tile__media img { transform: scale(1.03); }
.jn-tile__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 10px; padding-top: 24px; }
.jn-tile__body .jn-eyebrow { margin: 0; }
.jn-page .jn-tile__title { margin: 0; font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.3; }
.jn-tile__text { margin: 0; color: #4a4a4a; }
.jn-tile__more { margin-top: auto; padding-top: 8px; border-bottom: 1px solid var(--red); font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.jn-empty { max-width: 760px; margin: 0; padding: 36px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); color: #444; font-family: var(--serif); font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.6; }
.jn-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 48px 0 0; padding: 0; list-style: none; }
.jn-pagination li > .page-numbers { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 0 14px; border: 1px solid var(--border); background: #fff; font-size: .8rem; }
.jn-pagination li > .current { border-color: #111; background: #111; color: #fff; }

/* Native inline form (light default, for use outside the Contact stage). */
.jn-form__grid { display: grid; gap: 28px 32px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jn-form__field--full { grid-column: 1 / -1; }
.jn-form label { display: block; margin-bottom: 8px; color: #333; font-size: .75rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.jn-form__hint { color: var(--muted); font-weight: 400; letter-spacing: .04em; text-transform: none; }
.jn-form input, .jn-form select, .jn-form textarea { display: block; width: 100%; min-height: 52px; padding: 12px 14px; border: 1px solid #8d8d8d; border-radius: 0; background: #fff; color: #111; font-size: 1rem; }
.jn-form textarea { min-height: 150px; resize: vertical; }
.jn-form input:focus-visible, .jn-form select:focus-visible, .jn-form textarea:focus-visible { border-color: var(--red); outline: 2px solid var(--red); outline-offset: 2px; }
.jn-form .button { margin-top: 32px; }
.jn-form__note { margin: 16px 0 0; color: var(--muted); font-size: .85rem; }

/* Contact: full-width dark photographic stage with a large centered title and the form on black. */
.jn-stage { position: relative; isolation: isolate; overflow: hidden; padding: clamp(150px, 16vw, 210px) 5vw clamp(96px, 12.5vw, 160px); background: #0b0b0b; color: #fff; color-scheme: dark; }
.jn-stage__image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.jn-stage__shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.86) 42%, #0b0b0b 78%); }
.jn-stage__head { max-width: 900px; margin: 0 auto clamp(56px, 6vw, 80px); text-align: center; }
.jn-stage .jn-eyebrow { color: rgba(255,255,255,.8); }
.jn-stage__title { margin: 0 0 28px; font-family: var(--display); font-size: clamp(3.2rem, 7.8vw, 6.25rem); font-weight: 400; letter-spacing: .04em; line-height: 1; text-transform: uppercase; }
.jn-stage__head p:not(.jn-eyebrow) { max-width: 640px; margin: 0 auto; color: rgba(255,255,255,.86); font-size: 1.05rem; line-height: 1.8; }
.jn-stage__form { max-width: 960px; margin: 0 auto; }
.jn-stage .jn-form__grid { gap: 44px 56px; }
.jn-stage .jn-form label { margin-bottom: 4px; color: rgba(255,255,255,.9); }
.jn-stage .jn-form__hint { color: rgba(255,255,255,.66); }
.jn-stage .jn-form input, .jn-stage .jn-form select { padding: 12px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.6); background: transparent; color: #fff; }
.jn-stage .jn-form select option { background: #111; color: #fff; }
.jn-stage .jn-form textarea { border-color: rgba(255,255,255,.6); background: transparent; color: #fff; }
.jn-stage .jn-form input:focus-visible, .jn-stage .jn-form select:focus-visible, .jn-stage .jn-form textarea:focus-visible { border-color: #fff; outline: 2px solid var(--red); outline-offset: 2px; }
.jn-stage .jn-form .button { min-width: 240px; margin-top: 48px; }
.jn-stage .jn-form__note { color: rgba(255,255,255,.66); }

/* Contact directory on off-white. */
.jn-directory { padding: clamp(96px, 12.5vw, 160px) 0; }
.jn-directory__inner { display: grid; width: 90vw; max-width: 1152px; margin: 0 auto; align-items: start; column-gap: clamp(40px, 8.75vw, 112px); row-gap: 48px; grid-template-columns: minmax(0, 41fr) minmax(0, 49fr); }
.jn-directory h2 { margin: 0 0 16px; }
.jn-directory p:not(.jn-eyebrow) { color: #444; }
.jn-page .jn-directory__sub { margin: 40px 0 16px; font-size: 1rem; letter-spacing: .14em; }
.jn-details { margin: 0; padding: 0; border-top: 1px solid var(--border); list-style: none; }
.jn-details li { padding: 26px 0; border-bottom: 1px solid var(--border); }
.jn-details__label { display: block; margin-bottom: 6px; color: var(--muted); font-size: .72rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.jn-details a, .jn-details address { font-family: var(--serif); font-size: clamp(1.1rem, 1.5vw, 1.3rem); font-style: normal; overflow-wrap: anywhere; }

@media (max-width: 1100px) {
	.jn-archive--three .jn-card-grid, .jn-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.jn-hero { padding: 132px 20px 56px; }
	.jn-rows, .jn-bio, .jn-numbered__inner, .jn-directory__inner { width: calc(100% - 40px); }
	.jn-rows { row-gap: 72px; padding-bottom: 96px; }
	.jn-row, .jn-row--media-right { grid-template-columns: minmax(0, 1fr); }
	.jn-row__media, .jn-row--media-right .jn-row__media { grid-row: 1; grid-column: 1; }
	.jn-row__panel, .jn-row--media-right .jn-row__panel { grid-row: 2; grid-column: 1; padding: 40px 24px; }
	.jn-bio, .jn-numbered__inner, .jn-directory__inner { grid-template-columns: minmax(0, 1fr); row-gap: 56px; }
	.jn-collage { width: 100%; max-width: 440px; margin-inline: auto; }
	.jn-awards { grid-template-columns: minmax(0, 1fr); }
	.jn-awards li { padding: 24px 0; border-top: 1px solid var(--border); border-left: 0; }
	.jn-awards li:first-child { border-top: 0; }
	.jn-archive, .jn-archive--three { padding-right: 20px; padding-left: 20px; }
	.jn-stage { padding: 140px 20px 96px; }
	.jn-photo-cta { min-height: clamp(480px, 85vh, 760px); padding: 96px 20px; }
}

@media (max-width: 600px) {
	.jn-hero__title, .jn-hero--compact .jn-hero__title { font-size: clamp(1.9rem, 9vw, 2.6rem); }
	.jn-archive--two .jn-card-grid, .jn-archive--three .jn-card-grid, .jn-tiles { grid-template-columns: minmax(0, 1fr); }
	.jn-actions .button { width: 100%; }
	.jn-subnav ul { min-height: 0; justify-content: flex-start; padding: 16px 20px; column-gap: 24px; }
	.jn-numbered__list > li { column-gap: 20px; grid-template-columns: 40px minmax(0, 1fr); }
	.jn-numbered__list > li::before { font-size: 1.25rem; }
	.jn-form__grid, .jn-stage .jn-form__grid { gap: 32px; grid-template-columns: minmax(0, 1fr); }
	.jn-form .button, .jn-stage .jn-form .button { width: 100%; min-width: 0; }
	.jn-stage__title { font-size: clamp(2.6rem, 14vw, 3.4rem); }
}

@media (prefers-reduced-motion: reduce) {
	.site-nav__submenu, .jn-subnav a, .jn-card__image, .jn-tile__media img { transition: none; }
	.jn-card__link:hover .jn-card__image, .jn-tile__link:hover .jn-tile__media img { transform: none; }
}

/* ==========================================================================
   Inner page polish (1.2.8). Appended only: the homepage and 1.2.7 inner rules
   above are unchanged. Residential gateway and rural feature, Commercial split
   introduction, service columns and spotlight, Buyers/Sellers step labels, and
   an optional fade-in for [data-jn-motion] blocks.
   ========================================================================== */

/* Long uppercase words wrap instead of being clipped on narrow screens. */
.jn-page h2, .jn-page h3 { overflow-wrap: break-word; }

/* Buyers and Sellers: restrained step labels inside the existing editorial panels.
   Buyers keeps a small inline label; Sellers (ledger) sets the numeral larger. */
.jn-row__panel p.jn-step { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; color: var(--ink); font-family: var(--display); font-size: 1rem; letter-spacing: .12em; line-height: 1; }
.jn-row--dark .jn-row__panel p.jn-step { color: #fff; }
.jn-step::after { width: 40px; height: 1px; background: var(--red); content: ""; }
.jn-step span { color: var(--muted); font-family: var(--sans); font-size: .7rem; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; }
.jn-row--dark .jn-step span { color: rgba(255,255,255,.7); }
.jn-rows--ledger .jn-row__panel p.jn-step { flex-direction: column; align-items: flex-start; gap: 12px; font-size: clamp(2.2rem, 3.4vw, 3rem); letter-spacing: .02em; }
.jn-rows--ledger .jn-step::after { width: 56px; }

/* Residential: buying and selling as a linked two-panel gateway (the whole panel follows its link). */
.jn-gateway { display: grid; width: min(90vw, 1600px); margin: 0 auto; padding: 0 0 clamp(96px, 12.5vw, 160px); gap: clamp(24px, 3vw, 40px); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jn-gateway__panel { position: relative; display: flex; flex-direction: column; background: #fff; color: var(--ink); }
.jn-gateway__panel--dark { background: #111; color: #fff; }
.jn-gateway__media { margin: 0; overflow: hidden; background: #1a1a1a; aspect-ratio: 3 / 2; }
.jn-gateway__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.jn-gateway__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: clamp(32px, 4vw, 56px) clamp(24px, 4vw, 56px) clamp(40px, 4.5vw, 64px); }
.jn-gateway__panel--dark .jn-eyebrow { color: rgba(255,255,255,.7); }
.jn-page .jn-gateway__title { margin: 0 0 20px; font-size: clamp(1.5rem, 2.25vw, 1.8rem); line-height: 1.25; }
.jn-gateway__body p:not(.jn-eyebrow) { margin: 0 0 18px; color: #444; font-size: 1.05rem; line-height: 1.8; }
.jn-gateway__panel--dark .jn-gateway__body p:not(.jn-eyebrow) { color: rgba(255,255,255,.84); }
.jn-gateway__body p:last-child { margin: auto 0 0; padding-top: 8px; }
.jn-gateway .text-link::after { position: absolute; inset: 0; content: ""; }

/* Residential: rural, relocation and investment as one photo-led feature band. */
.jn-feature { display: grid; background: #fff; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
.jn-feature__media { position: relative; min-height: 100%; margin: 0; overflow: hidden; background: #1a1a1a; }
.jn-feature__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.jn-feature__body { display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 9vw, 128px) 5vw; }
.jn-feature__item { max-width: 640px; }
.jn-feature__item + .jn-feature__item { margin-top: clamp(40px, 4.5vw, 64px); padding-top: clamp(40px, 4.5vw, 64px); border-top: 1px solid var(--border); }
.jn-page .jn-feature__title { margin: 0 0 24px; font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.2; }
.jn-feature__item p:not(.jn-eyebrow) { margin: 0 0 18px; color: #444; font-size: 1.05rem; line-height: 1.8; }
.jn-feature__item p:last-child { margin-bottom: 0; }

/* Residential: recently sold as a slim two-column note between hairlines. */
.jn-strip { padding: clamp(80px, 10vw, 128px) 5vw 0; }
.jn-strip__inner { display: grid; max-width: 1152px; margin: 0 auto; padding: clamp(40px, 5vw, 64px) 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); align-items: start; column-gap: clamp(32px, 6vw, 96px); row-gap: 20px; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.jn-page .jn-strip__title { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.2; }
.jn-strip__body p { margin: 0 0 18px; color: #444; font-size: 1.05rem; line-height: 1.8; }
.jn-strip__body p:last-child { margin-bottom: 0; }

/* Commercial: split introduction, title left and copy right of a hairline (centered on small screens). */
.jn-lede { padding: clamp(80px, 10vw, 128px) 5vw; }
.jn-lede__inner { display: grid; max-width: 1152px; margin: 0 auto; align-items: start; column-gap: clamp(40px, 6vw, 96px); row-gap: 28px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jn-page .jn-lede__title { margin: 0; font-size: clamp(1.9rem, 3.2vw, 2.6rem); line-height: 1.2; text-wrap: balance; }
.jn-lede__body { padding-left: clamp(24px, 4vw, 56px); border-left: 1px solid var(--border); }
.jn-lede__body p { margin: 0 0 20px; color: #3d3d3d; font-size: clamp(1.05rem, 1.44vw, 1.15rem); line-height: 1.8; }
.jn-lede__body p:last-child { margin-bottom: 0; }

/* Commercial: buying, selling and leasing as three understated columns. */
.jn-services { padding: clamp(96px, 12.5vw, 160px) 5vw; background: #fff; }
.jn-services__list { display: grid; max-width: 1152px; margin: 0 auto; padding: 0; list-style: none; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.jn-service { padding: 8px clamp(24px, 3vw, 40px) 0; border-left: 1px solid var(--border); }
.jn-service:first-child { padding-left: 0; border-left: 0; }
.jn-service:last-child { padding-right: 0; }
.jn-page .jn-service__title { margin: 0 0 20px; font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.3; }
.jn-service p:not(.jn-eyebrow) { margin: 0 0 16px; color: #444; line-height: 1.8; }
.jn-service p:last-child { margin-bottom: 0; }

/* Commercial: local strategy beside Julie's portrait on a dark band. */
.jn-spotlight { display: grid; padding: clamp(96px, 12.5vw, 160px) max(5vw, calc((100% - 1152px) / 2)); background: #111; color: #fff; align-items: center; column-gap: clamp(40px, 7vw, 112px); grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
.jn-spotlight__media { margin: 0; overflow: hidden; background: #1a1a1a; aspect-ratio: 4 / 5; }
.jn-spotlight__image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.jn-spotlight .jn-eyebrow { color: rgba(255,255,255,.7); }
.jn-page .jn-spotlight__title { margin: 0 0 24px; font-size: clamp(1.9rem, 3.2vw, 2.6rem); line-height: 1.2; }
.jn-spotlight__body p:not(.jn-eyebrow) { margin: 0 0 18px; color: rgba(255,255,255,.84); font-size: 1.1rem; line-height: 1.85; }
.jn-spotlight__body p:last-child { margin-bottom: 0; }

/* Optional fade-in. site.js adds .jn-motion to <html> and .jn-motion-pending to blocks below the
   fold only once its observer is running. Without JavaScript, with reduced motion or in print every
   block stays visible, and a block holding keyboard focus is shown at once. */
@media screen and (prefers-reduced-motion: no-preference) {
	.jn-motion .jn-page [data-jn-motion] { transition: opacity .55s cubic-bezier(.2,.75,.25,1) var(--jn-delay, 0ms), transform .55s cubic-bezier(.2,.75,.25,1) var(--jn-delay, 0ms); }
	.jn-motion .jn-page [data-jn-motion].jn-motion-pending { opacity: 0; transform: translateY(16px); }
	.jn-motion .jn-page [data-jn-motion="photo"].jn-motion-pending { transform: translateY(10px); }
	.jn-motion .jn-page [data-jn-motion].jn-motion-pending:focus, .jn-motion .jn-page [data-jn-motion].jn-motion-pending:focus-within { opacity: 1; transform: none; transition: none; }
}

/* Subtle hover feedback on linked panels and arrow links. */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.jn-page .text-link span { transition: transform .3s ease; }
	.jn-page .text-link:hover span { transform: translateX(4px); }
	.jn-gateway__panel:hover .jn-gateway__media img { transform: scale(1.03); }
}

@media (max-width: 900px) {
	.jn-gateway { width: calc(100% - 40px); padding-bottom: 96px; grid-template-columns: minmax(0, 1fr); }
	.jn-feature { grid-template-columns: minmax(0, 1fr); }
	.jn-feature__media { min-height: 0; aspect-ratio: 3 / 2; }
	.jn-feature__body { padding: 72px 20px; }
	.jn-strip { padding: 80px 20px 0; }
	.jn-strip__inner { grid-template-columns: minmax(0, 1fr); }
	.jn-lede { padding: 80px 20px; text-align: center; }
	.jn-lede__inner { grid-template-columns: minmax(0, 1fr); }
	.jn-lede__body { padding: 28px 0 0; border-top: 1px solid var(--border); border-left: 0; }
	.jn-services { padding: 96px 20px; }
	.jn-services__list { grid-template-columns: minmax(0, 1fr); }
	.jn-service, .jn-service:last-child { padding: 32px 0; border-top: 1px solid var(--border); border-left: 0; }
	.jn-service:first-child { padding-top: 0; border-top: 0; }
	.jn-spotlight { padding: 96px 20px; row-gap: 48px; grid-template-columns: minmax(0, 1fr); }
	.jn-spotlight__media { width: 100%; max-width: 440px; justify-self: center; }
}

@media (max-width: 420px) {
	.jn-page .jn-intro__title, .jn-page .jn-lede__title { font-size: clamp(1.6rem, 7.4vw, 2.1rem); }
}

@media (prefers-reduced-motion: reduce) {
	.jn-page [data-jn-motion] { opacity: 1; transform: none; transition: none; }
	.jn-gateway__media img, .jn-page .text-link span { transition: none; }
}

/* ==========================================================================
   Portrait crops (1.2.9). Appended only: every rule above is unchanged.
   raw-02.jpeg is a wide photograph of Julie at a laptop with her face right of
   centre (about 65% across, 32% down), so each use of that source keeps her
   face inside its crop: inner images by their source, and the homepage
   community band by its background source. The homepage couch portrait keeps
   more headroom above her hair.
   ========================================================================== */
.jn-page img[src$="/raw-02.jpeg"] { object-position: 78% 38%; }
.community[style*="raw-02.jpeg"] { background-position: 78% 38%; }
.service-row--image-left .service-image img[src$="/julie-couch-highres.jpg"] { object-position: center 22%; }

/* ==========================================================================
   Property detail pages (1.2.10). Appended only: every rule above is unchanged.
   Used by julie_property bodies authored inside <div class="jn-page jn-page--property">,
   which index.php renders full-bleed: a centered photographic hero (address,
   locality, price over a fine rule), a key-facts strip, the description beside
   an at-a-glance list, a planning note (land) or highlights and room sizes
   (homes), a dark showing band, then location, source and related listings.
   The hero keeps .jn-hero, so the existing transparent-header rule applies.
   ========================================================================== */

/* Hero: nearly a full viewport, centered uppercase address, price below a fine rule. */
.jn-hero--property { min-height: 92vh; min-height: 92svh; justify-content: center; padding: 150px 5vw 96px; text-align: center; }
.jn-hero--property .jn-hero__shade { background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.28) 32%, rgba(0,0,0,.32) 64%, rgba(0,0,0,.6) 100%); }
.jn-hero--property .jn-hero__content { max-width: 1040px; }
.jn-hero--property .jn-hero__title { margin: 0 0 18px; font-size: clamp(2.4rem, 6vw, 5rem); letter-spacing: .04em; line-height: 1.05; }
.jn-hero__locality { margin: 0; color: rgba(255,255,255,.9); font-size: .85rem; font-weight: 500; letter-spacing: .24em; line-height: 1.6; text-transform: uppercase; }
.jn-hero__price { width: min(260px, 70%); margin: 30px auto 0; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.55); font-family: var(--display); font-size: clamp(1.6rem, 2.6vw, 2.1rem); letter-spacing: .06em; line-height: 1.2; }
.jn-hero__meta { margin: 12px 0 0; color: rgba(255,255,255,.78); font-size: .7rem; font-weight: 500; letter-spacing: .2em; line-height: 1.6; text-transform: uppercase; }

/* Key facts: one generous row of label and value pairs separated by hairlines. */
.jn-facts { padding: 0 5vw; border-bottom: 1px solid var(--border); background: #fff; }
.jn-facts__list { display: grid; max-width: 1280px; margin: 0 auto; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; }
.jn-facts__item { padding: clamp(36px, 4.5vw, 56px) clamp(12px, 2vw, 28px); border-left: 1px solid var(--border); text-align: center; }
.jn-facts__item:first-child { border-left: 0; }
.jn-facts dt { margin: 0 0 12px; color: var(--muted); font-size: .7rem; font-weight: 500; letter-spacing: .2em; line-height: 1.5; text-transform: uppercase; }
.jn-facts dd { margin: 0; font-family: var(--display); font-size: clamp(1.15rem, 1.7vw, 1.45rem); line-height: 1.3; overflow-wrap: break-word; }
.jn-facts dd small { display: block; margin-top: 8px; color: var(--muted); font-family: var(--sans); font-size: .8rem; letter-spacing: .02em; }

/* Description beside an at-a-glance list. */
.jn-overview { padding: clamp(96px, 12.5vw, 160px) 5vw; }
.jn-overview__inner { display: grid; max-width: 1152px; margin: 0 auto; align-items: start; column-gap: clamp(40px, 7vw, 112px); row-gap: 56px; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.jn-page .jn-overview__title { margin: 0 0 28px; font-size: clamp(1.9rem, 3.2vw, 2.6rem); line-height: 1.2; text-wrap: balance; }
.jn-overview__copy p:not(.jn-eyebrow) { margin: 0 0 20px; color: #3d3d3d; font-size: clamp(1.05rem, 1.44vw, 1.15rem); line-height: 1.85; }
.jn-overview__copy .button { margin-top: 16px; }
.jn-glance { padding-top: 40px; }
.jn-page .jn-glance__title { margin: 0 0 16px; font-size: .95rem; letter-spacing: .16em; }
.jn-glance__list { margin: 0; border-top: 1px solid var(--border); }
.jn-glance__list div { display: grid; padding: 16px 0; border-bottom: 1px solid var(--border); column-gap: 20px; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
.jn-glance__list dt { color: var(--muted); font-size: .72rem; font-weight: 500; letter-spacing: .18em; line-height: 1.9; text-transform: uppercase; }
.jn-glance__list dd { margin: 0; color: var(--charcoal); }

/* Land: planning note between hairlines, with the caution set apart. */
.jn-planning { padding: 0 5vw clamp(96px, 12.5vw, 160px); }
.jn-planning__inner { display: grid; max-width: 1152px; margin: 0 auto; padding: clamp(40px, 5vw, 64px) 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); align-items: start; column-gap: clamp(32px, 6vw, 96px); row-gap: 20px; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.jn-page .jn-planning__title { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.2; }
.jn-planning__body p { margin: 0 0 18px; color: #444; font-size: 1.05rem; line-height: 1.8; }
.jn-planning__body p.jn-planning__caution { margin: 0; padding-left: 20px; border-left: 2px solid var(--red); color: var(--ink); font-weight: 400; }

/* Homes: room sizes as a two-column ledger. */
.jn-rooms { padding: clamp(96px, 12.5vw, 160px) 5vw; }
.jn-rooms__inner { display: grid; max-width: 1152px; margin: 0 auto; align-items: start; column-gap: clamp(40px, 7vw, 112px); row-gap: 40px; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.jn-page .jn-rooms__title { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.2; }
.jn-rooms__list { display: grid; margin: 0; border-top: 1px solid var(--border); column-gap: clamp(24px, 4vw, 56px); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jn-rooms__list div { padding: 22px 0; border-bottom: 1px solid var(--border); }
.jn-rooms__list dt { font-family: var(--display); font-size: 1.05rem; letter-spacing: .04em; line-height: 1.35; text-transform: uppercase; }
.jn-rooms__list dd { margin: 6px 0 0; color: #555; font-size: .95rem; }

/* Dark showing band. */
.jn-showing { padding: clamp(96px, 12.5vw, 160px) 5vw; background: #111; color: #fff; text-align: center; }
.jn-showing__inner { max-width: 760px; margin: 0 auto; }
.jn-showing .jn-eyebrow { color: rgba(255,255,255,.7); }
.jn-page .jn-showing__title { margin: 0 0 20px; font-size: clamp(1.9rem, 3.2vw, 2.6rem); line-height: 1.2; text-wrap: balance; }
.jn-showing p:not(.jn-eyebrow) { max-width: 600px; margin: 0 auto; color: rgba(255,255,255,.84); line-height: 1.8; }
.jn-page .jn-showing p a:not(.button) { border-bottom-color: rgba(255,255,255,.6); }
.jn-showing p.jn-showing__contact { margin-top: 36px; font-size: .9rem; letter-spacing: .08em; overflow-wrap: anywhere; }
.jn-showing p.jn-showing__brokerage { margin-top: 10px; color: rgba(255,255,255,.66); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; }

/* Location, primary source and related listings. */
.jn-locale { padding: clamp(96px, 12.5vw, 160px) 5vw; }
.jn-locale__inner { display: grid; max-width: 1152px; margin: 0 auto; align-items: start; column-gap: clamp(40px, 7vw, 112px); row-gap: 56px; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.jn-page .jn-locale__title { margin: 0 0 20px; font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.2; }
.jn-locale__copy p:not(.jn-eyebrow) { margin: 0 0 18px; color: #444; line-height: 1.8; }
.jn-locale__copy p.jn-locale__links { display: flex; flex-wrap: wrap; gap: 20px 40px; margin: 28px 0 0; }
.jn-locale__copy p.jn-locale__note { margin: 40px 0 0; padding-top: 20px; border-top: 1px solid var(--border); color: var(--muted); font-size: .85rem; }
.jn-locale__related { padding-left: clamp(24px, 4vw, 56px); border-left: 1px solid var(--border); }
.jn-locale__related p { margin: 0 0 16px; }
.jn-locale__list { margin: 0 0 28px; padding: 0; border-top: 1px solid var(--border); list-style: none; }
.jn-locale__list li { border-bottom: 1px solid var(--border); }
.jn-locale__list a { display: block; padding: 18px 0; font-family: var(--display); font-size: 1.1rem; letter-spacing: .04em; line-height: 1.35; text-transform: uppercase; }
.jn-locale__list a span { display: block; margin-top: 4px; color: var(--muted); font-family: var(--sans); font-size: .72rem; letter-spacing: .18em; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.jn-locale__list a { transition: color .2s ease; }
	.jn-locale__list a:hover { color: var(--red); }
}

@media (max-width: 900px) {
	.jn-hero--property { padding: 132px 20px 64px; }
	.jn-facts { padding: 0 20px; }
	.jn-facts__list { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jn-facts__item { border-top: 1px solid var(--border); border-left: 0; }
	.jn-facts__item:nth-child(-n+2) { border-top: 0; }
	.jn-facts__item:nth-child(even) { border-left: 1px solid var(--border); }
	.jn-facts__item:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.jn-overview, .jn-rooms, .jn-showing, .jn-locale { padding: 96px 20px; }
	.jn-planning { padding: 0 20px 96px; }
	.jn-overview__inner, .jn-planning__inner, .jn-rooms__inner, .jn-locale__inner { grid-template-columns: minmax(0, 1fr); }
	.jn-glance { padding-top: 0; }
	.jn-locale__related { padding: 40px 0 0; border-top: 1px solid var(--border); border-left: 0; }
}

@media (max-width: 600px) {
	.jn-hero--property .jn-hero__title { font-size: clamp(1.9rem, 9vw, 2.6rem); }
	.jn-hero__locality { font-size: .75rem; letter-spacing: .18em; }
	.jn-rooms__list { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 420px) {
	.jn-glance__list div { grid-template-columns: minmax(0, 1fr); row-gap: 2px; }
}

/* ==========================================================================
   Supplied copy and new paths (1.2.11). Appended only: every rule above is unchanged.
   Recently Sold archive introduction with two paragraphs, the Knowledge Base
   YouTube icon, and the Current Listings manual carousel. The carousel styles
   apply only once site.js has enhanced the existing property card grid; without
   JavaScript the cards keep their responsive two-column grid.
   ========================================================================== */

.jn-archive__head p + p { margin-top: 12px; }

/* Knowledge Base: linked YouTube icon below the local guidance copy. */
.jn-social { margin: 28px 0 0; }
.jn-social__link { display: inline-flex; min-width: 48px; min-height: 48px; align-items: center; justify-content: center; color: var(--red); }
.jn-social__icon { display: block; width: 48px; height: 48px; }
.jn-social__link:hover, .jn-social__link:focus-visible { color: #bd1622; }

/* Current Listings: manual carousel over the existing cards. No auto-advance. */
.jn-carousel__controls { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin: 0 0 24px; }
.jn-carousel__controls[hidden] { display: none; }
.jn-carousel__button { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--ink); border-radius: 50%; background: transparent; color: var(--ink); cursor: pointer; font-size: 1.1rem; line-height: 1; }
.jn-carousel__button:hover:not([aria-disabled="true"]) { background: var(--ink); color: #fff; }
.jn-carousel__button:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.jn-carousel__button[aria-disabled="true"] { opacity: .35; cursor: default; }
.jn-carousel.is-enhanced .jn-card-grid { display: grid; gap: 32px; grid-auto-columns: calc((100% - 32px) / 2); grid-auto-flow: column; grid-template-columns: none; overflow-x: auto; overscroll-behavior-x: contain; padding-bottom: 12px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.jn-carousel.is-enhanced .jn-card { scroll-snap-align: start; }
.jn-carousel.is-enhanced .jn-card-grid:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }

@media (max-width: 600px) {
	.jn-carousel.is-enhanced .jn-card-grid { gap: 20px; grid-auto-columns: 86%; }
}

@media (prefers-reduced-motion: reduce) {
	.jn-carousel.is-enhanced .jn-card-grid { scroll-behavior: auto; }
}

/* ==========================================================================
   Homepage feedback (1.2.12). Scoped to body.home so inner pages are unchanged.
   "Niagara REALTOR®" is the hero h1 but keeps the exact small eyebrow look of
   the paragraph it replaces (body weight and line height, no heading margins),
   and every homepage eyebrow and script label renders uppercase at all widths.
   ========================================================================== */

.home .eyebrow, .home .script-label, .home .community .eyebrow { text-transform: uppercase; }
.home .hero h1.eyebrow { margin: 0 0 25px; font-family: var(--sans); font-size: .78rem; font-weight: 300; line-height: 1.7; letter-spacing: .42em; }

@media (min-width: 1181px) {
	.home .hero h1.eyebrow { margin-bottom: 1.3vw; font-size: clamp(.68rem, .708vw, .85rem); }
}

/* October feedback: the available featured cards stay centered, including a single listing. */
.home .property-grid { width: 100%; margin-left: 0; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.home .property-grid > .property-card:only-child { width: min(100%, 560px); justify-self: center; }
.home .listings .center.button-row { justify-content: center; }
.social-row svg { display: block; }
.jn-quote [data-julie-review] + [data-julie-review] { margin-top: 56px; }
.jn-quote [data-julie-review][hidden], .jn-review-controls[hidden] { display: none; }
.jn-quote [data-julie-reviews], .jn-quote [data-julie-review] { min-width: 0; }
.jn-quote:has(.jn-review-controls:not([hidden])) [data-julie-review] { margin-top: 0; }
.jn-review-controls { display: flex; align-items: center; justify-content: center; gap: 20px; margin: 36px auto 0; }
.jn-review-controls p { margin: 0; color: var(--muted); font-size: .8rem; }
.jn-past-sales { margin-top: 48px; row-gap: 48px; }
.jn-past-sales__contact { max-width: 1280px; margin: 36px auto 0; }

@media (max-width: 600px) {
	.home .hero__pagination { right: 20px; left: 20px; justify-content: center; }
	.home .hero__scroll { bottom: 76px; }
}

@media (min-width: 1181px) {
	.home .hero__slide { background-size: cover; }
}

.home .about__copy .script-label { font-size: clamp(2.6rem, 4vw, 4.8rem); line-height: 1.15; white-space: normal; }
.home .about__copy h2 { font-size: clamp(2.4rem, 2.65vw, 3.2rem); line-height: 1.15; }
.jn-page--recently-sold .jn-hero__title { font-size: clamp(3rem, 6vw, 5.2rem); }
.jn-page--recently-sold .jn-archive__title { font-size: clamp(2.3rem, 3.8vw, 3.5rem); }
.jn-portfolio-card .jn-card__media { background: #f2f0eb; }
.jn-portfolio-card .jn-card__image { object-fit: cover; object-position: center bottom; }
.jn-portfolio-card:hover .jn-card__image { transform: none; }
.jn-client-experiences { padding: clamp(64px, 7vw, 112px) max(24px, calc((100% - 1280px) / 2)); background: var(--cream); }
.jn-client-experiences > h2 { margin-bottom: 48px; text-align: center; font-size: clamp(2.2rem, 4vw, 3.6rem); }
.jn-client-experiences__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.jn-client-experiences figure { min-width: 0; margin: 0; padding: clamp(24px, 3vw, 44px); background: #fff; }
.jn-client-experiences blockquote { margin: 0 0 28px; }
.jn-client-experiences blockquote p { font-family: var(--serif); font-size: 1.15rem; line-height: 1.75; }
.jn-client-experiences figcaption { font-weight: 600; }
.jn-client-experiences figcaption span { display: block; margin-top: 6px; color: var(--muted); font-size: .8rem; font-weight: 400; }
@media (min-width: 1181px) {
    .home .about__copy .script-label { font-size: clamp(3.6rem, 4vw, 4.8rem); }
    .site-nav { gap: clamp(18px, 2vw, 38px); }
    .site-nav a { font-size: clamp(.8rem, .8vw, .95rem); letter-spacing: .1em; }
    .site-header__inner { width: min(calc(100% - 48px), 1780px); }
}
@media (max-width: 700px) {
    .jn-client-experiences__grid { grid-template-columns: 1fr; }
    .home .about__copy h2 { font-size: 2.35rem; }
}
@media (min-width: 901px) and (max-width: 1180px) {
    .site-header__inner { width: calc(100% - 40px); }
    .site-nav { gap: 14px; }
    .site-nav a { font-size: .72rem; letter-spacing: .08em; }
    .site-brand { min-width: 215px; padding: 0 12px; }
    .site-brand .brand-artwork--horizontal { width: 210px; }
}
