/* === Ikarte Public v2 === */
.ikarte-wrap *,.ikarte-wrap *::before,.ikarte-wrap *::after{box-sizing:border-box;margin:0;padding:0}
.ikarte-wrap{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px;line-height:1.5;color:#1a1a1a;width:100%;margin:0 auto 2rem}

/* ── Tab bar ── */
.ikarte-tabs-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    padding: 0 8px;
    border-radius: 10px 10px 0 0;
    align-items: flex-end;
    overflow: hidden;
}

.ikarte-tab-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 20px 12px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .01em;
    transition: background .18s, opacity .18s;
    opacity: .72;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Animated underline indicator */
.ikarte-tab-btn::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 12px;
    right: 12px;
    height: 3px;
    border-radius: 3px 3px 0 0;
    transform: scaleX(0);
    transition: transform .22s cubic-bezier(.4,0,.2,1);
}

.ikarte-tab-btn:hover {
    opacity: .9;
}

.ikarte-tab-btn.is-active {
    opacity: 1;
}

.ikarte-tab-btn.is-active::after {
    transform: scaleX(1);
}

/* Pin count badge */
.ikarte-tab-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    transition: background .18s, color .18s;
    flex-shrink: 0;
}

.ikarte-tab-label {
    flex: 1;
}

@media (max-width: 600px) {
    .ikarte-tab-btn { padding: 10px 14px 9px; font-size: 12px; }
    .ikarte-tab-num { display: none; }
}

/* ── Panel ── */
.ikarte-map-panel{display:none}
.ikarte-map-panel.is-active{display:block}

/* ── Layout ── */
.ikarte-layout{display:grid;grid-template-columns:1fr 280px;border:1px solid #e0e0e0;border-top:none;border-radius:0 0 10px 10px;overflow:hidden}
@media(max-width:700px){.ikarte-layout{grid-template-columns:1fr}}

/* ── Map column ── */
.ikarte-map-col{position:relative;background:#dde8f0;overflow:visible;line-height:0}

/* img-wrap: image + pins share the same coordinate space */
.ikarte-img-wrap{position:relative;display:block;line-height:0;overflow:visible}
.ikarte-bg-img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}

/* pin layer exactly overlaps image */
.ikarte-pin-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}

