/* IBO FOUC GUARD START */
.ibo-frontend-wrapper:not(.is-ready) .ibo-frontend-svg .ibo-polygon,
.ibo-frontend-wrapper:not(.is-ready) .ibo-frontend-svg .ibo-label {
  visibility: hidden !important;
}
.ibo-frontend-wrapper.is-ready .ibo-frontend-svg .ibo-polygon,
.ibo-frontend-wrapper.is-ready .ibo-frontend-svg .ibo-label {
  visibility: visible !important;
}
/* IBO FOUC GUARD END */

/* =========================================================
   Globale CSS-variabler (kan overrides pr. oversigt via inline style)
   ========================================================= */
:root{
  /* Statusfarver */
  --ibo-status-ledig: #08642D;           /* ← NY standardgrøn */
  --ibo-status-reserveret: #CA9A14;
  --ibo-status-solgt: #640808;          /* bruges også til 'udlejet' */
  --ibo-status-ekstern: #ffffff;
  --ibo-status-default: #000000;

  /* Samme farver som RGB-komma-lister (til transparente baggrunde m.v.) */
  --ibo-status-ledig-rgb: 8,100,45;     /* ← opdateret til #08642D */
  --ibo-status-reserveret-rgb: 202,154,20;
  --ibo-status-solgt-rgb: 100,8,8;
  --ibo-status-ekstern-rgb: 255,255,255;
  --ibo-status-default-rgb: 0,0,0;

  /* Standard gennemsigtighed for polygon-fill */
  --ibo-status-opacity: 0.25;

  /* Diverse UI-variabler */
  --ibo-highlight-stroke: #ffffff;      /* “Vis på oversigt” kantfarve */
  --ibo-filter-accent: #08642D;         /* ← slider/checkbox accent (ny grøn) */
  --ibo-bg-gray: #F5F5F5;               /* diskret grå baggrund, fx headerbånd */
  --cta-accent: #1C7C54;

  /* Slider-sporets neutrale baggrund */
  --ibo-slider-track: #e5f5ed;
}

/* =========================================================
   POLYGON-OVERSIGT (SVG + interaktion)
   ========================================================= */
.ibo-frontend-wrapper{
  position:relative;
  display:flow-root;
  isolation:isolate;
  width:100%;
  max-width:100%;
  margin:0 auto 16px;
  background:#f8f8f8;
  overflow:visible;
  overflow-x:clip;
}
.ibo-frontend-image{width:100%;height:auto;display:block;}
.ibo-frontend-svg{
  position:relative; width:100%; height:auto; display:block; pointer-events:auto; z-index:0;
}
.ibo-frontend-svg a,.ibo-frontend-svg polygon,.ibo-frontend-svg text{ pointer-events:auto; }

/* Polygoner – fallback til CSS-variabler hvis der ikke er inline style */
.ibo-frontend-svg .ibo-polygon{
  transition:fill-opacity .2s ease;
  cursor:pointer;
  vector-effect: non-scaling-stroke;
  stroke-width:1px;
  fill:var(--ibo-status-default);
  stroke:var(--ibo-status-default);
  fill-opacity:var(--ibo-status-opacity);
}
/* Status-afhængige farver (bruges hvis ikke overskrevet af inline style) */
.ibo-frontend-svg .ibo-polygon[data-status="ledig"]{
  fill:var(--ibo-status-ledig); stroke:var(--ibo-status-ledig);
}
.ibo-frontend-svg .ibo-polygon[data-status="reserveret"]{
  fill:var(--ibo-status-reserveret); stroke:var(--ibo-status-reserveret);
}
.ibo-frontend-svg .ibo-polygon[data-status="solgt"],
.ibo-frontend-svg .ibo-polygon[data-status="udlejet"]{
  fill:var(--ibo-status-solgt); stroke:var(--ibo-status-solgt);
}
.ibo-frontend-svg .ibo-polygon[data-status="ekstern"]{
  fill:var(--ibo-status-ekstern); stroke:var(--ibo-status-ekstern);
}

/* Fallback for polygoner der linker til en anden oversigt (bliv altid hvid) */
.ibo-frontend-svg .ibo-polygon[data-link-type="oversigt"],
.ibo-frontend-svg .ibo-polygon[data-target-oversigt-id]{
  fill:#fff !important;
  stroke:#fff !important;
  fill-opacity: var(--ibo-status-opacity, .25) !important;
}

.ibo-polygon:hover,.ibo-polygon.hovered{ fill-opacity:.30 !important; }

/* Label (valgfri) */
.ibo-label{
  font-size:18px;font-family:inherit;font-weight:700; pointer-events:none;
  dominant-baseline:middle; text-anchor:middle; paint-order:stroke fill; stroke:#fff; stroke-width:.5; opacity:0 !important;
}

/* Highlight ved “Vis på oversigt” – brug variabel farve */
.ibo-polygon.highlight,
.ibo-polygon.is-highlight{
  stroke:var(--ibo-highlight-stroke) !important;
  stroke-width:4 !important;
  filter:drop-shadow(0 0 6px rgba(255,255,255,.2));
  transition:stroke .2s,stroke-width .2s,filter .2s;
}

/* Mindre kant på små skærme */
@media (max-width:767px){
  .ibo-frontend-svg .ibo-polygon{ stroke-width:1.25; }
}

#ibo-bg-image,#ibo-svg{ position:absolute; top:0; left:0; width:100%; height:100%; display:block; }
#ibo-editor-container{ position:relative; width:100%; height:auto; }
@media (max-width:768px){ .ibo-frontend-wrapper{ margin-bottom:20px; } }

/* Remove default focus ring on SVG polygons and link wrappers */
.ibo-frontend-svg .ibo-polygon,
.ibo-frontend-svg a {
  outline: none;
  -webkit-tap-highlight-color: transparent; /* mobile */
}

.ibo-frontend-svg .ibo-polygon:focus,
.ibo-frontend-svg .ibo-polygon:focus-visible,
.ibo-frontend-svg .ibo-polygon:active,
.ibo-frontend-svg a:focus,
.ibo-frontend-svg a:focus-visible,
.ibo-frontend-svg a:active {
  outline: none !important;
  box-shadow: none !important;
}

/* Optional: if some themes inject focus shadows on links inside SVG */
.ibo-frontend-svg a *:focus,
.ibo-frontend-svg a *:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* =========================================================
   OVERSIGT-NAVIGATION (knapper)
   ========================================================= */
