/* Town landing pages (/taxi-<ort>/). Builds on redesign.css tokens. */
.town-hero { padding-top: clamp(24px, 5vw, 56px); padding-bottom: clamp(56px, 8vw, 104px); }
.town-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 56px; align-items: center; }
.town-grid.has-photo { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.town-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 28px; min-width: 0; }
.town-copy h1 { font-size: clamp(38px, 4.6vw, 68px); overflow-wrap: break-word; hyphens: manual; }
.town-copy h1 .accent { display: block; margin-top: 12px; font-size: .42em; line-height: 1.1; letter-spacing: -.02em; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; font-size: 15px; color: var(--muted-on-dark); }
.breadcrumb { align-items: center; }
.breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; }
.town-call { display: inline-flex; align-items: center; gap: 14px; padding: 14px 28px; border-radius: 999px; background: var(--accent); color: var(--ink); font-family: Archivo, system-ui, sans-serif; font-size: clamp(22px, 2.6vw, 30px); font-weight: 900; letter-spacing: -.02em; white-space: nowrap; }
.town-call svg { width: 24px; height: 24px; }
.town-photo { margin: 0; border-radius: 32px; overflow: hidden; border: 1px solid #ffffff14; background: #131317; }
.town-photo img { display: block; width: 100%; height: auto; }
.town-body { color-scheme: light; background: var(--paper); color: var(--ink); }
.town-columns { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 56px; }
.town-columns h2 { margin-bottom: 28px; font-size: clamp(32px, 4vw, 52px); }
.town-columns p { font-size: 18px; color: var(--muted-on-light); max-width: 620px; }
.town-columns p + p { margin-top: 16px; }
.town-list { margin: 0; padding: 0; list-style: none; }
.town-list li { padding: 16px 0; border-top: 2px solid var(--ink); font-size: 18px; font-weight: 600; }
.town-cta .container { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.town-cta .intro-copy { color: var(--muted-on-dark); max-width: 620px; }
.town-cta .intro-copy a, .area p a { text-decoration: underline; }
.contact-number { display: inline-flex; align-items: center; gap: 16px; }
@media (hover: hover) { .town-call:hover { opacity: .88; } }
@media (max-width: 800px) { .town-grid.has-photo, .town-columns { grid-template-columns: minmax(0, 1fr); } .town-grid { gap: 40px; } .town-photo img { aspect-ratio: 4 / 3; object-fit: cover; object-position: center 60%; } .town-columns { gap: 40px; } }
@media (max-width: 540px) { .town-call { display: none; } }
