/* Typography and mobile tweaks (overrides) */
:root{
  --fs-1: clamp(1.6rem, 2.5vw + 1rem, 2.2rem);
  --fs-2: clamp(1.25rem, 1.5vw + 0.9rem, 1.5rem);
}
h1{font-size:var(--fs-1);line-height:1.2}
h2{font-size:var(--fs-2);line-height:1.3}
.card h2{font-size:1.15rem}
.pill{font-size:.9rem}
.chip,.tag{line-height:1.2}
@media (max-width: 560px){
  .search-form{gap:1rem}
  .filters{gap:.9rem}
  .search-form label{font-size:1rem}
}

/* Nearby POIs box */
.nearby{margin-top:1.25rem}
.nearby h3{margin:.75rem 0 .5rem}
.nearby-list{list-style:none;padding:0;margin:.25rem 0}
.nearby-item{padding:.5rem 0;border-top:1px solid #eee}
.nearby-item:last-child{border-bottom:1px solid #eee}
.nearby-row{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}
.nearby-type{font-weight:600}
.nearby-meta{color:#000000;font-size:.75rem;white-space:nowrap}
.nearby-examples{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.35rem}
.chip{display:inline-block;padding:.2rem .5rem;border-radius:999px;background:#f2f4f7;color:#111;font-size:.9rem}
.chip-muted{background:#f6f7f9;color:#444}
@media (max-width:560px){
  .nearby-row{flex-direction:column;gap:.25rem}
  /* keep nowrap on mobile per design */
}

/* External link indicator */
.external::after{content:"\2197"; /* ↗ */ display:inline-block; margin-left:.25rem; color:#667; font-size:.9em}

/* Map popup CTA for better tap targets */
.map-popup{min-width:160px}
.map-cta{display:inline-flex;align-items:center;gap:.35rem;background:var(--primary-strong);color:#fff !important;text-decoration:none;padding:.55rem .9rem;border-radius:10px;margin-top:.35rem;font-weight:600;border:1px solid transparent}
.map-cta:hover{background:#0f2f63;color:#fff !important}
.leaflet-popup-content .map-cta{color:#fff !important}
.map-cta:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:8px}

/* Footer: 5-column layout */
.footer-5-column{padding-top:.5rem;margin-top:.5rem}
.footer-5-column p{color:var(--muted)}
.footer-5-column .footer-navbar-container{display:flex;align-items:flex-start;flex-wrap:wrap;gap:2rem}
.footer-5-column .footer-company-details{flex:0 0 36%;max-width:560px;padding-right:1rem}
.footer-5-column .footer-logo{width:200px;height:auto;margin:.5rem 0 .75rem 0}
.footer-5-column .footer-content .footer-data{font-size:xx-small}
.footer-5-column .footer-logo img{width:100%;height:auto;display:block}
.footer-5-column .footer-content{margin-top:0;font-size:1rem;line-height:1.7}
.footer-5-column .footer-company-details h3{margin:0 0 1rem 0;color:#000}
.footer-5-column .footer-content p{margin:0}
.footer-5-column .footer-content p + p{margin-top:.75rem}
.footer-5-column .footer-navbar{display:flex;flex-wrap:wrap;gap:2rem;flex:1 1 0}
.footer-5-column .footer-navbar-col{flex:1 1 180px;min-width:180px}
.footer-5-column .footer-navbar-col h3{margin:0 0 1rem 0;color:#000}
.footer-5-column .footer-navbar-col ul{list-style:none;margin:0;padding:0}
.footer-5-column .footer-navbar-col li{margin:0 0 .65rem 0}
.footer-5-column .footer-navbar-col a{color:var(--muted);text-decoration:none}
.footer-5-column .footer-navbar-col a:hover{color:#000}
.footer-5-column .footer-navbar-col a:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:8px}
.footer-5-column .footer-content p{margin:0}
.footer-5-column .footer-content p + p{margin-top:.75rem}
.footer-5-column .footer-navbar-col a:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:8px}
.footer-5-column .footer-copyright{padding:.5rem 0 .75rem 0;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.footer-5-column .footer-copyright p{margin:0;color:var(--muted);font-size:x-small}

@media (max-width: 1140px){
  .footer-5-column .footer-company-details{flex:1 1 100%;padding-right:0}
}
@media (max-width: 720px){
  .footer-5-column .footer-navbar{gap:1.5rem}
  .footer-5-column .footer-navbar-col{flex:1 1 45%}
}
@media (max-width: 560px){
  .footer-5-column .footer-navbar-col{flex:1 1 100%}
}

/* Fact box (SCB data) */
.fact-box{
  background-color: var(--surface-strong);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  margin-top: 2rem;
  color: var(--text);
  line-height: 1.55;
  box-shadow: var(--shadow);
}
.fact-box h2{margin-top:0;font-size:var(--fs-2)}
.fact-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.fact-item{
  background: var(--surface);
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem;
  box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
.fact-label{display:block;font-size:.9rem;color:var(--muted);margin-bottom:.25rem}
.fact-value{display:block;font-size:1.8rem;font-weight:700;color:var(--primary)}
.fact-meta{display:block;font-size:.8rem;color:var(--muted);margin-top:.25rem}
.fact-text{
  margin-top: 1rem;
  font-size: .95rem;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background-color: var(--surface);
}
.fact-source{margin-top:.5rem;font-size:.8rem;color:var(--muted)}
@media (max-width: 480px){
  .fact-box{padding:1rem}
  .fact-grid{grid-template-columns:1fr}
  .fact-value{font-size:1.5rem}
}

/* Accessibility: make Leaflet marker clusters at least 48x48px */
.leaflet-container .marker-cluster,
.leaflet-container .marker-cluster div{
  width:48px !important;
  height:48px !important;
  border-radius:24px !important;
}
.leaflet-container .marker-cluster span{
  line-height:48px !important;
  font-size:14px;
}
