/* Shared city-page layout. Load after brand.css; keep the approved master artwork intact. */
:root {
  color-scheme:light;
  --navy:#082640;
  --copper:#ba430e;
  --ink:#263441;
  --soft:#edf3f7;
  --rule:#d8dfe5;
}
* { box-sizing:border-box; }
html { scroll-padding-top:218px; }
body { margin:0; background:#f1f4f6; color:var(--ink); font:1.125rem/1.6 Arial,Helvetica,sans-serif; }
a { color:var(--navy); text-underline-offset:4px; }
a:focus-visible { outline:3px solid #2475bf; outline-offset:5px; }
img { display:block; max-width:100%; }
.skip-link { position:fixed; top:10px; left:10px; z-index:100; padding:10px 16px; background:#fff; color:var(--navy); transform:translateY(-180%); font-weight:700; }
.skip-link:focus { transform:translateY(0); }
.preview-label { padding:5px 20px; background:var(--navy); color:#fff; text-align:center; font-size:.8rem; letter-spacing:.06em; }
.site-header { position:sticky; top:0; z-index:20; background:#fff; border-bottom:4px solid var(--copper); }
.city-header .header-inner { max-width:1180px; margin:auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,260px) minmax(0,1fr); align-items:center; gap:24px; padding:10px 24px; }
.city-header .header-inner > .brand { grid-column:2; grid-row:1; display:block; width:260px; max-width:100%; min-width:0; justify-self:center; }
.city-header .brand img { width:100%; height:auto; object-fit:contain; }
.city-header .city-brand { grid-column:1; grid-row:1; width:140px; max-width:100%; min-width:0; justify-self:start; color:var(--navy); text-align:center; overflow-wrap:anywhere; }
.city-header .city-logo { width:100%; height:auto; object-fit:contain; }
.city-county { display:block; margin-top:7px; color:#52616e; font-size:.7rem; line-height:1.3; }
.city-kicker { display:block; margin:0 0 4px; color:#52616e; font-size:.68rem; line-height:1.4; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.city-name { display:block; margin:0; font-family:'Contrail One',Arial,sans-serif; font-size:1.4rem; line-height:1.18; font-weight:400; }
.button { display:inline-flex; align-items:center; justify-content:center; max-width:100%; min-height:48px; padding:12px 24px; background:var(--copper); color:#fff; text-decoration:none; font-size:1rem; font-weight:700; border-radius:3px; text-align:center; overflow-wrap:anywhere; }
.button:hover { background:#923209; }
.city-header .header-inner > .button { grid-column:3; grid-row:1; width:140px; max-width:100%; justify-self:end; margin:0; padding:12px 16px; }
.content { max-width:1180px; margin:auto; padding:0 24px; }
.hero { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); margin-top:24px; background:var(--navy); color:#fff; }
.hero-copy { min-width:0; padding:38px 36px; align-self:center; overflow-wrap:anywhere; }
.eyebrow { margin:0 0 18px; color:#ffc69d; text-transform:uppercase; letter-spacing:.09em; font-size:.85rem; font-weight:700; }
h1,h2 { color:var(--navy); font-family:'Contrail One',Arial,sans-serif; font-weight:400; line-height:1.16; }
h1 { margin:0 0 20px; color:#fff; font-size:clamp(2.125rem,4.3vw,3.5rem); }
h2 { margin:0 0 20px; font-size:2rem; }
h3 { margin:0 0 14px; font-size:1.3rem; line-height:1.3; color:var(--navy); }
p { margin:0 0 18px; }
.subtitle { font-size:1.15rem; color:#ffc69d; margin:0 0 22px; }
.intro { color:#e2ebf2; }
.actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-top:26px; }
figure { margin:0; position:relative; min-width:0; }
.photo-strip { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(2,minmax(0,1fr)); gap:6px; min-width:0; min-height:486px; }
/* Removing image intrinsic height from grid sizing prevents an oversized desktop hero. */
.photo-strip figure { min-height:0; overflow:hidden; }
.photo-strip a { display:block; position:absolute; inset:0; height:100%; }
.photo-strip a:focus-visible { outline-color:#fff; outline-offset:-5px; }
.project-image { width:100%; height:100%; min-height:0; object-fit:cover; filter:none; }
figcaption { position:absolute; bottom:0; left:0; max-width:100%; padding:7px 16px; background:var(--navy); color:#fff; font-size:.875rem; line-height:1.4; overflow-wrap:anywhere; pointer-events:none; }
section { padding:38px 0; scroll-margin-top:16px; }
.service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.service-grid article { min-width:0; border-left:4px solid var(--copper); padding:24px; background:#fff; overflow-wrap:anywhere; }
.service-grid article:nth-child(2),.service-grid article:nth-child(3) { background:var(--soft); }
.service-grid p:last-child { margin-bottom:0; }
ul { margin:12px 0 18px; padding-left:23px; }
li { padding-left:3px; margin:8px 0; }
li::marker { color:var(--copper); }
.local-guide { border-top:1px solid var(--rule); }
.local-guide > p { max-width:820px; }
.local-guide > .eyebrow { color:var(--copper); }
.local-resources { margin:20px 0 0; font-size:.875rem; color:#52616e; }
.guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.guide-grid article { min-width:0; padding:24px; background:#fff; border-top:3px solid var(--copper); overflow-wrap:anywhere; }
.guide-grid h3 { font-size:1.2rem; }
.guide-grid p { font-size:1rem; }
.guide-grid p:last-child { margin-bottom:0; }
.guide-grid a { font-weight:700; }
.closing { background:var(--copper); color:#fff; padding:32px 36px; overflow-wrap:anywhere; }
.closing h2 { font-size:1.8rem; color:#fff; }
.closing p { max-width:820px; }
.closing .button { background:var(--navy); }
.closing .button:hover { background:#164565; }
footer { max-width:1180px; margin:auto; padding:28px 24px; font-size:.875rem; color:#52616e; overflow-wrap:anywhere; }
footer p { margin-bottom:8px; }
.footer-addresses > address { min-width:0; max-width:100%; }

@media(max-width:900px) {
  .city-header .header-inner { grid-template-columns:minmax(0,1fr) minmax(0,230px) minmax(0,1fr); gap:18px; padding:8px 20px; }
  .city-header .header-inner > .brand { width:230px; }
  .city-header .city-brand { width:125px; }
  .city-header .header-inner > .button { width:125px; }
  .guide-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:760px) {
  body { font-size:1.05rem; line-height:1.65; }
  .button { padding:10px 14px; font-size:.95rem; }
  .content { padding:0 18px; }
  .hero { grid-template-columns:minmax(0,1fr); margin-top:18px; }
  .hero-copy { padding:28px 24px; }
  h2 { font-size:1.75rem; }
  .subtitle { font-size:1.1rem; }
  .service-grid { grid-template-columns:minmax(0,1fr); }
  .photo-strip { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; min-height:0; }
  .photo-strip figure { min-height:220px; }
  .project-image { height:220px; }
  figcaption { font-size:.8rem; padding:6px 9px; }
  section { padding:32px 0; }
  .closing { padding:26px 24px; }
  .actions { gap:16px; align-items:flex-start; flex-direction:column; }
  footer { padding:28px 18px; }
}
@media(max-width:600px) {
  html { scroll-padding-top:238px; }
  .city-header .header-inner { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:4px 20px; padding:6px 20px 12px; }
  .city-header .header-inner > .brand { grid-column:1 / -1; grid-row:1; width:210px; }
  .city-header .city-brand { grid-column:1; grid-row:2; width:112px; }
  .city-header .header-inner > .button { grid-column:2; grid-row:2; width:112px; }
  .city-kicker { font-size:.62rem; }
  .city-name { font-size:1.25rem; }
}
@media(max-width:440px) {
  .photo-strip { grid-template-columns:minmax(0,1fr); }
  .service-grid article,.guide-grid article { padding:22px; }
}
@media(max-width:360px) {
  .city-header .header-inner { padding:6px 14px 12px; }
  .city-header .header-inner > .brand { width:190px; }
  .city-header .city-brand,.city-header .header-inner > .button { width:104px; }
  .hero-copy,.closing { padding:26px 20px; }
}
@media print {
  .site-header { position:static; }
  .skip-link { display:none; }
  body { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  section,article,figure { break-inside:avoid; }
}