.ibo-oversigt-nav{
  display:flex; flex-wrap:wrap; gap:.5rem; align-items:center;
  margin: 8px 0 12px;
}
.ibo-oversigt-nav__btn{
  appearance:none; -webkit-appearance:none;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  padding:.5rem .8rem;
  border-radius:.5rem;
  cursor:pointer;
  font:inherit; line-height:1.2;
  transition: box-shadow .2s ease, border-color .2s ease, transform .1s ease, background .15s ease;
}
.ibo-oversigt-nav__btn:hover{ border-color:rgba(0,0,0,.25); box-shadow:0 2px 8px rgba(0,0,0,.06); }
.ibo-oversigt-nav__btn:focus-visible{ outline:2px solid var(--ibo-filter-accent); outline-offset:2px; }
.ibo-oversigt-nav__btn[disabled], .ibo-oversigt-nav__btn[aria-busy="true"]{ opacity:.55; cursor:not-allowed; }
.ibo-oversigt-nav__btn[aria-current="true"],
.ibo-oversigt-nav__btn.is-active{
  background: #f0f6f3;
  border-color: color-mix(in srgb, var(--ibo-filter-accent) 30%, #ffffff);
}

/* =========================================================
   KRYDSFADE-OVERLAY (failsafe – JS injicerer også CSS)
   ========================================================= */
.ibo-frontend-wrapper.ibo-xfade-out{ filter:blur(6px); transform:scale(.985); transition:filter .28s ease, transform .28s ease; }
.ibo-frontend-wrapper.ibo-xfade-in{  filter:blur(0);   transform:scale(1);     transition:filter .28s ease, transform .28s ease; }
.ibo-xfade-overlay{ position:absolute; inset:0; background:rgba(255,255,255,.0); pointer-events:none; opacity:0; }
.ibo-xfade-overlay.show{ opacity:1; transition:opacity .18s ease; }

/* =========================================================
   BOLIGLISTE WRAPPER + FILTER-PLACERING
   ========================================================= */
.ibo-boligliste-wrapper{
  position:relative;
  display:flow-root;
  clear:both;
  z-index:auto;
  margin-top:0;
}

/* Filter – fuld bredde, knap til højre, menu i viewport */
.ibo-filter-wrapper{
  position:relative;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  width:100%;
  max-width:100%;
  margin:8px 0 12px;
  z-index:auto;
  clear:both;
}
.ibo-filter-toggle{
  background:#fff; border:1px solid #ccc; padding:.5em 1.2em; border-radius:6px;
  font-size:1.1em; cursor:pointer; font-weight:400; color:#222; box-shadow:0 2px 10px #0001; position:relative;
}
.ibo-filter-toggle .ibo-chevron{ margin-left:.3em; font-size:1.1em; color:#999; transition:transform .2s; }
.ibo-filter-toggle.open .ibo-chevron{ transform:rotate(180deg); }
.ibo-filter-toggle .ibo-close{ margin-left:.8em; font-size:1.1em; color:#ff6363; vertical-align:middle; cursor:pointer; display:none; }
.ibo-filter-menu{
  position:absolute; top:calc(100% + 8px); right:0; left:auto;
  width:min(420px, calc(100vw - 24px));
  max-height:clamp(240px, 50vh, 520px);
  overflow:auto; background:#fff; border:1px solid #e6e6e6; border-radius:10px;
  padding:1.2em 1.6em 1em; box-shadow:0 10px 32px #0002; margin-top:0; z-index:1200; display:none;
}
.ibo-filter-group{ margin-bottom:1em; }
.ibo-filter-checkboxes{ display:flex; flex-wrap:wrap; gap:.7em; margin-top:.2em; }
.ibo-filter-checkboxes label{ font-weight:400; font-size:1em; display:flex; align-items:center; gap:.2em; }

/* Brug accent-color til checkbox/radio */
.ibo-filter-wrapper input[type="checkbox"],
.ibo-filter-wrapper input[type="radio"]{
  accent-color: var(--ibo-filter-accent);
}

.ibo-noui-slider-wrap{ margin-top:.3em; margin-bottom:1em; }
.ibo-slider-values{ display:flex; justify-content:space-between; font-size:1em; margin-top:.2em; color:#333; }
.ibo-filter-reset{ background:#f5f5f5; color:#666; border:none; padding:.3em 1.2em; border-radius:5px; cursor:pointer; transition:background .15s; }
.ibo-filter-reset:hover{ background:#f0f0f0; color:#222; }

/* =========================================================
   BOLIGLISTE – GENEREL OPSÆTNING
   ========================================================= */
.ibo-boligliste{
  width:100%;
  overflow-x:hidden; /* tablet/mobil scroller i WRAPPEREN */
  margin-top:0;
}
.ibo-row,
.ibo-bolig-item{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:12px;
  background:#fff;
  border-bottom:1px solid #eee; /* desktop divider pr. række */
  padding:10px 0;
  transition:background .15s, border-color .15s;
  border-left:2px solid transparent;
  border-right:2px solid transparent;
}
.ibo-row:last-child,
.ibo-bolig-item:last-child{ border-bottom:none; }

/* Header */
.ibo-row.ibo-header-row,
.ibo-bolig-item.ibo-header-row{
  background:var(--ibo-bg-gray);
  font-weight:600;
  border-left:none;
  border-right:none;
}
.ibo-header-row .ibo-bolig-col{
  /* Ingen ellipsis i overskrifter, og plads til sorteringspil */
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
  cursor:pointer;
  box-sizing:border-box;
}

/* Celler (basis) */
.ibo-bolig-col{
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  padding:.5em 1em;
  font-size:16px;
  text-align:left;
  box-sizing:border-box;
}

/* Status-dot – ingen ellipsis/dobbelte prikker */
.ibo-bolig-col.ibo-col-statusdot{
  flex:0 0 28px;
  overflow:visible !important;
  text-overflow:clip !important;
}
.ibo-status-dot{
  display:inline-block; width:10px; height:10px; border-radius:50%;
  background:var(--ibo-status-color,#bbb);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.85);
}

/* Actions – højrejuster og hold kompakt */
.ibo-bolig-col.ibo-col-actions{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:right;
}
.ibo-bolig-col.ibo-col-actions a{ display:inline-block; margin-left:10px; }

/* Hover/aktiv – farver efter status (brug RGB-variabler til transparente baggrunde) */
.ibo-bolig-item.hovered,
.ibo-bolig-item.active{ background:transparent; }

.ibo-bolig-item.status-ledig.hovered,
.ibo-bolig-item.status-ledig.active{
  background: rgba(var(--ibo-status-ledig-rgb), .12) !important;
  border-left: 2px solid var(--ibo-status-ledig) !important;
  border-right:2px solid var(--ibo-status-ledig) !important;
}

/* Reserveret */
.ibo-bolig-item.status-reserveret.hovered,
.ibo-bolig-item.status-reserveret.active{
  background: rgba(var(--ibo-status-reserveret-rgb), .12) !important;
  border-left: 2px solid var(--ibo-status-reserveret) !important;
  border-right:2px solid var(--ibo-status-reserveret) !important;
}

/* Solgt / Udlejet deler farve */
.ibo-bolig-item.status-solgt.hovered,
.ibo-bolig-item.status-solgt.active,
.ibo-bolig-item.status-udlejet.hovered,
.ibo-bolig-item.status-udlejet.active{
  background: rgba(var(--ibo-status-solgt-rgb), .12) !important;
  border-left: 2px solid var(--ibo-status-solgt) !important;
  border-right:2px solid var(--ibo-status-solgt) !important;
}

/* Ekstern (hvid) – subtil markering */
.ibo-bolig-item.status-ekstern.hovered,
.ibo-bolig-item.status-ekstern.active{
  background: rgba(var(--ibo-status-ekstern-rgb), .6) !important;
  border-left: 2px solid var(--ibo-status-ekstern) !important;
  border-right:2px solid var(--ibo-status-ekstern) !important;
}

/* Default / andre nye (inkl. “anden”, “renovering”, “under-renovering”) */
.ibo-bolig-item.status-default.hovered,
.ibo-bolig-item.status-default.active,
.ibo-bolig-item.status-anden.hovered,
.ibo-bolig-item.status-anden.active,
.ibo-bolig-item.status-renovering.hovered,
.ibo-bolig-item.status-renovering.active,
.ibo-bolig-item.status-under-renovering.hovered,
.ibo-bolig-item.status-under-renovering.active{
  background: rgba(var(--ibo-status-default-rgb), .12) !important;
  border-left: 2px solid var(--ibo-status-default) !important;
  border-right:2px solid var(--ibo-status-default) !important;
}

/* Sorteringspil – kun én pil, styret af data-attributter */
.ibo-header-row .ibo-sort-indicator{
  display:inline-block; margin-left:6px; min-width:1.2em; opacity:0; transition:opacity .15s ease; pointer-events:none;
}
.ibo-header-row [data-sortable="1"]:hover .ibo-sort-indicator,
.ibo-header-row [data-sort-active="1"] .ibo-sort-indicator{ opacity:1; }
.ibo-header-row .ibo-sort-indicator::before{ content:"▾"; }
.ibo-header-row [data-sort-dir="asc"]  .ibo-sort-indicator::before{ content:"▴"; }
.ibo-header-row [data-sort-dir="desc"] .ibo-sort-indicator::before{ content:"▾"; }

/* =========================================================
   DESKTOP/LAPTOP (≥960px)
   - Adresse vokser, øvrige faste bredder -> stabil alignment
   ========================================================= */
@media (min-width:960px){
  .ibo-header-row,
  .ibo-bolig-item{
    display:flex;
    flex-wrap:wrap;          /* så actions kan hoppe på linje 2 ved behov */
    align-items:center;
    column-gap:12px;
  }

  .ibo-bolig-col{
    flex:0 0 auto;           /* endelige bredder sættes via JS pr. kolonne */
    min-width:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    padding:.5em 1em;
  }

  /* Header ellipser ikke (vi måler også headerens naturlige bredde) */
  .ibo-header-row .ibo-bolig-col{
    overflow:visible;
    text-overflow:clip;
  }

  /* Dot & actions identificeres via klasse (JS sætter også width) */
  .ibo-col-statusdot{ flex:0 0 28px; min-width:28px; }
  .ibo-col-statusdot::before{ content:none !important; }
  .ibo-col-actions{ text-align:right; white-space:nowrap; }

  /* Adresse må bryde i hele ord og må fylde resten (JS giver flex:1) */
  .ibo-bolig-col[data-col-key="kort_adresse"]{
    flex:1 1 320px;
    min-width:240px;
    white-space:normal;
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:auto;
  }
}

/* =========================================================
   TABLET (768–959px) – Wrapper styrer scroll (uden indre padding)
   ========================================================= */
@media (min-width:768px) and (max-width:959.98px){
  .ibo-boligliste-wrapper{
    position:relative;
    max-width:100%;
    overflow-x:auto !important;          /* <- scroll-container */
    overflow-y:visible;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;       /* siden “overtager” ikke scroll */
    contain:layout paint;                /* isolér overflow til wrapper */
    box-sizing:border-box;
    background:#fff;                     /* hvid baggrund under hele tabellen */
    border-radius:4px;
  }
  .ibo-boligliste{
    display:inline-table;
    min-width:max-content;               /* udvid efter indhold; wrapper scroller */
    overflow:visible !important;         /* overstyr basis: overflow-x:hidden */
    border-collapse:separate;
    border-spacing:0;
    background:transparent;              /* baggrund håndteres af wrapperen */
  }
  .ibo-header-row,
  .ibo-bolig-item{
    display:table-row;
    background:transparent;
    border-bottom:0;                     /* undgå dobbeltlinjer (cellernes border styrer) */
  }
  .ibo-bolig-col{
    display:table-cell;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    padding:.6em .8em;
    vertical-align:middle;
    border-bottom:1px solid #eee;
  }
  .ibo-header-row .ibo-bolig-col{
    background:var(--ibo-bg-gray);       /* går nu helt til venstre/højre kant */
    font-weight:600;
  }
  .ibo-col-statusdot{ width:28px; min-width:28px; }
  .ibo-col-statusdot::before{ content:none !important; }

  /* Lange adresser -> lad kolonnen vokse horisontalt (vi scroller) */
  .ibo-bolig-col[data-col-key="kort_adresse"]{ white-space:nowrap !important; }

  /* “Vis på oversigt” holder sig inde i tabellen og højrestilles */
  .ibo-bolig-col.ibo-col-actions{
    white-space:nowrap !important;
    text-align:right;
    width:160px; min-width:160px;
  }

  /* Ingen pseudo-labels i “tabel”-layoutet */
  .ibo-bolig-col::before{ content:none !important; }
  
  /* Skjul kolonner markeret "Skjul på mobil" (MOBIL) */
  .ibo-boligliste .ibo-header-row .ibo-col--hide-mobile,
  .ibo-boligliste .ibo-bolig-item .ibo-col--hide-mobile{
    display:none !important;
  }
}

/* =========================================================
   MOBIL (≤767px) – Wrapper styrer scroll (uden indre padding)
   ========================================================= */
@media (max-width:767px){
  .ibo-boligliste-wrapper{
    position:relative;
    max-width:100%;
    overflow-x:auto !important;          /* <- scroll-container */
    overflow-y:visible;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    contain:layout paint;
    box-sizing:border-box;
    background:#fff;
    border-radius:4px;
  }
  .ibo-boligliste{
    display:inline-table;
    min-width:max-content;
    overflow:visible !important;         /* overstyr basis: overflow-x:hidden */
    border-collapse:separate;
    border-spacing:0;
    background:transparent;
  }
  .ibo-header-row,
  .ibo-bolig-item{
    display:table-row;
    background:transparent;
    border-bottom:0;                     /* undgå dobbeltlinjer */
  }
  .ibo-bolig-col{
    display:table-cell;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    padding:.6em .8em;
    vertical-align:middle;
    border-bottom:1px solid #eee;
  }
  .ibo-header-row .ibo-bolig-col{
    background:var(--ibo-bg-gray);
    font-weight:600;
  }
  .ibo-col-statusdot{ width:28px; min-width:28px; }
  .ibo-col-statusdot::before{ content:none !important; }
  .ibo-bolig-col[data-col-key="kort_adresse"]{ white-space:nowrap !important; }
  .ibo-bolig-col.ibo-col-actions{
    white-space:nowrap !important;
    text-align:right;
    width:160px; min-width:160px;
  }
  .ibo-bolig-col::before{ content:none !important; }
  
  /* Skjul kolonner markeret "Skjul på mobil" (MOBIL) */
  .ibo-boligliste .ibo-header-row .ibo-col--hide-mobile,
  .ibo-boligliste .ibo-bolig-item .ibo-col--hide-mobile{
    display:none !important;
  }
}

/* =========================================================
   TOUCH-ENHEDER (iPad Pro m.fl.) 960–1200px
   - Desktop-lignende grid + ubrudt vandret divider
   - "Vis på oversigt" på linje 2, højrestillet
   - Understøtter ekstra kolonner via grid-auto-columns
   ========================================================= */
@media (min-width:960px) and (max-width:1200px){
  .ibo-is-touch .ibo-header-row,
  .ibo-is-touch .ibo-bolig-item{
    display:grid;
    grid-template-columns:
      28px                       /* status dot */
      minmax(220px, 1fr)         /* adresse */
      130px                      /* værelser */
      110px                      /* areal */
      180px                      /* status (lidt bredere til 'Under renovering') */
      130px                      /* husleje */
      160px;                     /* actions (header tom) */
    grid-auto-flow:column;
    grid-auto-columns:minmax(110px, max-content); /* ekstra ukendte kolonner */
    column-gap:12px;
    align-items:center;
    border-bottom:1px solid #eee; /* ÉN ubrudt divider pr. række */
  }

  /* Ingen ellipsis på header */
  .ibo-is-touch .ibo-header-row .ibo-bolig-col{
    overflow:visible;
    text-overflow:clip;
    white-space:nowrap;
    background:var(--ibo-bg-gray);
    font-weight:600;
  }

  /* Række-celler: én divider via række, derfor ingen celle-border */
  .ibo-is-touch .ibo-bolig-col{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    padding:.6em .8em;
    border-bottom:0;
  }

  /* adresse må bryde i ORD (ikke midt i ord) – presser ikke andre */
  .ibo-is-touch .ibo-bolig-col[data-col-key="kort_adresse"]{
    white-space:normal;
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:auto;
  }

  /* actions på egen linje, helt til højre */
  .ibo-is-touch .ibo-bolig-item .ibo-col-actions{
    grid-column:1 / -1;
    justify-self:end;
    white-space:nowrap;
    padding-top:.2em;
  }

  /* statusdot-kolonnen må ikke vise pseudoindhold */
  .ibo-is-touch .ibo-col-statusdot{ width:28px; min-width:28px; }
  .ibo-is-touch .ibo-col-statusdot::before{ content:none !important; }

  /* Touch 960–1200: lad gridet bestemme */
  .ibo-is-touch .ibo-boligliste{ overflow-x:visible; }
  .ibo-is-touch .ibo-bolig-col{ min-width:0; }
  .ibo-is-touch .ibo-bolig-col[data-col-key="kort_adresse"]{ min-width:0; }
}

/* =========================================================
   IKON + FILTER-BUTTON
   ========================================================= */

.ibo-icon{
  display:inline-block;
  width:1.1em; height:1.1em;
  vertical-align:-0.15em;
  flex:0 0 auto;
}

/* — Standard: brug baggrundsbillede (fallback) — */
.ibo-icon--filter{
  background-image: var(--ibo-icon-filter);
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

/* — “Opgrader” til mask når støttet — */
@supports ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .ibo-icon--filter{
    background-image:none !important;
    background-color: currentColor !important; /* fyld farve */
    -webkit-mask-image: var(--ibo-icon-filter);
            mask-image: var(--ibo-icon-filter);
    -webkit-mask-repeat:no-repeat;
            mask-repeat:no-repeat;
    -webkit-mask-position:center;
            mask-position:center;
    -webkit-mask-size:contain;
            mask-size:contain;
  }
}

/* Knaplayout (kun tekst + ikon) */
.ibo-filter-toggle{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: .2em .2em !important;
  display:inline-flex; align-items:center; gap:.45em;
  font-weight:400; color:#222; /* sikrer synlig farve til currentColor */
}
.ibo-filter-toggle .ibo-chevron,
.ibo-filter-toggle .ibo-close{ display:none !important; }

.ibo-filter-toggle:hover,
.ibo-filter-toggle:focus{
  font-weight:400; color:#222;
}

/* Basis for inline filter-ikonet */
.ibo-filter-toggle .ibo-icon-filter-animated svg {
  display: inline-block;
  vertical-align: middle;

  /* gør scale-anim glat uden at påvirke layout */
  transform: translateZ(0);
  will-change: transform;
  transition: transform .18s ease;
  backface-visibility: hidden;
}

/* Filter-ikon: hvid udfyldning + accent-outline, som sliderens cirkler
   + glidende transform-anim for knapperne */
.ibo-filter-toggle .ibo-icon-filter-animated .knob {
  fill: #fff !important;
  stroke: var(--ibo-accent, var(--ibo-filter-accent, currentColor)) !important;
  stroke-width: 1.8px !important;

  vector-effect: non-scaling-stroke;
  paint-order: stroke fill;
  stroke-linecap: round;
  stroke-linejoin: round;

  /* smooth move */
  transform: translateX(0);           /* definer baseline */
  transform-origin: 50% 50%;
  will-change: transform;
  transition:
    transform .24s cubic-bezier(.22,.61,.36,1),
    stroke    .18s ease,
    fill      .18s ease;
}

/* (valgfrit) samme outline-farve – bevarer nuancen ved hover/åben */
.ibo-filter-toggle:hover .ibo-icon-filter-animated .knob,
.ibo-filter-toggle.open  .ibo-icon-filter-animated .knob {
  stroke: var(--ibo-accent, var(--ibo-filter-accent, currentColor)) !important;
}

/* Ved HOVER eller når menuen er ÅBEN (.open),
   flytter vi top og bot fra højre -> venstre, og midt fra venstre -> højre. */
.ibo-filter-toggle:hover .ibo-icon-filter-animated .knob.top,
.ibo-filter-toggle.open  .ibo-icon-filter-animated .knob.top,
.ibo-filter-toggle:hover .ibo-icon-filter-animated .knob.bot,
.ibo-filter-toggle.open  .ibo-icon-filter-animated .knob.bot {
  transform: translateX(-8px);
}
.ibo-filter-toggle:hover .ibo-icon-filter-animated .knob.mid,
.ibo-filter-toggle.open  .ibo-icon-filter-animated .knob.mid {
  transform: translateX(8px);
}

/* (Valgfrit) Skaler en anelse for “taktil” følelse */
.ibo-filter-toggle:hover .ibo-icon-filter-animated svg,
.ibo-filter-toggle.open  .ibo-icon-filter-animated svg {
  transform: translateZ(0) scale(1.02);
}

/* Respektér brugerens preferencer (ingen motion) */
@media (prefers-reduced-motion: reduce) {
  .ibo-filter-toggle .ibo-icon-filter-animated .knob,
  .ibo-filter-toggle .ibo-icon-filter-animated svg {
    transition: none !important;
  }
}

/* Hvis du tidligere brugte mask-ikon til filterknappen, neutralisér det her: */
.ibo-filter-toggle .ibo-icon,
.ibo-filter-toggle .ibo-icon--filter {
  display: none !important;
}
/* =========================================================
   SLIDER (noUiSlider)
   ========================================================= */

/* Basis (neutral) – gælder alle sliders */
.noUi-target{
  background: var(--ibo-slider-track, #e5f5ed); /* ← behold fallback */
  border-radius: 8px;
  border: 1px solid #ccc;
}
.noUi-horizontal .noUi-handle{
  background: #fff;
  box-shadow: 0 2px 8px #0001;
  pointer-events: auto;
  touch-action: none;
  cursor: grab;
}
.noUi-horizontal .noUi-handle:active{ cursor: grabbing; }

/* Filter-slidere: accent sættes pr. felt via inline style på .ibo-filter-group */
.ibo-filter-group[data-filter-type="slider"]{
  /* fallback hvis JS ikke når at sætte variablen */
  --ibo-accent: var(--ibo-filter-accent, #08642D);
}

/* Sporet forbliver neutralt (IKKE brandfarvet) */
.ibo-filter-group[data-filter-type="slider"] .noUi-target{
  background: var(--ibo-slider-track, #e5f5ed) !important; /* ← med fallback */
}

/* Det udfyldte stykke + handle-kant bruger accent */
.ibo-filter-group[data-filter-type="slider"] .noUi-connect{
  background: var(--ibo-accent, var(--ibo-filter-accent, #08642D)) !important;
}
.ibo-filter-group[data-filter-type="slider"] .noUi-horizontal .noUi-handle{
  border: 2px solid var(--ibo-accent, var(--ibo-filter-accent, #08642D)) !important;
}

/* ===========================
   IBO Filter slider – slim + round handles
   =========================== */
.ibo-filter-group[data-filter-type="slider"] .noUi-target {
  /* slank skin */
  height: var(--ibo-slider-track-h, 10px);
  border: 0;
  border-radius: 999px;
  box-shadow: none;
  background: transparent; /* vi styrer farver på base/connect separat */
}

/* selve “basen” */
.ibo-filter-group[data-filter-type="slider"] .noUi-horizontal,
.ibo-filter-group[data-filter-type="slider"] .noUi-base,
.ibo-filter-group[data-filter-type="slider"] .noUi-connects {
  height: var(--ibo-slider-track-h, 10px);
  border-radius: 999px;
}

/* grå bagspor (rail) */
.ibo-filter-group[data-filter-type="slider"] .noUi-connects {
  background: var(--ibo-slider-rail, #e9e9e9);
}

/* udfyldt del (accent) – matcher din eksisterende accent-variabel */
.ibo-filter-group[data-filter-type="slider"] .noUi-connect{
  background: var(--ibo-accent, var(--ibo-filter-accent, #0E412B)) !important;
}

/* runde handles */
.ibo-filter-group[data-filter-type="slider"] .noUi-handle {
  width: var(--ibo-slider-handle, 18px);
  height: var(--ibo-slider-handle, 18px);
  border-radius: 50%;
  border: 2px solid var(--ibo-accent, var(--ibo-filter-accent, #0E412B));
  background: #fff;
  box-shadow: 0 0 0 0 rgba(0,0,0,.0);
  cursor: pointer;
  /* centrér vertikalt på den slanke track */
  top: 50%;
  transform: translate(-50%, -50%);
}

/* noUi’s små streger i håndtaget – væk */
.ibo-filter-group[data-filter-type="slider"] .noUi-handle::before,
.ibo-filter-group[data-filter-type="slider"] .noUi-handle::after {
  display: none;
  content: none;
}

/* større usynlig touchzone for bedre UX */
.ibo-filter-group[data-filter-type="slider"] .noUi-handle .noUi-touch-area {
  position: absolute;
  left: 50%; top: 50%;
  width: 32px; height: 32px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
}

/* hover/active feedback (diskret) */
.ibo-filter-group[data-filter-type="slider"] .noUi-handle:hover {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ibo-accent, #0E412B) 20%, transparent);
}
.ibo-filter-group[data-filter-type="slider"] .noUi-active {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ibo-accent, #0E412B) 25%, transparent);
}

/* keyboard focus – tydelig ring */
.ibo-filter-group[data-filter-type="slider"] .noUi-handle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ibo-accent, #0E412B) 35%, transparent);
}

/* disabled */
.ibo-filter-group[data-filter-type="slider"] .noUi-disabled .noUi-connect {
  background: #cfcfcf !important;
}
.ibo-filter-group[data-filter-type="slider"] .noUi-disabled .noUi-handle {
  border-color: #cfcfcf;
  background: #f5f5f5;
  cursor: not-allowed;
}

/* small screens – lidt mindre håndtag hvis du vil */
@media (max-width: 480px) {
  .ibo-filter-group[data-filter-type="slider"] .noUi-handle {
    width: 16px; height: 16px;
  }
}

/* Centrer runde handles præcist på en slank (10px) track */
.ibo-filter-group[data-filter-type="slider"] .noUi-horizontal .noUi-handle {
  box-sizing: border-box; /* gør at height/width inkluderer border */
  width: var(--ibo-slider-handle, 18px);
  height: var(--ibo-slider-handle, 18px);
  border-radius: 50%;
  border: 2px solid var(--ibo-accent, var(--ibo-filter-accent, #0E412B));
  background: #fff;

  /* Horisontalt: center over origin */
  left: auto;
  right: calc(var(--ibo-slider-handle, 18px) / -2);

  /* Vertikalt: præcis centrering ift. track-højde */
  top: calc(
    (var(--ibo-slider-track-h, 10px) - var(--ibo-slider-handle, 18px)) / 2
  );

  /* sørg for at en evt. tidligere transform ikke skubber den */
  transform: none;
}

/* fjern noUi’s “streger” i håndtaget */
.ibo-filter-group[data-filter-type="slider"] .noUi-handle::before,
.ibo-filter-group[data-filter-type="slider"] .noUi-handle::after { display: none; }

/* Gruppetitler: "Areal (m²)", "Værelser", "Husleje", "Status" */
.ibo-filter-menu .ibo-filter-group > label {
  font-weight: 400 !important;
}

/* Valg-labels inde i fx status-checkboxes */
.ibo-filter-menu .ibo-filter-checkboxes label {
  font-weight: 400 !important;
}

/* ===========================
   IBO GALLERY – stable viewport, no flicker, max 400px
   =========================== */

:root { --ibo-gallery-h: 400px; }

.gallery,
.ibo-swiper {
  /* stabilt viewport fra første paint */
  --ibo-gallery-h: 400px;
  position: relative;
  width: 100%;
  min-height: var(--ibo-gallery-h);
  /* peek på næste slide – virker i både fallback og swiper */
  overflow: visible;
  padding-right: 30px;
  box-sizing: border-box;
  visibility: visible !important;
  opacity: 1 !important;
}

/* wrapper – lodret centrering af slides */
.gallery .swiper-wrapper,
.ibo-swiper .swiper-wrapper {
  align-items: center;
  justify-content: flex-start;
  min-height: var(--ibo-gallery-h);
  visibility: visible !important;
  opacity: 1 !important;
}

/* slides har fast (visuel) højde = viewport */
.gallery .swiper-slide,
.ibo-swiper .swiper-slide {
  height: var(--ibo-gallery-h);
  width: auto !important;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background: none;
  box-sizing: border-box;
}

/* link fylder hele slide-højden */
.gallery .swiper-slide > a,
.ibo-swiper .swiper-slide > a {
  display: flex;
  align-items: center;
  height: 100%;
  width: auto;
  text-decoration: none;
}

/* billede skalerer ind i viewport – aldrig over 400px i højden */
.gallery .swiper-slide img,
.ibo-swiper .swiper-slide img {
  display: block;
  max-height: var(--ibo-gallery-h); /* ⟵ hårdt loft */
  height: 100%;
  width: auto;
  object-fit: contain;
  background: #fff;
  border-radius: 12px;
}

/* Vis ALLE slides – inkl. duplicate (hvis loop utilsigtet skulle slå til) */
.gallery .swiper-slide-duplicate,
.ibo-swiper .swiper-slide-duplicate {
  visibility: visible !important;
  opacity: 1 !important;
}

/* skjul pagination dots hvis temaet tilfører dem */
.gallery .swiper-pagination,
.ibo-swiper .swiper-pagination { display: none !important; }

/* pæne pil-knapper over indholdet */
.gallery .swiper-button-next,
.ibo-swiper .swiper-button-next,
.gallery .swiper-button-prev,
.ibo-swiper .swiper-button-prev {
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
}

/* responsive højde – kan tilpasses efter behov */
@media (max-width: 1024px) {
  .gallery, .ibo-swiper { --ibo-gallery-h: 320px; }
}
@media (max-width: 640px) {
  .gallery, .ibo-swiper { --ibo-gallery-h: 260px; }
}
@media (max-width: 600px) {
  .gallery, .ibo-swiper { --ibo-gallery-h: 220px; }
}

/* Elementor lightbox: skjul loader overlay + ikon */
.elementor-lightbox .dialog-lightbox-loading,
.elementor-lightbox .dialog-lightbox-loading *,
.elementor-lightbox .elementor-slideshow__preloader,
.elementor-lightbox .elementor-slideshow__preloader * {
  display: none !important;
  pointer-events: none !important;
}

/* Swiper: skjul lazy-preloader (også den hvide variant) */
.elementor-lightbox .swiper-lazy-preloader,
.elementor-lightbox .swiper-lazy-preloader-white {
  display: none !important;
  pointer-events: none !important;
}

/* (valgfrit) hvis temaet bruger eicon-spinner i lightboxen */
.elementor-lightbox .eicon-spinner,
.elementor-lightbox .eicon-loading,
.elementor-lightbox .eicon-animation {
  display: none !important;
  pointer-events: none !important;
}


/* =========================================
   SWIPER NEXT-PIL (mask + fallback)
   ========================================= */

/* Skjul forrige-knappen helt */
.gallery .swiper-button-prev,
.ibo-swiper .swiper-button-prev { display:none !important; }

/* Beholderen (hvid cirkel) */
.gallery .swiper-button-next,
.ibo-swiper .swiper-button-next{
  width:40px; height:40px;
  border:none; border-radius:50%;
  background:#fff; box-shadow:0 1px 6px rgba(0,0,0,.09);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; z-index:10; opacity:.95; color:#333;
}

/* — Fallback: brug baggrundsbillede — */
.gallery .swiper-button-next::after,
.ibo-swiper .swiper-button-next::after{
  content:"";
  display:block; width:20px; height:20px;
  background-image: var(--ibo-icon-next);
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

/* — Opgrader til mask når støttet — */
@supports ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .gallery .swiper-button-next::after,
  .ibo-swiper .swiper-button-next::after{
    background-image:none !important;
    background-color: currentColor !important;
    -webkit-mask-image: var(--ibo-icon-next);
            mask-image: var(--ibo-icon-next);
    -webkit-mask-repeat:no-repeat;
            mask-repeat:no-repeat;
    -webkit-mask-position:center;
            mask-position:center;
    -webkit-mask-size:contain;
            mask-size:contain;
  }
}


/* =========================================
   Post overlay knapper
   ========================================= */
.plan-cta .elementor-button .elementor-button-content-wrapper,
.address-cta .elementor-button .elementor-button-content-wrapper,
.con-cta .elementor-button .elementor-button-content-wrapper {
  position: relative;
  z-index: 1;
}

/* === fælles pill layout med præcis 2.5px “luft” omkring cirklen === */
.plan-cta .elementor-button,
.address-cta .elementor-button,
.con-cta .elementor-button {
  --circle-size: 40px;        /* hvid cirkel diameter */
  --inset-left: 2.5px;        /* afstand fra venstre kant til cirkel */
  --edge-gap: 2.5px;          /* top/bund luft omkring cirkel */
  --gap-to-text: 16px;        /* afstand fra cirkel til tekst */

  position: relative;
  display: inline-flex;
  align-items: center;
  block-size: calc(var(--circle-size) + (2 * var(--edge-gap)));
  padding-inline-start: calc(var(--inset-left) + var(--circle-size) + var(--gap-to-text)) !important;
  padding-inline-end: 16px !important;
  border-radius: 9999px;
  border: 0.5px solid transparent; /* sættes pr. variant */
  box-sizing: border-box;
  text-decoration: none;
}

/* Elementor wrapper sikres over pseudo-elementer */
.plan-cta .elementor-button .elementor-button-content-wrapper,
.address-cta .elementor-button .elementor-button-content-wrapper,
.con-cta .elementor-button .elementor-button-content-wrapper {
  display: inline-flex;
  align-items: center;
  position: relative;
  z-index: 2;
}

.plan-cta .elementor-button .elementor-button-text,
.address-cta .elementor-button .elementor-button-text,
.con-cta .elementor-button .elementor-button-text {
  white-space: nowrap;
  line-height: 1.2;
}

/* Venstre hvid cirkel (baggrundslag) */
.plan-cta .elementor-button::before,
.address-cta .elementor-button::before,
.con-cta .elementor-button::before {
  content: "";
  position: absolute;
  inset-inline-start: var(--inset-left);
  inset-block-start: var(--edge-gap);
  inline-size: var(--circle-size);
  block-size: var(--circle-size);
  border-radius: 50%;
  background-color: #fff !important;       /* hvid cirkel */
  z-index: 0;
  pointer-events: none;
}

/* Sort ikon ovenpå den hvide cirkel (mask) */
.plan-cta .elementor-button::after,
.address-cta .elementor-button::after,
.con-cta .elementor-button::after {
  content: "";
  position: absolute;
  inset-inline-start: var(--inset-left);
  inset-block-start: var(--edge-gap);
  inline-size: var(--circle-size);
  block-size: var(--circle-size);
  border-radius: 50%;
  z-index: 1;
  pointer-events: none;

  background-color: #000;             /* ikonfarve */
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center;  mask-position: center;
  -webkit-mask-size: 18px auto;   mask-size: 18px auto;
}

/* Knyt hvert ikon til ::after */
.plan-cta   .elementor-button::after { -webkit-mask-image: var(--ibo-icon-plan);  mask-image: var(--ibo-icon-plan);  }
.address-cta .elementor-button::after{ -webkit-mask-image: var(--ibo-icon-loc);   mask-image: var(--ibo-icon-loc);   }
.con-cta    .elementor-button::after { -webkit-mask-image: var(--ibo-icon-phone); mask-image: var(--ibo-icon-phone); }

/* Skjul ikonlag hvis mask ikke understøttes (graceful degrade) */
@supports not ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .plan-cta .elementor-button::after,
  .address-cta .elementor-button::after,
  .con-cta .elementor-button::after { display:none; }
}

/* Fokus/hovers fælles */
.plan-cta .elementor-button:focus-visible,
.address-cta .elementor-button:focus-visible,
.con-cta .elementor-button:focus-visible {
  outline: 2px solid rgba(0,0,0,0.35);
  outline-offset: 2px;
}
.plan-cta .elementor-button:focus,
.address-cta .elementor-button:focus,
.con-cta .elementor-button:focus { outline: none !important; box-shadow: none !important; }

@media (max-width: 1024px) {
  .plan-cta .elementor-button,
  .address-cta .elementor-button,
  .con-cta .elementor-button { --gap-to-text: 12px; }
}
@media (max-width: 767px) {
  .plan-cta .elementor-button,
  .address-cta .elementor-button,
  .con-cta .elementor-button { --gap-to-text: 6px; }
}

/* Varianter */
.plan-cta .elementor-button {
  color: #000 !important;  /* tekstfarve */
  background: #f5f5f5 !important;
  border-color: #f5f5f5 !important;
}
.plan-cta .elementor-button:hover {
  background: #efefef !important;
  border-color: #f5f5f5;
  color: #000;
}

.address-cta .elementor-button {
  color: #000 !important;  /* tekstfarve */
  background: #f5f5f5 !important;
  border-color: #f5f5f5 !important;
}
.address-cta .elementor-button:hover {
  background: #efefef !important;
  border-color: #f5f5f5;
  color: #000;
}

/* Brug Elementors globale accent – fallback til #3B301C */
.con-cta .elementor-button {
  color: #000;
  background: #0E412B !important;
  border-color: var(--e-global-color-accent, #0E412B) !important;
}
/* Simpel hover (let nedtoning) */
.con-cta .elementor-button:hover { opacity: 0.92; color: #000; }

/* ========== Post-overlay CTA – fixes ========== */

/* Desktop/Tablet: hold linje- og baseline-align ens med de andre knapper */
.con-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  vertical-align: middle;     /* vigtig ift. søskende inline-knapper */
  min-height: 45px;           /* match dine andre knappers højde */
  line-height: 1;             /* undgå baseline-drift */
}

/* Mobil: perfekt centreret “accent-ring” + hvid kerne */
@media (max-width: 767.98px){
  .con-cta{
    width: var(--cta-size, 46px);
    height: var(--cta-size, 46px);
    padding: 0 !important;
    gap: 0 !important;              /* nulstil fra desktop */
    border-radius: 50%;
    background: var(--cta-accent, #0E412B);
    border: none;
    display: grid;                  /* stabil centering */
    place-items: center;
    box-sizing: border-box;
    overflow: hidden;               /* klip evt. wrapper-artefakter */
  }

  /* Sørg for at Elementor wrapperen ikke “skubber” højre side */
  .con-cta > .elementor-button-content-wrapper{
    width: 100%;
    height: 100%;
    padding: 0 !important;
    margin: 0 !important;
    display: grid;
    place-items: center;
    box-sizing: border-box;
  }
  .con-cta .elementor-button-icon{ margin:0 !important; }

  /* Hvid kerne + accent-ring (symmetrisk) */
  .con-cta::after{
    content: "";
    position: absolute;
    inset: var(--cta-ring, 2.5px);
    background: #fff;
    border-radius: 50%;
    pointer-events: none;
  }

  /* Ikon over kernen; farve = accent */
  .con-cta svg,
  .con-cta .cta-icon{
    position: relative;
    z-index: 1;
    width: var(--cta-icon, 22px);
    height: var(--cta-icon, 22px);
    fill: currentColor;
    color: var(--cta-accent, #0E412B);
  }

  /* Skjul tekst visuelt men bevar a11y */
  .con-cta .elementor-button-text,
  .con-cta .cta-text{
    position: absolute !important;
    width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0 0 0 0); clip-path: inset(50%);
    white-space: nowrap; border:0;
  }
}


/* Luk-knap med ikon før teksten + 90° rotation på hover */
.lukknap .elementor-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-left: 13px !important; /* plads til ikon (7px) + 6px mellemrum */
}
.lukknap .elementor-button::before {
  content: "";
  display: inline-block;
  inline-size: 7px;   /* ikonbredde */
  block-size: 7px;    /* ikonhøjde */
  margin-right: 6px;  /* afstand til tekst */
  -webkit-mask-image: var(--ibo-icon-close);
          mask-image: var(--ibo-icon-close);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center;  mask-position: center;
  -webkit-mask-size: contain;     mask-size: contain;
  background-color: currentColor; /* ikon følger tekstfarven */
  transition: transform .25s ease;
}
.lukknap .elementor-button:hover::before { transform: rotate(90deg); }
.lukknap .elementor-button:focus,
.lukknap .elementor-button:active { outline: none !important; box-shadow: none !important; }
.lukknap .elementor-button:focus-visible { outline: none !important; box-shadow: none !important; }
.lukknap .elementor-button { -webkit-tap-highlight-color: transparent; }

/* =========================================
   Elementor Lightbox layering (over egen loader)
   ========================================= */
.elementor-lightbox { z-index: 999999 !important; }
/* Undgå at evt. plugin-loader lægger sig over lightboxen */
.elementor-lightbox ~ .ibo-overlay-loader,
.elementor-lightbox .ibo-overlay-loader { display: none !important; }

/* =========================================================
   STATUS-PILL (shortcode)
   ========================================================= */
.ibo-status-label-pill{
  display:inline-flex; align-items:center; gap:7px; border-radius:999px; 
  padding:6px 12px; 
  font-size:11px;
  background:var(--ibo-bg-gray); 
  font-weight:400; letter-spacing:.01em; line-height:1;
  min-height: 30px;
}
.ibo-status-label-circle{ width:12px; height:12px; border-radius:50%; display:inline-block; flex-shrink:0; }
.ibo-status-label-text{ display:inline-block; vertical-align:middle; }

/* Kompakt status-pill */
.ibo-status-pill {
  display: inline-flex;
  align-items: center;
  gap: .4em;                     /* hvis du viser en farvedot + tekst */
  padding: 4px 10px;             /* <- genskabt ‘luft’ */
  border-radius: 9999px;
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
  background: #F2F2F2;           /* justér hvis du farver via status */
  color: #111;
  border: 1px solid rgba(0,0,0,.08);
}

/* Lille farve-dot inde i pill (valgfri, hvis du bruger den) */
.ibo-status-pill .ibo-status-dot {
  inline-size: 8px;
  block-size: 8px;
  border-radius: 50%;
  background: currentColor;
}

/* =========================================================
   HOVERBOKS
   ========================================================= */
#ibo-hoverbox {
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 2px 16px rgba(0,0,0,.12);
  padding: 6px 6px 6px 6px;   
  max-width: 240px;
  pointer-events: none;
  transition: opacity .15s;
  z-index: 99999;
}

#ibo-hoverbox .ibo-hoverbox{
  padding: 6px 6px 6px 6px;   
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 2px 16px rgba(0,0,0,.12);
  white-space: nowrap;         
  display: inline-block;
}

/* Øverste tekst */
#ibo-hoverbox .info-tekst {
  font-size:16px;
  color:#000;
  font-weight:400;
  line-height:1.25;
  white-space:nowrap;
    margin:0;
}

/* Tabel: slå ALT fra som kan skabe “hairlines” */
#ibo-hoverbox table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  background: transparent !important;
  margin: 0 !important;           /* <-- ingen ekstra bundmargen */
}
/* Fjern rammer/outline/box-shadow på alle tabel-elem. */
#ibo-hoverbox thead,
#ibo-hoverbox tbody,
#ibo-hoverbox tr,
#ibo-hoverbox th,
#ibo-hoverbox td {
  border: 0 !important;
  border-top: 0 !important;
  border-left: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background-image: none !important; /* nogle temaer bruger gradient-linjer */
}

/* Nulstil evt. pseudo-linjer fra temaer */
#ibo-hoverbox thead::before,
#ibo-hoverbox thead::after,
#ibo-hoverbox tbody::before,
#ibo-hoverbox tbody::after,
#ibo-hoverbox tr::before,
#ibo-hoverbox tr::after,
#ibo-hoverbox th::before,
#ibo-hoverbox th::after,
#ibo-hoverbox td::before,
#ibo-hoverbox td::after {
  content: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Celler */
#ibo-hoverbox th,
#ibo-hoverbox td {
  padding: 6px 10px;
  vertical-align: middle;
}

/* Sidste række: giv den “bund-placering” = 6px */
#ibo-hoverbox tbody tr:last-child > th,
#ibo-hoverbox tbody tr:last-child > td {
  padding-bottom: 6px !important; /* <-- matcher toppen */
}

/* Zebrastriber – rene flader, ingen borders */
#ibo-hoverbox tbody tr:nth-child(odd)  { background: #f4f4f4 !important; }
#ibo-hoverbox tbody tr:nth-child(even) { background: #ffffff !important; }

/* Labels/values i celler */
#ibo-hoverbox .ibo-hoverbox-label { font-weight: 500; color: #555; }
#ibo-hoverbox .ibo-hoverbox-value { color: #222; text-align: right; }

/* Ekstra sikring mod venstre/top “hårde” linjer */
#ibo-hoverbox tbody tr:first-child > th,
#ibo-hoverbox tbody tr:first-child > td {
  border-top: 0 !important;
}
#ibo-hoverbox tr > th:first-child,
#ibo-hoverbox tr > td:first-child {
  border-left: 0 !important;
}

/* =========================================================
   IBO EXT LABELS (flydende ekstern label ved polygoner)
   ========================================================= */

/* Ekstern, flydende label – shrink-to-fit */
#ibo-label-float.ibo-ext-label {
  display: inline-block;
  width: auto !important;
  min-width: 0 !important;         /* ingen tvungen min-bredde */
  max-width: none !important;
  white-space: nowrap;  /* én linje */
  box-sizing: border-box;

  /* styling */
  background: #fff;
  color: #111;
  border-radius: 6px;
  padding: 7px;
  border: 0;
  outline: 0;
  box-shadow: 0 6px 20px rgba(0,0,0,.12), 0 2px 6px rgba(0,0,0,.08);
  pointer-events: none;
  z-index: 99998; /* position:fixed sættes i JS */
}

/* Hvis et tema et sted har sat .ibo-label { min-width:220px; } med !important,
   kan du slå det helt ned sådan her: */
#ibo-label-float.ibo-ext-label {
  min-inline-size: 0 !important;
  min-width: 0 !important;
  width: auto !important;
}

/* =========================================================
  CSS-sikring mod overlay - ved oversigt navigation med polygoner
   ========================================================= */
/* Forhindr sektion-link overlays i at fange klik over selve kortet */
.ibo-frontend-wrapper .elementor-clickable,
.ibo-frontend-wrapper [data-elementor-open-lightbox],
.ibo-frontend-wrapper [data-elementor-link] {
  pointer-events: none;
}
.ibo-frontend-wrapper .ibo-frontend-svg,
.ibo-frontend-wrapper .ibo-frontend-svg * {
  pointer-events: auto;
}
