/* Shared RENOVA city-page framework. City imagery and copy live in publishing/cities/. */
.city-guide-page .site-header{color:var(--ink);border-bottom-color:var(--line);background:var(--paper)}
.city-guide-page .brand img{filter:none}
.city-guide-page.menu-open .site-header{color:var(--paper);background:var(--brand-ink)}
.city-guide-page.menu-open .brand img{filter:brightness(0) invert(1)}
.city-guide-page .desktop-nav a[aria-current]:after{right:0}
.city-guide-page :focus-visible{outline:2px solid var(--brand-accent);outline-offset:6px}
.city-guide{--city-space:clamp(76px,8vw,132px)}
.city-guide *{min-width:0}
.city-guide figure,.city-guide h1,.city-guide h2,.city-guide h3,.city-guide p{margin:0}
.city-shell{width:calc(100% - var(--gutter)*2);max-width:1536px;margin-inline:auto}
.city-section{padding-block:var(--city-space)}
.city-eyebrow{display:block;color:var(--brand-accent);font-size:11px;line-height:1.65;letter-spacing:.14em;text-transform:uppercase}
.city-guide h2{font-size:clamp(42px,4.4vw,72px);font-weight:400;line-height:1.02;letter-spacing:-.047em;text-wrap:balance}
.city-guide h2 em,.city-guide h1 em{font-family:var(--serif);font-weight:400;color:var(--brand-accent)}
.city-guide p{color:var(--brand-text-soft);line-height:1.8;text-wrap:pretty}
.city-link{display:flex;align-items:center;justify-content:space-between;gap:30px;width:fit-content;min-width:230px;max-width:100%;min-height:48px;padding:12px 0;border-bottom:1px solid currentColor;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.city-link .arrow-icon{width:18px;height:18px;transition:transform .25s}
.city-link:hover .arrow-icon{transform:translate(3px,-3px)}
.city-hero{padding-top:132px}
.city-breadcrumb{display:flex;gap:13px;align-items:center;font-size:11px;color:var(--brand-muted);letter-spacing:.04em}
.city-breadcrumb a{padding-block:10px}
.city-breadcrumb a:hover{text-decoration:underline;text-underline-offset:4px}
.city-hero-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;padding:40px 0 43px}
.city-guide h1{font-size:clamp(72px,10.8vw,176px);font-weight:400;letter-spacing:-.065em;line-height:.91}
.city-guide h1 em{letter-spacing:-.07em}
.city-hero-aside{max-width:252px;padding-bottom:5px}
.city-hero-aside p{font-size:13px;line-height:1.75;margin-top:15px}
.city-hero-image{position:relative;isolation:isolate;overflow:hidden;background:var(--brand-stone);aspect-ratio:2.15;min-height:400px}
.city-hero-image>img{width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:grayscale(1) contrast(1.035) brightness(1.035);transform:translate3d(0,var(--city-pan,0px),0) scale(1.06)}
.city-hero-image:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(18,20,20,.16),transparent 30%,transparent 55%,rgba(18,20,20,.48))}
.city-viewfinder{position:absolute;inset:22px;width:calc(100% - 44px);height:calc(100% - 44px);z-index:2;pointer-events:none;color:rgba(241,239,233,.55);stroke:currentColor;stroke-width:1}
.city-hero-edition{position:absolute;z-index:3;top:43px;left:46px;color:var(--brand-paper-soft);font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.city-hero-note{position:absolute;z-index:3;left:46px;bottom:44px}
.city-hero-note p{font-size:clamp(44px,5.7vw,88px);line-height:1;letter-spacing:-.04em;color:var(--brand-paper-soft)}
.city-hero-note em{font-family:var(--serif);font-weight:400}
.city-hero-scroll{position:absolute;z-index:3;right:46px;bottom:47px;display:flex;gap:35px;align-items:center;min-height:48px;padding:10px 0;border-bottom:1px solid rgba(241,239,233,.7);color:var(--brand-paper-soft);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.city-hero-scroll svg{width:20px;height:20px;transition:transform .3s}
.city-hero-scroll:hover svg{transform:translateY(4px)}
.city-hero-image :focus-visible{outline-color:var(--brand-paper-soft)}
.city-photo-caption{display:flex;justify-content:space-between;gap:25px;padding:16px 0;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--brand-muted)}
.city-photo-caption a{text-decoration:underline;text-underline-offset:4px}
.city-index{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:24px;padding:15px 0}
.city-index>span{font-family:var(--serif);font-style:italic;color:var(--brand-accent);font-size:19px}
.city-index nav{display:flex;gap:clamp(18px,3.5vw,55px)}
.city-index a{padding:10px 0;font-size:11px;letter-spacing:.07em;text-transform:uppercase}
.city-index a:hover{text-decoration:underline;text-underline-offset:6px}
.city-intro{display:grid;grid-template-columns:1.06fr 1fr;gap:11%}
.city-intro h2{margin-top:25px}
.city-intro-copy{padding-top:37px}
.city-intro-copy p+p{margin-top:20px}
.city-intro-copy .city-link{margin-top:22px}
.city-notation{max-width:330px;margin-top:42px;color:var(--brand-accent)}
.city-notation svg{width:100%;display:block;stroke:currentColor;stroke-width:1.1;stroke-linecap:square;stroke-linejoin:miter}
.city-drawing-guide{opacity:.28;stroke-width:.7}
.city-drawing-detail{opacity:.65}
.city-notation>div{display:flex;align-items:center;gap:15px;padding-left:36px;margin-top:8px;font-size:10px;letter-spacing:.15em;text-transform:uppercase}
.city-notation i{height:1px;width:20px;background:var(--brand-line)}
.can-draw .city-drawing-line,.can-draw .city-drawing-detail{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.2s cubic-bezier(.3,.4,.2,1)}
.can-draw .city-drawing-detail{transition-delay:.45s}
.can-draw.is-drawn .city-drawing-line,.can-draw.is-drawn .city-drawing-detail{stroke-dashoffset:0}
.city-work{background:var(--brand-charcoal);color:var(--paper)}
.city-work .city-eyebrow,.city-work h2 em{color:var(--brand-sand-light)}
.city-section-heading{display:flex;justify-content:space-between;gap:70px;align-items:flex-end;margin-bottom:55px}
.city-section-heading h2{margin-top:22px}
.city-section-heading>p{max-width:315px;font-size:14px}
.city-work p{color:var(--brand-text-on-dark)}
.city-projects{display:grid;grid-template-columns:1fr;gap:130px;padding:20px 0 15px}
.city-project{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:9%;align-items:center}
.city-project:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(0,1.45fr)}
.city-project:nth-child(even) .city-project-visual{grid-column:2;grid-row:1}
.city-project:nth-child(even) .city-project-copy{grid-column:1;grid-row:1}
.city-project-visual{position:relative;margin:0 25px 70px 0}
.city-project-image{display:block;overflow:hidden;aspect-ratio:1.18;background:var(--brand-charcoal-raised)}
.city-project-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.city-project-image:hover img{transform:scale(1.025)}
.city-project-detail{position:absolute;z-index:2;width:37%;right:-6%;bottom:-15%;padding:0;background:transparent}
.city-project-detail img{width:100%;height:auto;aspect-ratio:.88;object-fit:cover}
.city-project-detail figcaption{font-size:9px;color:var(--brand-text-on-dark);letter-spacing:.05em;text-transform:uppercase;line-height:1.6;padding:10px 0 0}
/* Project photographs use clean edges across every city guide. */
.city-project-rule{display:none}
.city-project-copy{max-width:470px}
.city-project-meta{color:var(--brand-sand-light);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.city-project-type{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-text-on-dark);margin-top:7px}
.city-project h3{font-size:clamp(38px,4.7vw,72px);font-weight:400;letter-spacing:-.045em;line-height:1.02;margin-top:24px}
.city-project p{font-size:14px;margin-top:21px;max-width:520px}
.city-project .city-scope{font-size:11px;letter-spacing:.02em;color:var(--brand-sand-light);margin-top:18px}
.city-project .city-link{margin-top:18px}
.city-work :focus-visible{outline-color:var(--brand-sand-light)}
.city-services{display:grid;grid-template-columns:.9fr 1.4fr;gap:10%}
.city-services-heading{position:sticky;top:120px;align-self:start}
.city-services-heading h2{margin-top:25px}
.city-services-heading>p{max-width:335px;margin-top:27px;font-size:14px}
.city-services-heading .city-link{margin-top:24px}
.city-service-list{border-top:1px solid var(--line)}
.city-service{display:grid;grid-template-columns:24px 1fr 24px;gap:20px;padding:25px 0;border-bottom:1px solid var(--line);transition:padding .25s}
.city-service:hover{padding-left:8px}
.city-service:hover h3{color:var(--brand-accent)}
.city-service>span{font-size:10px;line-height:32px;color:var(--brand-accent)}
.city-service h3{font-size:clamp(23px,2.1vw,31px);font-weight:400;letter-spacing:-.035em;line-height:1.2}
.city-service p{max-width:490px;margin-top:9px;font-size:13px;line-height:1.7}
.city-service>svg{margin-top:6px;width:19px;height:19px}
.city-other-services{grid-column:1/-1;margin-top:35px;display:flex;gap:20px;align-items:baseline;border-top:1px solid var(--line);padding-top:25px;font-size:13px}
.city-other-services p{color:var(--brand-muted)}
.city-other-services a{text-decoration:underline;text-underline-offset:4px}
.city-planning{background:var(--brand-mist)}
.city-planning .city-eyebrow{color:var(--brand-charcoal-raised)}
.city-planning-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5%}
.city-planning-grid article{border-top:1px solid var(--brand-accent);padding-top:25px}
.city-step{display:block;color:var(--brand-accent);font-family:var(--serif);font-size:26px;margin-bottom:26px}
.city-planning-grid h3{font-size:26px;line-height:1.2;letter-spacing:-.025em;font-weight:400;margin-bottom:18px}
.city-planning-grid p{font-size:14px}
.city-resource-links{display:flex;flex-direction:column;align-items:flex-start;margin-top:18px;gap:3px}
.city-resource-links a{padding:6px 0;font-size:12px;text-decoration:underline;text-underline-offset:4px;line-height:1.6}
.city-map{display:grid;grid-template-columns:.78fr 1.22fr;gap:9%;align-items:center}
.city-map h2{margin-top:23px}
.city-map p{margin-top:25px;font-size:14px;max-width:370px}
.city-map .city-link{margin-top:20px;min-width:0}
.city-map iframe{display:block;width:100%;height:410px;border:0;background:var(--brand-mist)}
.city-map figcaption{display:flex;justify-content:space-between;gap:20px;padding-top:12px;font-size:10px;color:var(--brand-muted);letter-spacing:.08em;text-transform:uppercase}
.city-faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:9%;border-top:1px solid var(--line)}
.city-faq h2{margin-top:24px}
.city-faq-list{border-top:1px solid var(--line)}
.city-faq details{border-bottom:1px solid var(--line)}
.city-faq details[open]{background:var(--brand-mist);padding-inline:18px;margin-inline:-18px}
.city-faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:25px 0;font-size:17px;line-height:1.5}
.city-faq summary::-webkit-details-marker{display:none}
.city-faq summary:after{content:'+';font-size:25px;color:var(--brand-accent);font-weight:300;flex:none;line-height:1}
.city-faq details[open] summary:after{content:'−'}
.city-faq details p{font-size:14px;max-width:590px;padding:0 36px 28px 0}
.city-cta{position:relative;background:var(--brand-sand-light)}
.city-cta:before{content:"";position:absolute;inset:25px;border:1px solid rgba(58,56,52,.34);pointer-events:none}
.city-cta-inner{padding-inline:20px}
.city-cta .city-eyebrow{color:var(--brand-charcoal-raised)}
.city-cta-inner{display:grid;grid-template-columns:1.1fr .8fr;gap:15%;align-items:end}
.city-cta h2{margin-top:24px;font-size:clamp(48px,5.6vw,88px)}
.city-cta h2 em{color:var(--brand-charcoal-raised)}
.city-cta p{color:var(--brand-charcoal-raised);font-size:14px}
.city-cta-actions{display:flex;flex-wrap:wrap;gap:23px;align-items:center;margin-top:28px}
.city-button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;min-height:55px;padding:15px 22px;background:var(--brand-ink);color:var(--paper);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.city-button:hover{background:var(--brand-charcoal-raised)}
.city-cta-phone{font-size:13px;padding-block:10px;text-decoration:underline;text-underline-offset:5px}
.city-nearby{padding-block:40px;display:flex;justify-content:space-between;align-items:center;gap:25px;border-bottom:1px solid var(--line)}
.city-nearby nav{display:flex;flex-wrap:wrap;gap:30px;font-size:12px}
.city-nearby nav a{padding-block:8px;text-decoration:underline;text-underline-offset:5px}
.city-credit{padding-block:22px 30px;color:var(--brand-muted);font-size:11px}
.city-credit summary{cursor:pointer;width:fit-content;padding-block:8px}
.city-credit p{max-width:950px;font-size:11px;margin-top:8px;line-height:1.8}
.city-credit a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.city-enter.is-pending{opacity:0;transform:translateY(22px)}
.city-enter{transition:opacity .7s ease,transform .7s ease}
@media(min-width:1101px){.city-guide-page .site-header{grid-template-columns:230px 1fr auto;gap:20px}.city-guide-page .desktop-nav{gap:clamp(18px,2vw,32px)}}
@media(max-width:1000px){.city-hero-heading{gap:25px}.city-hero-aside{max-width:220px}.city-intro,.city-services,.city-map,.city-faq{gap:6%}.city-planning-grid{gap:4%}.city-cta-inner{gap:8%}.city-project{gap:7%}.city-project h3{font-size:43px}}
@media(max-width:760px){
 .city-hero{padding-top:99px}.city-hero-heading{display:block;padding:25px 0 29px}.city-guide h1{font-size:clamp(65px,14.6vw,110px)}
 .city-hero-aside{max-width:400px;margin-top:27px}.city-hero-aside p{margin-top:10px}.city-hero-image{aspect-ratio:1.03;min-height:0}.city-hero-image>img{object-position:53% 35%;transform:none}
 .city-viewfinder{inset:12px;width:calc(100% - 24px);height:calc(100% - 24px)}.city-hero-edition{left:26px;top:28px;font-size:8px;letter-spacing:.13em}.city-hero-note{left:26px;bottom:28px}.city-hero-note p{font-size:clamp(32px,9vw,58px)}.city-hero-scroll{right:27px;bottom:30px;padding:10px 2px;border:0}.city-hero-scroll span{display:none}.city-hero-scroll svg{width:23px;height:23px}
 .city-photo-caption{font-size:9px;gap:15px;line-height:1.7}.city-photo-caption span{max-width:210px}.city-index{display:block;margin-top:16px;padding:15px 0 9px}.city-index>span{font-size:18px}.city-index nav{justify-content:space-between;gap:12px;margin-top:10px}.city-index a{font-size:10px;letter-spacing:.02em}
 .city-intro,.city-services,.city-map,.city-faq,.city-cta-inner{grid-template-columns:1fr;gap:38px}.city-intro-copy{padding-top:0}.city-intro h2,.city-services-heading h2,.city-map h2,.city-faq h2{margin-top:20px}
 .city-notation{max-width:270px;margin-top:25px}.city-notation>div{padding-left:29px;font-size:9px;gap:10px}
 .city-section-heading{display:block;margin-bottom:36px}.city-section-heading>p{margin-top:24px;max-width:400px}.city-projects{grid-template-columns:1fr;gap:75px;padding-top:10px}.city-project,.city-project:nth-child(even){display:flex;flex-direction:column;gap:0;align-items:stretch}.city-project:nth-child(even) .city-project-visual,.city-project:nth-child(even) .city-project-copy{grid-column:auto;grid-row:auto}.city-project-visual{margin:0 15px 76px 0}.city-project-image{aspect-ratio:1.1}.city-project-detail{right:-4%;bottom:-19%;width:37%;padding:0}.city-project-detail figcaption{font-size:7px;padding:8px 0 0}.city-project h3{font-size:42px;margin-top:20px}.city-project-meta{font-size:9px;margin-top:0}.city-project-copy{max-width:none}.city-project-type{font-size:9px}
 .city-services-heading{position:static}
 .city-services-heading>p{max-width:440px}.city-service{gap:14px;padding:23px 0}.city-service h3{font-size:26px}.city-other-services{display:block;margin-top:0}.city-other-services p{margin-bottom:10px}.city-other-services a{display:inline-block;margin:4px 18px 4px 0}
 .city-planning-grid{grid-template-columns:1fr;gap:36px}.city-planning-grid article{display:grid;grid-template-columns:40px 1fr;gap:0 12px}.city-step{grid-row:1/4;margin:0}.city-planning-grid h3{font-size:26px}.city-planning-grid p,.city-resource-links{grid-column:2}.city-map iframe{height:350px}.city-map p{max-width:440px}.city-map figcaption{font-size:9px}
 .city-faq summary{font-size:16px;padding:22px 0}.city-faq details p{padding-right:0}.city-faq details[open]{padding-inline:12px;margin-inline:-12px}.city-cta:before{inset:12px}.city-cta-inner{gap:30px;padding-inline:12px}.city-cta h2{font-size:clamp(43px,10.5vw,68px)}.city-cta-actions{gap:18px}.city-nearby{display:block;padding-block:30px}.city-nearby nav{margin-top:14px;gap:20px}.city-credit{padding-bottom:23px}
}
@media(prefers-reduced-motion:reduce){.city-guide{scroll-behavior:auto}.city-enter,.city-enter.is-pending{opacity:1;transform:none;transition:none}.city-hero-image>img{transform:none}.can-draw .city-drawing-line,.can-draw .city-drawing-detail{stroke-dashoffset:0}.city-guide *{transition:none!important}}

/* The FAQ title follows the reader within its own column. */
@media(min-width:951px) and (min-height:640px) and (prefers-reduced-motion:no-preference){
 .city-faq>.city-enter{position:sticky;top:clamp(112px,20vh,190px);align-self:start}
}
