.tourism-card { overflow: hidden; border: 1px solid var(--line); background: var(--surface); }
    .tourism-card-media { display: block; overflow: hidden; }
    .tourism-card-media img { width: 100%; transition: transform .4s ease; }
    .tourism-card:hover .tourism-card-media img { transform: scale(1.045); }
    .tourism-card .card-title a { color: var(--text); text-decoration: none; }
    .tourism-card .card-title a:hover { color: var(--blue); }
    .tourism-card-actions { display: flex; align-items: center; justify-content: space-between; gap: .65rem; padding: .8rem 1rem; border-top: 1px solid var(--line); }
    .tourism-card-actions a, .tourism-card-actions button { min-height: 2.25rem; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border: 0; color: var(--blue); background: transparent; font-size: .72rem; font-weight: 800; text-decoration: none; cursor: pointer; }
    .tourism-card-actions button { padding: 0 .8rem; border-radius: 999px; color: #fff; background: linear-gradient(135deg, var(--blue), var(--violet)); box-shadow: 0 7px 16px rgba(69,91,255,.22); }
    .tourism-map-dialog { width: min(92vw, 920px); max-width: none; padding: 0; border: 1px solid var(--line); border-radius: 1.2rem; color: var(--text); background: var(--surface); box-shadow: 0 28px 90px rgba(0,0,0,.35); overflow: hidden; }
    .tourism-map-dialog::backdrop { background: rgba(2,10,28,.72); backdrop-filter: blur(6px); }
    .tourism-map-modal > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--line); }
    .tourism-map-modal header span { color: var(--blue); font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
    .tourism-map-modal h2 { margin: .22rem 0; color: var(--text); font-size: 1.2rem; }
    .tourism-map-modal header p { margin: 0; color: var(--muted); font-size: .72rem; }
    .tourism-map-modal header button { width: 2.4rem; height: 2.4rem; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; color: var(--text); background: var(--bg); cursor: pointer; }
    .tourism-map-canvas { position: relative; height: min(58vh, 510px); background: var(--bg); }
    .tourism-map-canvas iframe { position: relative; z-index: 2; width: 100%; height: 100%; border: 0; opacity: 0; transition: opacity .25s; }
    .tourism-map-canvas iframe.is-loaded { opacity: 1; }
    .tourism-map-loading { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: .65rem; color: var(--muted); font-size: .75rem; }
    .tourism-map-loading[hidden] { display: none; }
    .tourism-map-loading i { color: var(--blue); font-size: 1.5rem; }
    .tourism-map-modal > footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.25rem; border-top: 1px solid var(--line); }
    .tourism-map-modal footer span { color: var(--muted); font-size: .68rem; }
    .tourism-map-modal footer a { min-height: 2.5rem; padding: 0 .9rem; border-radius: 999px; display: inline-flex; align-items: center; gap: .45rem; color: #fff; background: linear-gradient(135deg, #168cff, #704aff); font-size: .68rem; font-weight: 800; text-decoration: none; }
    @media (max-width: 600px) {
        .tourism-map-dialog { width: calc(100vw - 20px); }
        .tourism-map-canvas { height: 55vh; }
        .tourism-map-modal > footer { align-items: stretch; flex-direction: column; }
        .tourism-map-modal footer a { justify-content: center; }
    }
