/* === Ikarte Public === */
.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; }

/* layout */
.ikarte-layout { display:grid; grid-template-columns:1fr 280px; border:1px solid #e0e0e0; border-radius:12px; overflow:hidden; min-height:400px; }
@media(max-width:700px){ .ikarte-layout{ grid-template-columns:1fr; min-height:unset; } }

/* map col */
.ikarte-map-col { background:#dde8f0; overflow:hidden; line-height:0; }

/* ikarte-img-wrap: the image and pin layer share the SAME coordinate space.
   Pins use % of this wrapper — so they always point to the same spot regardless of screen size. */
.ikarte-img-wrap { position:relative; display:block; line-height:0; }
.ikarte-bg-img   { display:block; width:100%; height:auto; user-select:none; -webkit-user-drag:none; }
.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:300px; color:#aaa; font-size:14px; }
.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; color:#888; background:#fafafa; flex-shrink:0; }
.ikarte-sidebar-header svg{ flex-shrink:0; color:#bbb; }
.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; }
/* Theme overrides span to display:block — use button-scoped selectors with high specificity */
button.ikarte-acc-btn { display:flex !important; align-items:center !important; flex-wrap:nowrap !important; }
button.ikarte-acc-btn > span.ikarte-acc-name { display:inline-flex !important; align-items:center !important; flex:1 1 0% !important; gap:6px !important; flex-wrap:nowrap !important; font-size:13px; font-weight:600; color:inherit; line-height:1.3; }
button.ikarte-acc-btn > span.ikarte-acc-chevron { display:inline-flex !important; align-items:center !important; flex-shrink:0 !important; }
button.ikarte-acc-btn > span.ikarte-acc-name > span.ikarte-pin-icon-wrap { display:inline-flex !important; align-items:center !important; justify-content:center !important; flex-shrink:0 !important; align-self:center !important; line-height:1; }
button.ikarte-acc-btn > span.ikarte-acc-name > span.ikarte-pin-icon-wrap svg { display:block !important; flex-shrink:0; align-self:center !important; }
.ikarte-acc-chevron{ flex-shrink:0; transition:transform .2s; color:#bbb; width:14px; height:14px; }
.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 h2,.ikarte-acc-inner h3,.ikarte-acc-inner h4{ font-size:13px; font-weight:600; margin:8px 0 4px; }
.ikarte-acc-inner strong{ font-weight:600; }

/* legend */
.ikarte-legend{ display:none; }


.ikarte-pin-icon-img{width:18px;height:18px;object-fit:contain;flex-shrink:0;vertical-align:middle;}

/* Image isolator */
.ikarte-img-isolator { line-height:0; font-size:0; display:block; overflow:hidden; }
.ikarte-img-isolator img { line-height:normal; font-size:initial; }
