/* Stedsside */

.place-hero {
    padding-top: var(--space-5);
}
.place-gallery {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--space-3);
    border-radius: var(--radius-lg);
    overflow: hidden;
    height: 460px;
}
.place-gallery__main { position: relative; overflow: hidden; background: var(--color-background-alt); }
.place-gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.place-gallery__side { display: grid; grid-template-rows: 1fr 1fr; gap: var(--space-3); }
.place-gallery__side button:only-child { grid-row: 1 / -1; }
.place-gallery--single { grid-template-columns: 1fr; }
.place-gallery__side img { width: 100%; height: 100%; object-fit: cover; cursor: pointer; background: var(--color-background-alt); transition: opacity var(--transition-fast); }
.place-gallery__side button { position: relative; padding: 0; border: none; overflow: hidden; }
.place-gallery__side button:hover img { opacity: 0.85; }
.place-gallery__more { position: absolute; inset: 0; background: rgba(10,10,12,0.5); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; }

.place-header {
    display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-5);
    padding-block: var(--space-5);
    flex-wrap: wrap;
}
.place-header .badges { display: flex; gap: var(--space-2); margin-bottom: var(--space-3); }
.place-header h1 { margin-bottom: var(--space-2); }
.place-header .location { display: flex; align-items: center; gap: var(--space-2); color: var(--color-text-muted); font-weight: 600; }
.place-header__actions { display: flex; gap: var(--space-3); flex-shrink: 0; }

.place-layout {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: var(--space-8);
    padding-bottom: var(--space-9);
    align-items: start;
}
/* Grid items default to min-width:auto (content-based), which lets a nested
   horizontal-scroll .card-row force the whole column wider than the
   viewport. min-width:0 lets the column shrink and the row scroll inside it. */
.place-main { min-width: 0; }

.place-section { padding-block: var(--space-6); border-bottom: 1px solid var(--color-border); }
.place-section:first-child { padding-top: 0; }
.place-section h2 { font-size: var(--fs-h3); margin-bottom: var(--space-4); }
.place-section .prose { color: var(--color-text); line-height: 1.75; }
.place-section .prose p { margin-bottom: var(--space-4); }

.info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-4); }
.info-item { display: flex; gap: var(--space-3); }
.info-item .icon-wrap {
    width: 40px; height: 40px; border-radius: 50%; background: var(--color-background-alt);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--color-accent-hover);
}
.info-item .label { font-size: var(--fs-caption); color: var(--color-text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.info-item .value { font-weight: 700; color: var(--color-ink); }

.hours-table { width: 100%; border-collapse: collapse; }
.hours-table td { padding: var(--space-2) 0; border-bottom: 1px solid var(--color-border); font-size: var(--fs-body-sm); }
.hours-table td:first-child { font-weight: 600; width: 40%; }
.hours-table tr.is-today td { color: var(--color-accent-hover); font-weight: 700; }
.hours-note { margin-top: var(--space-3); font-size: var(--fs-body-sm); color: var(--color-text-muted); }

.good-for-tags { display: flex; flex-wrap: wrap; gap: var(--space-2); }

/* ---- Sticky infobox ---- */
.place-infobox {
    position: sticky;
    top: calc(var(--header-height) + var(--space-4));
    background: var(--color-card);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    padding: var(--space-5);
}
.place-infobox h3 { font-size: 1.1rem; margin-bottom: var(--space-4); }
.place-infobox .status-row { margin-bottom: var(--space-4); }
.infobox-row { display: flex; gap: var(--space-3); padding-block: var(--space-3); border-top: 1px solid var(--color-border); font-size: var(--fs-body-sm); }
.infobox-row:first-of-type { border-top: none; }
.infobox-row .icon-wrap { color: var(--color-text-muted); flex-shrink: 0; margin-top: 2px; }
.infobox-actions { display: grid; gap: var(--space-3); margin-top: var(--space-4); }

.add-to-trip-wrap { position: relative; }
.add-to-trip-menu {
    position: absolute; top: calc(100% + var(--space-2)); left: 0; right: 0;
    background: #fff; border-radius: var(--radius-md); box-shadow: var(--shadow-float);
    padding: var(--space-2); z-index: var(--z-dropdown);
    max-height: 280px; overflow-y: auto;
}
.add-to-trip-menu a {
    display: block; padding: var(--space-3) var(--space-3);
    border-radius: var(--radius-sm); font-size: var(--fs-body-sm); font-weight: 600;
}
.add-to-trip-menu a:hover { background: var(--color-background-alt); }

.place-map-wrap { border-radius: var(--radius-lg); overflow: hidden; height: 340px; }

@media (max-width: 1080px) {
    .place-layout { grid-template-columns: 1fr; }
    .place-infobox { position: static; }
    .info-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .place-gallery { grid-template-columns: 1fr; height: auto; grid-template-rows: 260px; }
    .place-gallery__side { display: none; }
    .place-header { flex-direction: column; }
    .place-header__actions { width: 100%; }
    .place-header__actions .btn { flex: 1; }
}
