/* Calundan widgets — intentionally minimal; the theme/Elementor styling
   carries most of the look. These rules cover layout the widgets need. */

/* Columns are driven entirely by the Boliggrid widget's responsive "Kolonner"
   control, which writes --calundan-cols per device (default 3 / 2 / 1). No
   hard-coded breakpoints here, so the editor stays the single source of truth. */
.calundan-grid__items {
    display: grid;
    grid-template-columns: repeat(var(--calundan-cols, 3), minmax(0, 1fr));
    gap: 24px;
}

.calundan-grid.is-loading { opacity: .5; transition: opacity .15s ease; }
.calundan-grid__empty { padding: 32px; text-align: center; color: #777; }

/* Carousel mode — horizontal scroll-snap track + arrows, server-rendered cards. */
.calundan-grid--carousel { position: relative; }
.calundan-grid--carousel .calundan-grid__items {
    display: flex;
    grid-template-columns: none;
    overflow-x: auto;
    /* proximity (not mandatory): when the last card can't fill the row, mandatory
       snapping forces it to the left edge and exposes a blank gap — proximity lets
       the track rest right-aligned against the cards instead. */
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.calundan-grid--carousel .calundan-grid__items::-webkit-scrollbar { display: none; }
.calundan-grid--carousel .calundan-card {
    flex: 0 0 calc((100% - (var(--calundan-cols, 3) - 1) * 24px) / var(--calundan-cols, 3));
    scroll-snap-align: start;
}
/* Dark-gray square arrows above the carousel, top-right (matches live's
   jet-listing-grid__slider-icon). The two-class selector already outranks the
   theme's <button> reset (pink border + teal bg) without !important, so the
   widget's "Karrusel-pile" controls can override it cleanly. */
.calundan-grid--carousel .calundan-grid__nav {
    position: absolute; top: -58px; bottom: auto; z-index: 3;
    width: 43px; height: 43px; padding: 0; margin: 0;
    background: #54595f; color: #fff;
    border: none; border-radius: 0;
    box-shadow: none; cursor: pointer;
    -webkit-appearance: none; appearance: none;
    font-size: 20px; line-height: 43px; text-align: center;
}
.calundan-grid--carousel .calundan-grid__nav:hover { background: #3f4347; color: #fff; }
.calundan-grid--carousel .calundan-grid__nav--prev { left: auto; right: 58px; }
.calundan-grid--carousel .calundan-grid__nav--next { left: auto; right: 10px; }
/* Greyed out at a track end, and the hover darkening is suppressed there. */
.calundan-grid--carousel .calundan-grid__nav:disabled { opacity: .35; cursor: default; }
.calundan-grid--carousel .calundan-grid__nav:disabled:hover { background: #54595f; }
/* Nothing to scroll (cards fit the row): no arrows at all. */
.calundan-grid--no-scroll .calundan-grid__nav { display: none; }

/* Card — matches the original "Bolig" listing template 1:1. Rounded on all four
   corners (overflow clips the image to the top radius); radius/border are
   overridable from the Boliggrid widget's "Kort" Style controls. */
.calundan-card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
}
.calundan-card__link { display: block; color: inherit; text-decoration: none; }
.calundan-card__media { position: relative; aspect-ratio: 448 / 260; overflow: hidden; }
.calundan-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.calundan-card__badges {
    position: absolute; top: 0; left: 0;
    display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
}
/* Investment badge stack — pinned top-right instead of top-left. */
.calundan-card__badges--right {
    left: auto; right: 0; align-items: flex-end;
}
.calundan-card__badge {
    background: var(--e-global-color-primary, #35857c); color: #fff;
    font: 400 15px/1.4 Roboto, sans-serif;
    padding: 5px 15px;
}
/* Open-house and investment badges — distinct default colours; all variants are
   overridable from the Boliggrid widget's "Badge" Style controls. */
.calundan-card__badge--openhouse { background: #CE9017; }
.calundan-card__badge--solgt { background: var(--e-global-color-primary, #35857c); }
.calundan-card__badge--investering { background: #2c5f8a; }

.calundan-card__body { padding: 15px 15px 20px; }
.calundan-card__title {
    margin: 0 0 2px; color: #54595f; font: 600 18px/1.4 Roboto, sans-serif;
}
.calundan-card__meta {
    margin: 0 0 2px; color: #54595f; font: 400 16px/1.4 Roboto, sans-serif;
}
.calundan-card__facts { list-style: none; margin: 14px 0 0; padding: 0; }
.calundan-card__fact {
    display: flex; justify-content: space-between; align-items: center;
    padding-bottom: 8px; margin-bottom: 8px;
    border-bottom: 1px solid rgba(122, 122, 122, .12);
}
.calundan-card__fact:last-child { margin-bottom: 0; }
.calundan-card__fact-left { display: flex; align-items: center; gap: 9px; }
/* Fact icon wrapper — holds either a curated inline SVG or an Elementor icon
   (<i> font glyph or <svg>). Colour cascades via currentColor so one control
   styles both. */
.calundan-card__icon { flex: none; display: inline-flex; align-items: center; color: var(--e-global-color-primary, #35857c); line-height: 1; }
.calundan-card__icon svg { width: 17px; height: 17px; fill: currentColor; }
.calundan-card__icon i { font-size: 17px; color: inherit; }
.calundan-card__fact-label { color: var(--e-global-color-primary, #35857c); font: 400 15px/1.4 Roboto, sans-serif; }
.calundan-card__fact-value { color: var(--e-global-color-primary, #35857c); font: 400 16px/1.4 Roboto, sans-serif; text-align: right; }

/* Filters */
.calundan-filter { margin-bottom: 20px; }
.calundan-filter__label {
    display: block; color: #333; font: 600 15px/1.4 Roboto, sans-serif; margin-bottom: 14px;
}
.calundan-filter__readout {
    text-align: center; color: #333; font: 400 16px/1.4 Roboto, sans-serif; margin-top: 12px;
}
.calundan-filter__options { list-style: none; margin: 0; padding: 0; }
.calundan-filter__options li { margin: 4px 0; }
.calundan-filter__options em { color: #999; font-style: normal; }

/* Sort dropdown ("Sortér"). */
.calundan-filter--sort { display: flex; flex-direction: column; gap: 6px; }
.calundan-filter__label { color: #54595f; font: 400 15px/1.4 Roboto, sans-serif; }
.calundan-filter__select {
    width: 100%; padding: 10px 14px;
    border: 1px solid #d5d8dc; border-radius: 4px;
    background: #fff; color: #54595f;
    font: 400 15px/1.4 Roboto, sans-serif; cursor: pointer;
}

/* jQuery UI range slider styled to match the original (WP bundles the JS only). */
.calundan-filter__slider {
    position: relative; margin: 4px 9px; height: 4px;
    background: #d9d9d9; border-radius: 2px;
    /* let the touch bridge drive the handles instead of the browser scrolling */
    touch-action: none;
}
.calundan-filter__slider .ui-slider-range { position: absolute; height: 100%; background: var(--e-global-color-primary, #35857c); border-radius: 2px; }
.calundan-filter__slider .ui-slider-handle {
    position: absolute; top: 50%; width: 18px; height: 18px; margin-left: -9px;
    transform: translateY(-50%); background: var(--e-global-color-primary, #35857c); border: none;
    border-radius: 50%; cursor: pointer; outline: none;
    touch-action: none;
}

/* Pagination — borderless, centred, matching the original: gold page links,
   a navy bold current page, and "Forrige/Næste" text navigation. Colours/gap
   are overridable from the widget's "Paginering" Style controls. */
.calundan-pagination {
    display: flex; justify-content: center; align-items: center;
    gap: 20px; flex-wrap: wrap; margin-top: 32px;
}
.calundan-page {
    text-decoration: none; color: #b08f64;
    font: 400 16px/1 Roboto, sans-serif;
    transition: color .15s ease;
}
.calundan-page:hover { color: #9a7b54; }
.calundan-page.is-current { color: #1b2a4a; font-weight: 700; pointer-events: none; }
.calundan-page--nav { color: #b08f64; }
.calundan-page.is-disabled { opacity: .4; pointer-events: none; }

/* Dynamic field / terms / link / repeater */
.calundan-terms a { text-decoration: none; }
.calundan-repeater__item { margin: 2px 0; }
.calundan-dynamic-link {
    display: inline-block; padding: 8px 18px; background: #266478; color: #fff;
    border-radius: 4px; text-decoration: none;
}

/* Team member */
.calundan-team { text-align: center; background: #fff; padding: 31px; border-radius: 8px; }
.calundan-team__photo img {
    width: 250px; height: 250px; max-width: 100%;
    object-fit: cover; border-radius: 50%; display: inline-block;
}
.calundan-team__name { margin: 16px 0 4px; }
.calundan-team__position { color: #666; margin: 0 0 12px; }
.calundan-team__socials { list-style: none; margin: 12px 0; padding: 0; }
.calundan-team__socials a { text-decoration: none; }
.calundan-team__button {
    display: inline-block; margin-top: 12px; padding: 10px 22px;
    background: #266478; color: #fff; border-radius: 4px; text-decoration: none;
}

/* Multi-select dropdown filter (boligtype / by) */
.calundan-filter--dropdown { position: relative; }
.calundan-dropdown__toggle {
    width: 100%; min-width: 200px; box-sizing: border-box;
    display: inline-flex; align-items: center; justify-content: flex-start;
    padding: 12px 18px; border: 1px solid #d9d9d9; border-radius: 8px;
    background: #fff; color: #333; cursor: pointer;
    font: 400 16px/1.4 Roboto, sans-serif; text-align: left;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease;
}
.calundan-dropdown__toggle:hover { border-color: #266478; }
.calundan-dropdown__toggle:focus-visible {
    outline: none; border-color: #266478; box-shadow: 0 0 0 3px rgba(38, 100, 120, .15);
}
.calundan-filter--dropdown.is-open .calundan-dropdown__toggle {
    border-color: #266478; box-shadow: 0 0 0 3px rgba(38, 100, 120, .12);
}
/* Fill the button so the label sits left and the caret is pushed to the right
   edge (matches the original select look). The scoped !important defeats the
   theme's centred <button> styling, which otherwise loads after this file. */
.calundan-filter--dropdown .calundan-dropdown__toggle {
    display: flex !important;
    justify-content: space-between !important;
    text-align: left !important;
}
.calundan-dropdown__text { flex: 1 1 auto; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* A clean down-chevron drawn from two borders; inline-block + centred origin so
   it stays an arrow (not a stray line) regardless of theme resets. */
.calundan-dropdown__caret {
    flex: 0 0 auto; display: inline-block; box-sizing: border-box;
    margin-left: auto; /* pin arrow to the right edge; the gap control overrides this */
    width: 9px; height: 9px; position: relative; top: -2px;
    border: solid #777; border-width: 0 2px 2px 0;
    transform: rotate(45deg); transform-origin: center;
    transition: transform .2s ease, border-color .15s ease;
}
.calundan-filter--dropdown.is-open .calundan-dropdown__caret { transform: rotate(-135deg); top: 2px; }
.calundan-dropdown__panel {
    position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px);
    background: #fff; border: 1px solid #e3e3e3; border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .12);
    max-height: 300px; overflow-y: auto; padding: 10px 14px; display: none;
}
.calundan-filter--dropdown.is-open .calundan-dropdown__panel {
    display: block; animation: calundan-dropdown-in .14s ease;
}
@keyframes calundan-dropdown-in {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
.calundan-dropdown__panel .calundan-filter__options li { margin: 2px 0; }
.calundan-dropdown__panel label {
    display: flex; align-items: center; gap: 10px; cursor: pointer;
    padding: 7px 8px; border-radius: 6px; transition: background-color .12s ease;
}
.calundan-dropdown__panel label:hover { background: #f4f7f8; }
.calundan-dropdown__panel input[type="checkbox"] {
    accent-color: #266478; width: 16px; height: 16px; flex: none; cursor: pointer;
}

/* Search filter */
.calundan-filter__search {
    width: 100%; box-sizing: border-box;
    padding: 12px 16px; border: 1px solid #d9d9d9; border-radius: 4px;
    font: 400 16px/1.4 Roboto, sans-serif;
}

/* Apply / remove buttons. Prefixing with `button` lifts specificity above the
   theme's `[type=button]` reset (pink border + teal/pink bg), which loads after
   this file — so the defaults hold AND the theme can't bleed into properties the
   user hasn't styled. Elementor's per-instance controls (far higher specificity)
   still override these freely. */
button.calundan-filter__apply,
button.calundan-filter__remove {
    display: inline-block; cursor: pointer;
    padding: 12px 26px; border: none; border-radius: 4px;
    -webkit-appearance: none; appearance: none;
    font: 600 15px/1.4 Roboto, sans-serif;
    transition: background-color .15s ease, color .15s ease;
}
button.calundan-filter__apply { background: #b08f64; color: #fff; }
button.calundan-filter__apply:hover { background: #9a7b54; color: #fff; }
button.calundan-filter__remove { background: transparent; color: #266478; text-decoration: underline; padding-left: 0; padding-right: 0; }
button.calundan-filter__remove:hover { background: transparent; color: #1d4f5e; }

/* Slider (gallery / image) */
.calundan-slider { position: relative; }
.calundan-slider__main { position: relative; overflow: hidden; }
.calundan-slider__track {
    display: flex; gap: 8px;
    overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.calundan-slider__track::-webkit-scrollbar { display: none; }
/* A fixed aspect gives every slide the same height so object-fit:cover actually
   crops (gallery images have mixed ratios); without it portrait shots blow the
   slide up and the viewport scrolls. The "Slider → Højde" control overrides it. */
.calundan-slider__slide {
    flex: 0 0 100%; margin: 0; scroll-snap-align: start; position: relative;
    aspect-ratio: 2 / 1; overflow: hidden;
}
/* Plain slider: fill the slide, cropping from the centre (not the top). The
   gallery slider instead shows the whole image (e.g. floor plans), still centred.
   height:100% needs !important to beat Elementor's `.elementor img{height:auto}`
   (higher specificity) — otherwise the image keeps its natural height, the slide's
   "Højde" control has no effect, and object-fit/position never kick in. */
.calundan-slider__img { width: 100%; height: 100% !important; object-fit: cover !important; object-position: center center !important; display: block; }
.calundan-slider--gallery .calundan-slider__img { object-fit: contain !important; }
.calundan-slider__caption {
    position: absolute; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, .45); color: #fff; padding: 8px 14px;
    font: 400 14px/1.4 Roboto, sans-serif;
}
/* Round gold arrows (matches live). !important + scoping beats the theme's
   reset.css <button> styling (border:1px solid #c36 + accent bg), which loads
   after this file. The Elementor "Pile" controls (also !important) still win. */
.calundan-slider .calundan-slider__nav {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
    width: 44px; height: 44px; margin: 0; padding: 0; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    -webkit-appearance: none; appearance: none;
    border: none !important; border-radius: 50% !important;
    background: #b08f64 !important; color: #fff !important;
    font-size: 24px; line-height: 1; text-align: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .15); transition: background .15s ease, color .15s ease;
}
.calundan-slider .calundan-slider__nav:hover { background: #9a7b54 !important; color: #fff !important; }
.calundan-slider__nav--prev { left: 12px; }
.calundan-slider__nav--next { right: 12px; }

/* Slider — fullscreen trigger (specificity beats theme button styling) */
.calundan-slider .calundan-slider__fs {
    position: absolute; top: 12px; right: 12px; z-index: 4;
    width: 40px; height: 40px; margin: 0; padding: 0; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    border: none !important; border-radius: 50% !important;
    background: rgba(0, 0, 0, .55) !important; color: #fff;
    box-shadow: none; -webkit-appearance: none; appearance: none;
    transition: background .15s ease;
}
.calundan-slider .calundan-slider__fs:hover { background: rgba(0, 0, 0, .8) !important; }
.calundan-slider .calundan-slider__fs,
.calundan-slider .calundan-slider__fs i { color: #fff; font-size: 18px; }
.calundan-slider .calundan-slider__fs svg,
.calundan-slider .calundan-slider__fs svg path { width: 18px; height: 18px; fill: #fff; }
.calundan-slider__fs-default { font-size: 20px; line-height: 1; color: #fff; }

/* Slider — thumbnail strip */
.calundan-slider__thumbs {
    display: flex; gap: 6px; margin-top: 8px;
    overflow-x: auto; scrollbar-width: none;
}
.calundan-slider__thumbs::-webkit-scrollbar { display: none; }
/* High specificity + appearance:none so theme <button> borders never bleed in. */
.calundan-slider__thumbs .calundan-slider__thumb {
    flex: 0 0 auto; margin: 0; padding: 0; border-radius: 4px;
    border: 2px solid transparent !important;
    background: none !important; box-shadow: none; outline: none; -webkit-appearance: none; appearance: none;
    cursor: pointer; overflow: hidden; line-height: 0;
    opacity: .55; transition: opacity .15s ease, border-color .15s ease;
}
.calundan-slider__thumb img { display: block; width: 88px; height: 60px; object-fit: cover; }
.calundan-slider__thumbs .calundan-slider__thumb:hover { opacity: 1; }
.calundan-slider__thumbs .calundan-slider__thumb.is-active { opacity: 1; border-color: #b08f64 !important; }

/* Slider — fullscreen lightbox */
.calundan-lightbox {
    position: fixed; inset: 0; z-index: 99999;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 16px; padding: 56px 20px 24px; background: rgba(0, 0, 0, .9);
}
.calundan-lightbox[hidden] { display: none; }
.calundan-lightbox__stage {
    margin: 0; display: flex; flex-direction: column; align-items: center;
    max-width: 92vw; max-height: 72vh;
}
.calundan-lightbox__img { max-width: 92vw; max-height: 72vh; object-fit: contain; display: block; }
.calundan-lightbox__caption {
    color: #fff; margin-top: 10px; text-align: center;
    font: 400 14px/1.4 Roboto, sans-serif;
}
.calundan-lightbox .calundan-lightbox__close {
    position: absolute; top: 14px; right: 20px; width: 44px; height: 44px;
    border: none !important; background: none !important; color: #fff; font-size: 34px; line-height: 1; cursor: pointer;
    -webkit-appearance: none; appearance: none;
}
.calundan-lightbox .calundan-lightbox__nav {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
    width: 54px; height: 54px; padding: 0; cursor: pointer;
    border: none !important; border-radius: 50% !important;
    background: rgba(255, 255, 255, .12) !important; color: #fff; font-size: 30px;
    -webkit-appearance: none; appearance: none; transition: background .15s ease;
}
.calundan-lightbox .calundan-lightbox__nav:hover { background: rgba(255, 255, 255, .28) !important; }
.calundan-lightbox__nav--prev { left: 20px; }
.calundan-lightbox__nav--next { right: 20px; }
.calundan-lightbox__thumbs {
    display: flex; gap: 8px; max-width: 92vw; overflow-x: auto; padding-bottom: 4px;
}
.calundan-lightbox .calundan-lightbox__thumb {
    flex: 0 0 auto; padding: 0; border-radius: 4px;
    border: 2px solid transparent !important; background: none !important;
    cursor: pointer; overflow: hidden; line-height: 0; opacity: .55;
    -webkit-appearance: none; appearance: none;
    transition: opacity .15s ease, border-color .15s ease;
}
.calundan-lightbox__thumb img { display: block; width: 80px; height: 56px; object-fit: cover; }
.calundan-lightbox__thumb:hover { opacity: 1; }
.calundan-lightbox .calundan-lightbox__thumb.is-active { opacity: 1; border-color: #fff !important; }

/* Badges */
.calundan-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.calundan-badges--stacked { flex-direction: column; align-items: flex-start; }
.calundan-badges--inline { flex-direction: row; align-items: center; }
.calundan-badge {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 12px; border-radius: 4px;
    background: #266478; color: #fff;
    font: 600 13px/1.4 Roboto, sans-serif;
}
.calundan-badge__icon { display: inline-flex; align-items: center; justify-content: center; }
.calundan-badge i { font-size: 1em; }
.calundan-badge svg { width: 1em; height: 1em; fill: currentcolor; }

/* Map — always has a height (Google Maps needs one or it renders 0px tall). The
   widget's "Højde" control overrides the 400px default via --calundan-map-h. */
.calundan-map { width: 100%; height: var(--calundan-map-h, 400px); overflow: hidden; }
/* Fallback box shown when the Google Maps API key is missing — styling lives
   here rather than inline; height comes from the widget's "Højde" control. */
.calundan-map--no-key {
    min-height: 200px;
    display: flex; align-items: center; justify-content: center;
    background: #f3f3f3; color: #888;
}

/* Pin popup card — the Boliggrid card rendered inside a Google InfoWindow.
   Width / max-height are overridable per widget (the "Pin-popup" style controls);
   these are just sensible defaults. The card's own link/shadow are toned down so
   it sits cleanly in the small popup. */
.calundan-map__popup { width: 260px; max-width: 80vw; }
.calundan-map__popup .calundan-card { box-shadow: none; border: 0; }

/* Bolig data (key/value fact list) */
.bolig-data-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 10px;
}
.bolig-data-item {
    display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
    border-bottom: 1px solid transparent; padding-bottom: 5px;
}
.bolig-data-left { display: flex; align-items: center; }
.bolig-data-icon { display: inline-flex; align-items: center; justify-content: center; margin-right: 10px; }
.bolig-data-label { font-weight: bold; }
.bolig-data-right { text-align: right; }

/* ACF Repeater list */
.drl-list-container { display: grid; gap: 15px; }
.drl-item { display: flex; align-items: center; }
.drl-item.icon-before { flex-direction: row; }
.drl-item.icon-after { flex-direction: row; justify-content: space-between; }
.drl-item-content { flex: 1; }
.drl-icon { display: inline-flex; align-items: center; justify-content: center; }
.drl-notice {
    padding: 15px; background: #f8f9fa; border: 1px dashed #ccc; color: #666;
    font-style: italic; grid-column: 1 / -1; text-align: center;
}

/* Download list (energimærke m.m.) */
.cdl-list { display: grid; gap: 12px; }
.cdl-item {
    display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px;
    padding: 12px 16px; border: 1px solid #e3e3e3; border-radius: 6px; background: #fff;
}
.cdl-label { font-weight: 600; flex: 1 1 200px; min-width: 0; overflow-wrap: break-word; }
.cdl-button {
    display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto;
    padding: 8px 16px; border-radius: 4px; text-decoration: none; line-height: 1.2;
    background: #052743; color: #fff; transition: background-color .2s ease, color .2s ease;
}
.cdl-button:hover { background: #0a3a5e; color: #fff; }
.cdl-button-icon { display: inline-flex; align-items: center; }
.cdl-button-icon svg { width: 1em; height: 1em; fill: currentcolor; }
.cdl-notice {
    padding: 15px; background: #f8f9fa; border: 1px dashed #ccc; color: #666;
    font-style: italic; text-align: center; grid-column: 1 / -1;
}

/* Focus state — the customer theme's <button>/<input> reset paints a pink
   :focus affordance (border + box-shadow glow + outline) that bleeds onto every
   widget control when clicked/tabbed. Kill it across all interactive widget
   elements; the dropdown toggle keeps its own teal focus ring (defined above). */
.calundan-grid__nav:focus, .calundan-grid__nav:focus-visible,
.calundan-slider__nav:focus, .calundan-slider__nav:focus-visible,
.calundan-slider__fs:focus, .calundan-slider__fs:focus-visible,
.calundan-slider__thumb:focus, .calundan-slider__thumb:focus-visible,
.calundan-lightbox__close:focus, .calundan-lightbox__close:focus-visible,
.calundan-lightbox__nav:focus, .calundan-lightbox__nav:focus-visible,
.calundan-lightbox__thumb:focus, .calundan-lightbox__thumb:focus-visible,
button.calundan-filter__apply:focus, button.calundan-filter__apply:focus-visible,
button.calundan-filter__remove:focus, button.calundan-filter__remove:focus-visible {
    outline: none !important;
    box-shadow: none !important;
    border-color: transparent !important;
}
/* Text-entry filters keep a visible border, so give them a neutral teal focus
   instead of the theme's pink (matches the dropdown toggle). */
.calundan-filter__search:focus,
.calundan-filter__select:focus {
    outline: none;
    border-color: #266478;
    box-shadow: 0 0 0 3px rgba(38, 100, 120, .15);
}

/* Medarbejderkort (employee card) */
.mkort-wrapper { display: flex; gap: 20px; align-items: center; }
.mkort-wrapper.position-left { flex-direction: row; }
.mkort-wrapper.position-right { flex-direction: row-reverse; }
.mkort-wrapper.position-top { flex-direction: column; align-items: flex-start; }
.mkort-wrapper.position-bottom { flex-direction: column-reverse; align-items: flex-start; }
.mkort-wrapper.position-top .mkort-content,
.mkort-wrapper.position-bottom .mkort-content { width: 100%; }
.mkort-image img { max-width: 100%; height: auto; display: block; object-fit: cover; }
.mkort-content { display: flex; flex-direction: column; justify-content: center; gap: 8px; flex: 1; }
.mkort-name { font-size: 1.2em; font-weight: bold; }
.mkort-title { font-size: 1em; opacity: .9; }
.mkort-contact-item a { display: inline-flex; align-items: center; text-decoration: none; transition: color .3s ease; }
.mkort-icon { display: inline-flex; align-items: center; justify-content: center; transition: inherit; }
.mkort-notice {
    padding: 20px; background: #f8f9fa; border: 1px dashed #ccc;
    text-align: center; font-style: italic; color: #666;
}
