@import url('/city-fonts.css');
:root { --paper:#f6f6f0; --ink:#171717; --muted:#555650; --blue:#2459bd; --line:#d8d8d0; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:28px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Geist,Arial,Helvetica,sans-serif; line-height:1.75; }
a { color:var(--blue); text-underline-offset:5px; }
button,input,select { font:inherit; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
.skip { position:fixed; top:-100px; left:16px; padding:12px; background:white; z-index:10; }
.skip:focus { top:12px; }
.site-header { max-width:1440px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 4%; border-bottom:1px solid var(--line); }
.site-header img,.site-footer img { object-fit:contain; display:block; }
.site-header nav { display:flex; gap:32px; }
.site-header nav a { font-family:"Geist Mono",monospace; font-size:.8rem; text-decoration:none; color:var(--ink); }
.site-header nav a:hover { color:var(--blue); }
main { max-width:1312px; margin:auto; padding:0 40px; }
h1,h2,h3 { font-weight:500; letter-spacing:-.055em; line-height:1.1; overflow-wrap:anywhere; }
h1 { font-size:clamp(3.2rem,5.7vw,5.6rem); margin:0 0 28px; max-width:820px; }
h2 { font-size:clamp(2rem,3.3vw,3.1rem); margin:0 0 24px; max-width:850px; }
h2 span { color:var(--blue); }
h3 { font-size:1.45rem; line-height:1.25; letter-spacing:-.03em; }
.eyebrow { font-family:"Geist Mono",monospace; color:var(--blue); font-size:.7rem; font-weight:500; text-transform:uppercase; letter-spacing:.1em; margin:0 0 20px; }
.lead { color:var(--muted); line-height:1.85; font-size:1.05rem; max-width:590px; }
.hero { display:grid; grid-template-columns:1.15fr 1fr; align-items:center; gap:56px; min-height:730px; padding:72px 0 80px; }
.hero-copy { min-width:0; }
.hero-copy h1 { color:var(--ink); }
.hero-work { position:relative; margin:0; border:1px solid #b9c5d6; border-radius:8px; background:white; transform:rotate(2deg); box-shadow:14px 20px 0 #e3eaf6; overflow:hidden; }
.browser-bar { display:flex; align-items:center; gap:5px; padding:12px; border-bottom:1px solid #e2e2dc; background:#fafbf9; }
.browser-bar>span { display:block; width:6px; height:6px; border-radius:50%; background:#b5bfcc; }
.browser-bar p { margin:0 0 0 9px; font:500 .58rem monospace; letter-spacing:.05em; color:#5b6470; }
.project-window { height:370px; overflow:hidden; }
.project-window img { display:block; width:100%; height:auto; }
.hero-work figcaption { border-top:1px solid #e3e7ee; padding:20px 24px; font-size:.85rem; line-height:1.5; }
.hero-work figcaption a { display:block; margin-top:10px; font-size:.75rem; }
.actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin:30px 0; }
.actions>a:not(.button) { font-family:"Geist Mono",monospace; color:var(--ink); font-size:.8rem; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:14px 24px; border:1px solid var(--blue); background:var(--blue); color:#fff; text-decoration:none; font-family:"Geist Mono",monospace; font-size:.78rem; border-radius:3px; }
.button:hover { background:#1c4592; }
.button.small { min-height:44px; padding:11px 18px; }
.micro { font-size:.73rem; line-height:1.7; color:#60615a; }
.service-strip { display:flex; gap:24px; justify-content:space-between; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-family:"Geist Mono",monospace; font-size:.72rem; color:#5b5e58; }
.service-strip span { display:flex; align-items:center; gap:12px; }
.service-strip span::before { content:'+'; color:var(--blue); }
.section { padding-top:64px; margin-top:64px; border-top:1px solid var(--line); }
.local-intro { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; border-top:0; padding-top:56px; margin-top:28px; }
.local-intro>div>p:not(.eyebrow) { margin-top:0; color:var(--muted); }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:36px; }
.service-grid article { padding:30px; border:1px solid var(--line); background:#fafaf7; border-radius:4px; }
.service-grid p { font-size:.94rem; color:var(--muted); }
.service-grid a { font-size:.83rem; }
.number { color:var(--blue); font-family:"Geist Mono",monospace; font-size:.75rem; }
.work-section { display:grid; grid-template-columns:.8fr 1.3fr; gap:64px; align-items:center; }
.work-section>div>p:not(.eyebrow) { color:var(--muted); }
.work-mark { padding:58px 32px; background:#17382d; border-radius:5px; text-align:center; }
.work-mark img { max-width:100%; object-fit:contain; }
.work-mark p { font-family:"Geist Mono",monospace; font-size:.6rem; letter-spacing:.1em; color:#c5d3b9!important; }
.local-focus { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:64px; }
.local-focus>div>p:not(.eyebrow) { color:var(--muted); }
.local-focus aside { padding:28px 32px; border-left:3px solid var(--blue); background:#edf2fb; font-size:.88rem; }
.local-focus aside h3 { margin-top:0; font-size:1.2rem; }
.local-focus details { font-size:.74rem; border-top:1px solid #cbd5e7; padding-top:16px; }
summary { cursor:pointer; }
.pricing-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:36px; }
.pricing-grid article { padding:36px; background:#fff; border:1px solid var(--line); border-radius:5px; }
.pricing-grid article:first-child { border-top:3px solid var(--blue); }
.pricing-grid article>p:first-child { font-family:"Geist Mono",monospace; font-size:.7rem; color:var(--blue); letter-spacing:.06em; }
.pricing-grid h3 { font-size:3rem; letter-spacing:-.06em; margin:20px 0; }
.pricing-grid h3>span { font-size:1rem; color:var(--muted); letter-spacing:0; }
.pricing-grid p,.pricing-grid li { color:var(--muted); font-size:.92rem; }
.pricing-grid ul { padding-left:20px; margin:24px 0; }
.pricing-grid li { margin:10px 0; }
.process-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:40px; }
.process-grid span { color:var(--blue); font-family:"Geist Mono",monospace; font-size:.65rem; }
.process-grid p { font-size:.94rem; color:var(--muted); }
.about { display:grid; grid-template-columns:.7fr 1.3fr; align-items:center; gap:72px; }
.about>img { width:100%; max-height:400px; height:auto; object-fit:cover; object-position:top; border-radius:5px; }
.about>div>p:not(.eyebrow) { color:var(--muted); }
.faq { display:grid; grid-template-columns:1fr 1.3fr; gap:64px; }
.faq details { border-bottom:1px solid var(--line); padding:22px 0; }
.faq details:first-child { padding-top:0; }
.faq summary { font-size:1rem; font-weight:500; line-height:1.6; }
.faq details p { color:var(--muted); font-size:.9rem; }
.closing { text-align:center; padding-bottom:80px; }
.closing h2 { margin-left:auto; margin-right:auto; }
.closing>p:not(.eyebrow) { color:var(--muted); }
.closing>.button { margin:20px 0; }
.closing>p:last-child { font-size:.85rem; overflow-wrap:anywhere; }
.site-footer { max-width:1440px; margin:auto; padding:32px 4% 28px; border-top:1px solid var(--line); font-size:.78rem; text-align:center; }
.site-footer>a>img { margin:0 auto 24px; }
.site-footer>nav { display:flex; gap:22px; justify-content:center; flex-wrap:wrap; }
.site-footer nav a { min-height:44px; display:inline-flex; align-items:center; }
.site-footer>p { color:var(--muted); }
.nearby { max-width:760px; margin:22px auto; font-size:.72rem; }
.nearby nav { display:flex; flex-wrap:wrap; justify-content:center; gap:12px 24px; margin-top:10px; }
.emphasis-coverage .hero { grid-template-columns:1.25fr 1fr; }
.emphasis-mobile .hero-work { transform:rotate(-2deg); }
@media(max-width:1000px) {
  main { padding:0 28px; }
  .hero,.emphasis-coverage .hero { gap:32px; grid-template-columns:1fr 1fr; }
  h1 { font-size:clamp(3rem,5.7vw,5.3rem); }
  .project-window { height:300px; }
  .local-intro,.local-focus,.work-section,.about,.faq { gap:36px; }
  .service-grid article { padding:24px; }
}
@media(max-width:760px) {
  .site-header { padding:16px 24px; gap:16px; }
  .site-header nav { display:none; }
  .hero,.emphasis-coverage .hero { grid-template-columns:1fr; padding:48px 0 64px; min-height:0; gap:44px; }
  h1 { font-size:clamp(3rem,10vw,4.8rem); max-width:680px; }
  .hero-work { max-width:540px; width:95%; margin:auto; }
  .project-window { height:320px; }
  .service-strip { flex-wrap:wrap; gap:12px 28px; justify-content:flex-start; }
  .service-grid,.process-grid { grid-template-columns:1fr; gap:20px; }
  .local-intro,.local-focus,.work-section,.pricing-grid,.about,.faq { grid-template-columns:1fr; gap:28px; }
  .section { margin-top:44px; padding-top:44px; }
  .local-intro { padding-top:20px; }
  .work-mark { padding:36px; }
  .pricing-grid article { padding:28px; }
  .about>img { max-width:320px; max-height:360px; }
  .process-grid>div { border-bottom:1px solid var(--line); padding-bottom:16px; }
  .closing { padding-bottom:44px; }
}
@media(max-width:400px) {
  main { padding:0 20px; }
  .site-header { padding:12px 20px; }
  .site-header img { width:104px; height:46px; }
  .site-header .button { font-size:.68rem; padding:10px 14px; }
  .hero { padding-top:36px; }
  h1 { font-size:2.85rem; }
  .hero-work { transform:none!important; box-shadow:8px 12px 0 #e3eaf6; }
  .project-window { height:250px; }
  .browser-bar p { font-size:.48rem; }
  .actions { gap:18px; }
  .local-focus aside { padding:22px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
