:root{--ink:#25312d;--ink-soft:#53605b;--paper:#f5f1e9;--white:#fffefa;--fog:#dfe8e3;--rose:#8b4653;--rose-dark:#6d3440;--sage:#6d8177;--line:#d8d4ca;--display:"Iowan Old Style",Baskerville,"Times New Roman",serif;--sans:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.72}img{display:block;max-width:100%}a{color:inherit}a:hover{color:var(--rose)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 18px;z-index:1000}.skip-link:focus{left:12px;top:12px}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,254,250,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.topline{background:var(--paper);color:var(--ink-soft);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;border-bottom:1px solid var(--line)}.topline-inner{max-width:1280px;margin:auto;padding:6px 34px;display:flex;justify-content:flex-end;gap:24px}.topline a{text-decoration:none;color:var(--ink-soft)}
.navbar{max-width:1280px;margin:auto;min-height:80px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{text-decoration:none;display:flex;flex-direction:row;align-items:baseline;gap:13px;line-height:1.08;color:var(--ink)}.brand strong{font-family:var(--display);font-size:1.45rem;font-weight:500;letter-spacing:.01em}.brand span{margin:0;font-family:var(--display);font-size:1.3rem;font-style:italic;letter-spacing:.01em;text-transform:none;color:var(--rose)}.nav-links{display:flex;align-items:center;gap:28px}.nav-links a{text-decoration:none;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.nav-links a[aria-current="page"]{color:var(--rose)}.nav-links .nav-button{border-bottom:1px solid var(--rose);padding:8px 0;color:var(--ink)}.menu-button{display:none;border:0;background:transparent;padding:10px;color:var(--ink);font:inherit;font-weight:700}.menu-button span{display:block;width:25px;height:2px;background:currentColor;margin:5px 0}
.container{width:min(1120px,calc(100% - 48px));margin-inline:auto}.wide{width:min(1280px,calc(100% - 48px));margin-inline:auto}.narrow{width:min(760px,calc(100% - 48px));margin-inline:auto}.eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--rose);margin:0 0 18px}h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.08;margin-top:0;color:var(--ink)}h1{font-size:clamp(3.2rem,7vw,7rem);letter-spacing:-.045em}h2{font-size:clamp(2.25rem,4.5vw,4.25rem);letter-spacing:-.035em}h3{font-size:1.65rem}p{margin:0 0 1.25em}.lead{font-family:var(--display);font-size:clamp(1.28rem,2.2vw,1.72rem);line-height:1.48;color:var(--ink-soft)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 22px;border:1px solid var(--rose);background:var(--rose);color:#fff;text-decoration:none;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.button:hover{background:var(--rose-dark);border-color:var(--rose-dark);color:#fff}.button-secondary{background:transparent;color:var(--ink);border-color:var(--ink)}.button-secondary:hover{background:var(--ink);color:#fff}
.home-intro{background:var(--white);padding:112px 0 104px}.home-intro-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:8vw;align-items:end}.home-intro h1{max-width:920px;margin-bottom:0}.home-intro-aside{padding-bottom:12px}.home-intro-aside .lead{font-size:1.35rem}.home-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.city-banner{height:clamp(300px,43vw,590px);background:url('/assets/photos/city-office.jpg') center/cover no-repeat;position:relative}.city-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(37,49,45,.02),rgba(37,49,45,.24))}
.section{padding:108px 0}.section-white{background:var(--white)}.section-blue{background:var(--fog)}.section-ink{background:var(--ink);color:#f5f1e9}.section-ink h2,.section-ink h3,.section-ink .eyebrow{color:#fff}.section-ink .eyebrow{color:#d7a5ae}.split{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:start}.split-copy{max-width:600px}.editorial-intro{display:grid;grid-template-columns:.72fr 1.28fr;gap:9vw;align-items:start}.editorial-intro h2{max-width:430px}.editorial-copy{max-width:680px}
.focus-list{border-top:1px solid var(--line);margin-top:54px}.focus-row{display:grid;grid-template-columns:64px 1fr 1fr;gap:36px;align-items:baseline;padding:28px 0;border-bottom:1px solid var(--line);text-decoration:none}.focus-row:hover{color:var(--ink)}.focus-row span:first-child{font-size:.7rem;color:var(--rose);letter-spacing:.14em}.focus-row h3{font-size:clamp(1.65rem,3vw,2.55rem);margin:0}.focus-row p{margin:0;color:var(--ink-soft)}
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.feature-card{background:var(--white);padding:42px;min-height:255px;text-decoration:none}.feature-card:hover{background:#faf6ef;color:var(--ink)}.feature-card .number{font-size:.68rem;letter-spacing:.16em;color:var(--rose);font-weight:700;text-transform:uppercase}.feature-card h3{margin:34px 0 12px}.approach-list{list-style:none;padding:0;margin:22px 0 0}.approach-list li{padding:20px 0;border-top:1px solid rgba(255,255,255,.18);display:grid;grid-template-columns:34px 1fr;gap:14px}.approach-list strong{color:#d7a5ae}
.portrait-feature{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);gap:9vw;align-items:center}.portrait-wrap{position:relative;max-width:520px}.portrait-wrap img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 24%;filter:saturate(.78) contrast(.98)}.portrait-caption{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:14px}.text-link{font-weight:700;text-decoration:none;border-bottom:1px solid var(--rose);padding-bottom:3px}.quote{border-left:2px solid var(--rose);padding:4px 0 4px 28px;font:1.55rem/1.5 var(--display);color:var(--ink-soft);margin:35px 0}
.journal-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:7vw;align-items:start}.journal-links{border-top:1px solid var(--line)}.journal-link{display:block;text-decoration:none;padding:22px 4px;border-bottom:1px solid var(--line)}.journal-link small{display:block;color:var(--rose);text-transform:uppercase;letter-spacing:.12em;margin-bottom:6px}.journal-link strong{font:400 1.35rem/1.3 var(--display)}
.location-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:8vw;align-items:stretch}.location-copy{padding:26px 0}.map-frame{min-height:430px;border:0;width:100%;filter:grayscale(.35) contrast(.95)}
.cta-band{background:var(--rose);color:#fff;padding:78px 0}.cta-band .container{display:flex;justify-content:space-between;align-items:center;gap:40px}.cta-band h2{color:#fff;margin:0;max-width:760px}.cta-band .button{background:#fff;border-color:#fff;color:var(--ink)}
.page-hero{padding:104px 0 84px;background:var(--white);border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(3rem,6vw,5.8rem);max-width:980px;margin-bottom:24px}.page-hero .lead{max-width:800px}.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:90px;align-items:start}.prose h2{font-size:2.6rem;margin:1.8em 0 .55em}.prose h2:first-child{margin-top:0}.prose h3{margin:1.8em 0 .55em}.prose ul{padding-left:22px;margin:0 0 1.5em}.prose li{margin-bottom:.65em}.sidebar{position:sticky;top:126px;border-top:2px solid var(--rose);padding-top:22px}.sidebar h2{font-size:1.55rem}.sidebar p{font-size:.93rem}.sidebar .button{width:100%}.service-list{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:42px}.service-item{background:#fff;border:1px solid var(--line);padding:32px;text-decoration:none}.service-item:hover{border-color:var(--rose);color:var(--ink)}.service-item p{color:var(--ink-soft);margin-bottom:0}
.faq{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;list-style:none;padding:24px 40px 24px 0;font:1.3rem/1.35 var(--display);position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";position:absolute;right:6px;font-family:var(--sans);font-size:1.4rem}.faq details[open] summary:after{content:"−"}.faq details p{padding:0 48px 23px 0;color:var(--ink-soft)}
.contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:7vw}.contact-card{background:var(--ink);color:#fff;padding:42px}.contact-card h2,.contact-card h3{color:#fff}.contact-card a{color:#fff}.contact-detail{padding:22px 0;border-top:1px solid rgba(255,255,255,.2)}.contact-detail:first-of-type{margin-top:28px}.contact-detail small{display:block;color:#d7a5ae;text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-bottom:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}label span{font-weight:400;color:#65716c;text-transform:none}input,textarea,select{width:100%;margin-top:7px;border:1px solid #b9c1bd;background:#fff;padding:14px;font:inherit;color:var(--ink);border-radius:0}textarea{min-height:150px;resize:vertical}.field-full{grid-column:1/-1}.form-note{font-size:.78rem;color:#5c6863;line-height:1.5;margin-top:14px}
.blog-list{border-top:1px solid var(--line)}.blog-item{display:grid;grid-template-columns:155px 1fr 80px;gap:34px;padding:30px 0;border-bottom:1px solid var(--line);text-decoration:none;align-items:start}.blog-item time,.blog-item span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.blog-item h2{font-size:clamp(1.55rem,3vw,2.5rem);margin:0}.blog-item .arrow{text-align:right;color:var(--rose);font-size:1.4rem}
.site-footer{background:#1f2925;color:#dfe4e1;padding:66px 0 30px}.footer-grid{display:grid;grid-template-columns:1.3fr .8fr 1fr;gap:60px}.site-footer h2,.site-footer h3{color:#fff}.site-footer h2{font-size:1.65rem}.site-footer h3{font:700 .68rem/1.4 var(--sans);text-transform:uppercase;letter-spacing:.15em;color:#d7a5ae}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer a{color:#dfe4e1;text-decoration:none}.site-footer a:hover{color:#fff;text-decoration:underline}.copyright{border-top:1px solid rgba(255,255,255,.14);margin-top:48px;padding-top:22px;font-size:.72rem;color:#aeb8b3;display:flex;justify-content:space-between;gap:20px}.mobile-actions{display:none}.success-page{min-height:70vh;display:grid;place-items:center;text-align:center;padding:80px 24px}
@media(max-width:950px){.topline{display:none}.navbar{min-height:72px}.brand{flex-direction:column;align-items:flex-start;gap:1px}.brand span{margin-top:2px}.menu-button{display:block}.nav-links{display:none;position:absolute;left:0;right:0;top:72px;background:var(--white);border-bottom:1px solid var(--line);padding:18px 24px 25px;flex-direction:column;align-items:stretch;gap:0}.nav-links.open{display:flex}.nav-links a{padding:13px 4px;border-bottom:1px solid var(--line)}.nav-links .nav-button{text-align:center;margin-top:12px;border:1px solid var(--ink)}.home-intro-grid,.editorial-intro,.split,.portrait-feature,.journal-grid,.location-grid,.content-layout,.contact-grid{grid-template-columns:1fr;gap:56px}.home-intro-aside{max-width:680px}.focus-row{grid-template-columns:52px 1fr}.focus-row p{grid-column:2}.sidebar{position:static}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.map-frame{min-height:360px}}
@media(max-width:650px){body{font-size:16px;padding-bottom:62px}.container,.wide,.narrow{width:min(100% - 34px,1120px)}.navbar{padding:0 17px}.brand strong{font-size:1.05rem}.brand span{font-size:1rem}.section{padding:76px 0}.home-intro{padding:72px 0 68px}.home-intro h1{font-size:3.5rem}.home-actions{flex-direction:column}.home-actions .button{width:100%}.city-banner{height:280px;background-position:57% center}.focus-row{grid-template-columns:38px 1fr;gap:18px}.feature-grid,.service-list,.form-grid{grid-template-columns:1fr}.feature-card{min-height:auto;padding:31px}.field-full{grid-column:auto}.page-hero{padding:72px 0 58px}.page-hero h1{font-size:3.2rem}.blog-item{grid-template-columns:1fr 34px;gap:10px}.blog-item time{grid-column:1}.blog-item h2{grid-column:1}.blog-item .arrow{grid-column:2;grid-row:2}.cta-band .container{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr;gap:36px}.footer-grid>div:first-child{grid-column:auto}.copyright{flex-direction:column}.mobile-actions{display:grid;grid-template-columns:.8fr 1.2fr;position:fixed;left:0;right:0;bottom:0;z-index:120;background:#fff;box-shadow:0 -5px 20px rgba(0,0,0,.12)}.mobile-actions a{padding:18px 10px;text-align:center;text-decoration:none;font-size:.76rem;font-weight:700}.mobile-actions a:last-child{background:var(--rose);color:#fff}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
.office-feature-section{background:var(--paper);overflow:hidden}.office-feature{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:7vw;align-items:center;min-width:0}.office-feature-copy{max-width:430px}.office-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0;max-width:100%}.office-gallery figure{margin:0;overflow:hidden;background:var(--fog);min-width:0}.office-gallery-main{grid-column:1/-1}.office-gallery img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.office-gallery-main img{aspect-ratio:auto;object-fit:contain}.contact-office-feature{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:7vw;align-items:center}.contact-office-photo{width:100%;max-width:720px}.contact-office-photo img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:auto;object-fit:contain}.contact-office-feature>div:last-child{max-width:570px}
@media(max-width:950px){.office-feature,.contact-office-feature{grid-template-columns:1fr;gap:48px}.office-feature-copy,.contact-office-feature>div:last-child{max-width:680px}.contact-office-photo{max-width:620px}.office-gallery{gap:10px}}
@media(max-width:650px){.office-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.office-gallery-main{grid-column:1/-1}.office-gallery img{aspect-ratio:4/3}.office-gallery-main img{aspect-ratio:auto}.contact-office-photo img{aspect-ratio:auto}.office-feature-section{padding-top:70px}}
