/* =============================================================
   Galleri (hel side) — .galleri-graesmarken
   Billedgrid (delt .grid/.grid--N auto-fit) + fuldskærms-lightbox som native
   <dialog> (showModal = top layer, fokus-fælde og Esc fra browseren).

   Grid-billeder: aspect-token pr. valgt format, per-hjørne --radius-lg
   (Elementor-værnet, design-stil §2.1/2.4), kort-løftet på hover. Lightbox:
   grøn-tonet scrim (--color-overlay-strong + blur, design-stil §5.1) og
   overlayet "falder ned fra toppen" (§6). Pile/luk genbruger bolig-singles
   cirkel-knap-opskrift. Kun :root-tokens; 0 !important; BEM med -suffix.
   ============================================================= */

.galleri-graesmarken {
    padding-block: var(--section-spacing);
}


/* ---- Grid ---- */

.galleri-graesmarken__grid {
    list-style: none;
    margin: 0;
    padding: 0;
}
.galleri-graesmarken__item {
    margin: 0;       /* nulstil base 'li + li'-margin */
}

.galleri-graesmarken__link {
    display: block;
    position: relative;
    overflow: hidden;
    border-top-left-radius: var(--radius-tl-lg);
    border-top-right-radius: var(--radius-tr-lg);
    border-bottom-right-radius: var(--radius-br-lg);
    border-bottom-left-radius: var(--radius-bl-lg);
    box-shadow: var(--shadow-sm);
    transition: transform var(--dur-base) var(--ease-out),
                box-shadow var(--dur-base) var(--ease-out);
}
.galleri-graesmarken__link:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
.galleri-graesmarken__link:focus-visible {
    outline: var(--focus-ring);
    outline-offset: var(--focus-ring-offset);
}

.galleri-graesmarken__link img {
    display: block;
    width: 100%;
    aspect-ratio: var(--aspect-square);
    object-fit: cover;
}

/* Billedformat-valg (thumb_ratio-controllen) — aspect-tokens pr. modifier. */
.galleri-graesmarken__grid--ratio-card .galleri-graesmarken__link img {
    aspect-ratio: var(--aspect-card);
}
.galleri-graesmarken__grid--ratio-photo .galleri-graesmarken__link img {
    aspect-ratio: var(--aspect-photo);
}
.galleri-graesmarken__grid--ratio-portrait .galleri-graesmarken__link img {
    aspect-ratio: var(--aspect-portrait);
}

/* ---- Masonry — CSS-kolonner med naturlige billedhøjder ----
   `columns: <min-bredde> <antal>` spejler .grid--N's auto-fit-adfærd: antallet
   er et LOFT, og browseren falder selv til færre kolonner på smalle skærme
   (samme min-bredder som .grid--2/3/4). Ingen JS; rækkefølgen løber lodret
   ned ad kolonnerne (klassisk masonry-læseretning). */
.galleri-graesmarken__grid--masonry {
    display: block;
    column-gap: var(--space-md);   /* samme luft som .grid's gap */
}
.galleri-graesmarken__grid--masonry-2 {
    columns: 16rem 2;
}
.galleri-graesmarken__grid--masonry-3 {
    columns: 14rem 3;
}
.galleri-graesmarken__grid--masonry-4 {
    columns: 11rem 4;
}
.galleri-graesmarken__grid--masonry .galleri-graesmarken__item {
    break-inside: avoid;
    margin-bottom: var(--space-md);
}
.galleri-graesmarken__grid--masonry .galleri-graesmarken__link img {
    aspect-ratio: auto;   /* naturlig højde — det ER masonry-udtrykket */
}


/* ---- Tom tilstand ---- */

.galleri-graesmarken__empty {
    margin: 0;
    color: var(--color-text-muted);
}


/* =============================================================
   Lightbox — native <dialog> i top layer
   ============================================================= */