.ikarte-no-image{display:flex;align-items:center;justify-content:center;min-height:260px;color:#aaa;font-size:14px;line-height:normal}
.ikarte-hint{position:absolute;bottom:10px;right:12px;font-size:11px;color:#555;background:rgba(255,255,255,.9);border:1px solid #ddd;border-radius:20px;padding:3px 10px;pointer-events:none;white-space:nowrap;line-height:1.6}

/* ── Pins ── */
.ikarte-pin{position:absolute;transform:translate(-50%,-100%);cursor:pointer;pointer-events:auto;display:flex;flex-direction:column;align-items:center}
.ikarte-pin-body{width:28px;height:28px;border-radius:50% 50% 50% 0;border:2.5px solid #fff;transform:rotate(-45deg);box-shadow:0 2px 6px rgba(0,0,0,.22);transition:transform .15s,background .15s}
.ikarte-pin:hover .ikarte-pin-body,.ikarte-pin.is-active .ikarte-pin-body{transform:rotate(-45deg) scale(1.2)}
.ikarte-pin-pulse{position:absolute;top:0;left:0;width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);opacity:0}
.ikarte-pin.is-active .ikarte-pin-pulse{animation:ikartePublicPulse 1.3s ease-out infinite}
@keyframes ikartePublicPulse{0%{opacity:.5;transform:rotate(-45deg) scale(1)}100%{opacity:0;transform:rotate(-45deg) scale(2.4)}}

/* ── Sidebar ── */
.ikarte-sidebar{border-left:1px solid #e0e0e0;background:#fff;display:flex;flex-direction:column;overflow:hidden}
@media(max-width:700px){.ikarte-sidebar{border-left:none;border-top:1px solid #e0e0e0}}
.ikarte-sidebar-header{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:1px solid #e0e0e0;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;background:#fafafa;flex-shrink:0}
.ikarte-acc-list{overflow-y:auto;flex:1}

/* ── Accordion ── */
.ikarte-acc-item{border-bottom:1px solid #f0f0f0}
.ikarte-acc-item:last-child{border-bottom:none}
.ikarte-acc-btn{width:100%;background:none;border:none;padding:11px 14px;display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left;transition:background .12s;color:#1a1a1a;line-height:1.4}
.ikarte-acc-btn:hover{background:#f5f5f5}
.ikarte-acc-btn.is-active{background:#eef3ff}
.ikarte-acc-dot{width:11px;height:11px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);flex-shrink:0}
.ikarte-acc-chevron{flex-shrink:0;transition:transform .2s;width:13px;height:13px}
.ikarte-acc-btn.is-active .ikarte-acc-chevron{transform:rotate(180deg)}
.ikarte-acc-body{max-height:0;overflow:hidden;transition:max-height .28s ease}
.ikarte-acc-body.is-open{max-height:800px}
.ikarte-acc-inner{padding:8px 14px 14px 35px;font-size:13px;line-height:1.65;color:#444}
.ikarte-acc-inner p{margin:0 0 8px}
.ikarte-acc-inner ul,.ikarte-acc-inner ol{margin:0 0 8px;padding-left:18px}
.ikarte-acc-inner li{margin-bottom:3px}
.ikarte-acc-inner a{color:#0073aa}
.ikarte-acc-inner a:hover{text-decoration:underline}
.ikarte-acc-inner strong{font-weight:600}

/* ── Icons ── */
.ikarte-pin-icon-wrap{display:inline-flex !important;align-items:center !important;justify-content:center;flex-shrink:0 !important;line-height:1}
.ikarte-pin-icon-wrap svg{display:block;flex-shrink:0}
.ikarte-pin-icon-img{width:18px;height:18px;object-fit:contain;flex-shrink:0;vertical-align:middle}

/* ── Pin map title label ── */
.ikarte-pin-map-title {
    position: absolute;
    white-space: nowrap;
    font-size: 11px;
    font-weight: 600;
    color: #fff;
    padding: 3px 8px;
    border-radius: 4px;
    pointer-events: none;
    box-shadow: 0 1px 4px rgba(0,0,0,.3);
    line-height: 1.4;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    z-index: 2;
}
/* Position variants — pin anchor point is bottom-center of pin body */
.ikarte-pin-map-title--bottom {
    top: 6px;           /* just below the rotated body */
    left: 50%;
    transform: translateX(-50%);
}
.ikarte-pin-map-title--top {
    bottom: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%);
}
.ikarte-pin-map-title--left {
    right: calc(100% + 6px);
    top: -22px;
    transform: none;
}
.ikarte-pin-map-title--right {
    left: calc(100% + 6px);
    top: -22px;
    transform: none;
}

/* ── No-sidebar / full-width layout ── */
.ikarte-layout--no-sidebar { grid-template-columns: 1fr; }
.ikarte-layout--no-sidebar .ikarte-map-col { border-radius: 0 0 10px 10px; }

/* ── Link pins ── */
a.ikarte-pin--link {
    text-decoration: none;
    display: block;      /* <a> must be block so it covers the whole pin */
    cursor: pointer;
}
a.ikarte-pin--link:hover .ikarte-pin-body,
a.ikarte-pin--link:focus .ikarte-pin-body { transform: rotate(-45deg) scale(1.25); }

/* ── Hover tooltip ── */
.ikarte-pin-tooltip {
    position: absolute;
    bottom: calc(100% + 14px);
    left: 50%;
    transform: translateX(-50%) translateY(6px);
    /* Rich dark background with slight blur-glass effect */
    background: rgba(15, 23, 42, 0.93);
    color: #f8fafc;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.35;
    padding: 9px 16px;
    border-radius: 8px;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: opacity .22s cubic-bezier(.4,0,.2,1),
                transform .22s cubic-bezier(.4,0,.2,1);
    z-index: 9999;
    box-shadow: 0 4px 20px rgba(0,0,0,.45),
                0 1px 4px rgba(0,0,0,.3);
    /* Subtle left border accent using pin color via filter */
    border-left: 3px solid rgba(255,255,255,.35);
}
.ikarte-pin-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 7px solid transparent;
    border-top-color: rgba(15, 23, 42, 0.93);
    filter: drop-shadow(0 2px 2px rgba(0,0,0,.2));
}
.ikarte-pin:hover .ikarte-pin-tooltip,
.ikarte-pin:focus .ikarte-pin-tooltip {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
/* Slight scale-up on the pin body on hover for extra responsiveness */
.ikarte-pin:hover .ikarte-pin-body {
    transform: rotate(-45deg) scale(1.15);
}
