.dublin-page .hero-image { object-position: center 52%; }
.dublin-page .hero-shade { background: linear-gradient(90deg, #09262fdf 0%, #09262f96 52%, #09262f44 100%); }
.dublin-map { position: relative; }
.dublin-map-labels { list-style: none; padding: 0; margin: 0; }
.dublin-map-labels li { position: absolute; transform: translateY(-50%); }
.dublin-map-labels .map-location-trigger { font-size: clamp(12px, 1.3vw, 17px); min-height: 44px; padding: 8px 6px; background: #f7f7efee; white-space: nowrap; }
.dublin-map-labels .map-location-trigger:hover,
.dublin-map-labels .map-location-trigger[aria-expanded="true"] { background: var(--navy); }
.dublin-local-copy { position: relative; z-index: 4; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; padding-top: 56px; padding-bottom: 64px; }
.dublin-local-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.dublin-local-heading h3 { font-size: 25px; line-height: 1.25; letter-spacing: -.4px; margin: 0; font-weight: 500; }
.dublin-local-info { flex: 0 0 44px; }
.dublin-local-info .credential-trigger { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; }
.dublin-local-info .credential-info { width: 24px; height: 24px; font-size: 16px; }
.dublin-local-info .credential-close { width: 44px; height: 44px; }
.dublin-local-info .credential-panel { padding-top: 48px; }
.local-booking-link a { display: inline-flex; align-items: center; min-height: 44px; color: var(--lime); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 950px) {
  .dublin-local-copy { grid-template-columns: 1fr; gap: 22px; }
  .dublin-local-copy article { max-width: 680px; }
  .dublin-map-labels .map-location-trigger { font-size: clamp(12px, 2.8vw, 17px); }
}