.galleri-graesmarken__lightbox {
    border: 0;
    padding: 0;
    background: transparent;
    max-width: none;
    max-height: none;
    overflow: visible;
}

/* Grøn-tonet modal-scrim med diskret blur (design-stil §5.1 — aldrig sort). */
.galleri-graesmarken__lightbox::backdrop {
    background: var(--color-overlay-strong);
    backdrop-filter: blur(var(--blur-sm));
}

/* Overlayet falder blødt ned fra toppen når det åbner (design-stil §6). */
.galleri-graesmarken__lightbox[open] {
    animation: galleri-graesmarken-drop var(--dur-slow) var(--ease-out);
}
@keyframes galleri-graesmarken-drop {
    from {
        opacity: 0;
        transform: translateY(-1rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.galleri-graesmarken__lightbox-figure {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-sm);
}

.galleri-graesmarken__lightbox-img {
    display: block;
    /* Luft til pile/luk-knapperne i kanterne af skærmen. */
    max-width: min(92vw, var(--container-wide-max));
    max-height: 80vh;
    width: auto;
    height: auto;
    border-top-left-radius: var(--radius-tl-lg);
    border-top-right-radius: var(--radius-tr-lg);
    border-bottom-right-radius: var(--radius-br-lg);
    border-bottom-left-radius: var(--radius-bl-lg);
    box-shadow: var(--shadow-lg);
}

/* Billedtekst + tæller står på scrimmen → paper-tekst med varm skygge. */
.galleri-graesmarken__lightbox-caption {
    margin: 0;
    max-width: var(--measure-tight);
    text-align: center;
    font-family: var(--font-body);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--color-paper);
    text-shadow: var(--shadow-text);
}

.galleri-graesmarken__lightbox-counter {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--fs-accent);
    font-weight: var(--fw-semibold);
    letter-spacing: var(--ls-accent);
    text-transform: uppercase;
    color: var(--color-paper);
    opacity: 0.85;
    text-shadow: var(--shadow-text);
}


/* ---- Pile + luk — cirkel-opskriften fra bolig-singles galleri-nav.
   position: fixed inde i dialogens top layer = forankret til skærmkanten. ---- */

.galleri-graesmarken__lightbox-nav,
.galleri-graesmarken__lightbox-close {
    position: fixed;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;    /* ≥44px tap-target */
    height: 2.75rem;
    padding: 0;
    border: var(--border-card);
    border-radius: var(--radius-full);
    background: var(--color-bg-card);
    color: var(--color-green-900);
    font-size: var(--fs-h3);
    line-height: 1;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
    transition: background-color var(--dur-base) var(--ease-out),
                color var(--dur-base) var(--ease-out);
}
.galleri-graesmarken__lightbox-nav--prev {
    left: var(--space-md);
    top: 50%;
    transform: translateY(-50%);
}
.galleri-graesmarken__lightbox-nav--next {
    right: var(--space-md);
    top: 50%;
    transform: translateY(-50%);
}
.galleri-graesmarken__lightbox-close {
    top: var(--space-md);
    right: var(--space-md);
}
.galleri-graesmarken__lightbox-nav:hover,
.galleri-graesmarken__lightbox-close:hover {
    background: var(--color-green-700);
    color: var(--color-paper);
}
.galleri-graesmarken__lightbox-nav:focus-visible,
.galleri-graesmarken__lightbox-close:focus-visible {
    outline: var(--focus-ring);
    outline-offset: var(--focus-ring-offset);
}
.galleri-graesmarken__lightbox-nav:disabled {
    opacity: 0.4;
    cursor: default;
    box-shadow: none;
}


/* =============================================================
   Reduced motion — intet løft, ingen falde-ind-animation
   ============================================================= */

@media (prefers-reduced-motion: reduce) {
    .galleri-graesmarken__link,
    .galleri-graesmarken__link:hover {
        transform: none;
        transition: none;
    }
    .galleri-graesmarken__lightbox[open] {
        animation: none;
    }
}
