/**
 * Explore page — entity chip filter row.
 *
 * Mirrors the mobile bottom-nav Explore pattern: 4 chips
 * [Temples / Gods / Festivals / Events] sit at the top of the page;
 * tapping one switches the API endpoint and re-renders the grid.
 *
 * Mythology + Events + Services were retired from the global left
 * nav 2026-04-29; their entity surfaces fold into chips here.
 */

@layer pages {

.dvl-explore-chips {
    display: flex;
    gap: var(--s-2);
    flex-wrap: wrap;
    padding: var(--s-3) var(--s-0);
    margin-bottom: var(--s-4);
    border-bottom: 1px solid var(--border-subtle);
}

.dvl-explore-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    padding: var(--s-2) var(--s-4);
    background: var(--bg-primary);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    color: var(--text-secondary);
    font: inherit;
    font-size: var(--t-body-md);
    font-weight: 500;
    cursor: pointer;
    transition: background var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast), transform var(--duration-fast);
}
.dvl-explore-chip .dvl-icon {
    width: 18px;
    height: 18px;
    color: currentColor;
}
.dvl-explore-chip:hover {
    border-color: var(--brand-primary);
    color: var(--brand-primary);
    background: var(--bg-light);
}
.dvl-explore-chip.is-active {
    background: linear-gradient(135deg, #FF7A1A 0%, #FF4D8B 100%);
    border-color: transparent;
    color: var(--text-inverse, #FFFFFF);
}
.dvl-explore-chip.is-active:hover {
    color: var(--text-inverse, #FFFFFF);
    transform: translateY(-1px);
}

@media (max-width: 599px) {
    .dvl-explore-chips {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: var(--s-3);
    }
    .dvl-explore-chip {
        flex: 0 0 auto;
        white-space: nowrap;
    }
}

/* ─── Posts chip — masonry grid + post tiles ─────────────────────
 *
 * `.gallery-grid--masonry` switches the same `#gallery-container` from
 * the auto-fill grid (used by entity / community chips) to a CSS
 * columns layout. `break-inside: avoid` on each tile keeps each post
 * intact across columns. Column count steps down on narrow viewports.
 *
 * Post tiles are `<button>` elements (a11y: keyboard-focusable,
 * reads as "Open post"). Hovering reveals a soft gradient overlay
 * with like / comment counts in IG-style.
 */
.gallery-grid.gallery-grid--masonry {
    display: block;
    /* 3 columns on wide screens — 4 felt cramped at standard
       desktop widths and made post text + media smaller than
       useful. Steps down to 2 + 1 on narrower viewports below. */
    column-count: 3;
    column-gap: var(--s-3);
    margin-top: 0;
    max-width: none;
}
.gallery-grid--masonry .post-tile {
    display: block;
    break-inside: avoid;
    margin: 0 0 var(--s-3) 0;
    padding: 0;
    border: 0;
    background: var(--surface-2, #F4ECE2);
    border-radius: var(--radius-md);
    overflow: hidden;
    cursor: pointer;
    width: 100%;
    position: relative;
    transition: transform var(--duration-fast) var(--ease-out, ease-out),
                box-shadow var(--duration-fast) var(--ease-out, ease-out);
}
.gallery-grid--masonry .post-tile:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
}
.post-tile__media {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}
.post-tile--text {
    aspect-ratio: 1 / 1;
    padding: var(--s-4);
    text-align: left;
    background: linear-gradient(135deg, #FFF1E5 0%, #FCE4E7 100%);
    color: var(--text-primary);
    font-family: var(--font-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}
.post-tile__text {
    font-size: var(--t-body-lg);
    line-height: 1.45;
    font-weight: 500;
}
.post-tile__overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: var(--s-2) var(--s-3);
    display: flex;
    gap: var(--s-3);
    align-items: center;
    color: #fff;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.55) 100%);
    opacity: 0;
    transition: opacity var(--duration-fast) var(--ease-out, ease-out);
    pointer-events: none;
}
.gallery-grid--masonry .post-tile:hover .post-tile__overlay,
.gallery-grid--masonry .post-tile:focus-visible .post-tile__overlay {
    opacity: 1;
}
.post-tile__metric {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--t-body);
    font-weight: 600;
}
.post-tile__metric svg {
    /* Override the inline `width="16" height="16"` on the rendered
       svg — the metrics overlay reads tiny at 16px against a 280px+
       wide tile. 20px lands in the 13-15% range of the tile width,
       matching IG's hover-overlay proportions. */
    flex-shrink: 0;
    width: 20px;
    height: 20px;
}

@media (max-width: 900px) {
    .gallery-grid.gallery-grid--masonry { column-count: 2; }
}
@media (max-width: 480px) {
    .gallery-grid.gallery-grid--masonry { column-count: 1; }
}

/* Post-viewer modal styles moved to static/css/components/post-viewer.css
 * — the modal is now a shared component used by both Explore and the
 * feed page's "N Comments" link. Auto-injected markup + JS lives in
 * static/js/post-viewer.js.
 */

}  /* @layer pages */
