/* Messemanager – Räume & Hallen */
.mmr-list { display:flex; flex-direction:column; gap:2rem; scroll-margin-top:80px; }

/* Filter-Bar (Pill-Style) */
.mmr-filter-bar {
    display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 2rem;
    padding:.5rem 0 1rem; margin-bottom:1.25rem;
}
.mmr-filter { display:flex; align-items:center; gap:.5rem; }
.mmr-filter-label { font-size:.7rem; color:#212529; white-space:nowrap; }

.mmr-pill {
    position:relative; display:inline-flex; align-items:center;
    border:1.5px solid #000 !important; border-radius:999px;
    padding:.3rem .5rem .3rem .9rem;
    background:#fff; font-weight:600; font-size:.85rem; min-width:140px;
    line-height:1.4;
    cursor:pointer; transition:background .12s;
    box-shadow:none !important;
}
.mmr-pill:hover { background:#f5f5f5; }
.mmr-pill select {
    appearance:none !important; -webkit-appearance:none !important; -moz-appearance:none !important;
    border:0 !important; outline:0 !important; background:transparent !important;
    padding:0 1.2rem 0 0 !important; margin:0 !important;
    font:inherit !important; color:inherit !important; font-weight:600 !important;
    width:100%; min-height:auto !important; height:auto !important;
    box-shadow:none !important;
    cursor:pointer;
    line-height:1.4;
}
.mmr-pill select:focus { outline:0 !important; box-shadow:none !important; }
.mmr-pill select::-ms-expand { display:none; }
.mmr-pill::after {
    content:''; position:absolute; right:.45rem; top:50%;
    width:7px; height:7px;
    border-right:2px solid #000; border-bottom:2px solid #000;
    transform:translateY(-70%) rotate(45deg);
    pointer-events:none;
}
.mmr-pill select { padding-right:.8rem !important; }

/* AJAX-Loading-State */
.mmr-loading { opacity:.5; pointer-events:none; transition:opacity .15s; }
.mmr-spinner {
    display:inline-block; width:14px; height:14px;
    border:2px solid #ccc; border-top-color:#000;
    border-radius:50%; animation:mmr-spin .7s linear infinite;
    margin-left:.5rem; vertical-align:middle;
}
@keyframes mmr-spin { to { transform:rotate(360deg); } }
.mmr-pill-cta {
    background:#000; color:#fff; border-color:#000 !important; cursor:pointer;
    padding:.3rem 1.1rem; min-width:auto;
}
.mmr-pill-cta::after { display:none; }
.mmr-pill-cta:hover { background:#222; }

/* Slider-Variante für Personen */
.mmr-filter-slider { flex:0 1 280px; min-width:220px; max-width:320px; }
.mmr-slider-pill {
    position:relative; display:flex; flex-direction:column; gap:0;
    border:1.5px solid #000; border-radius:18px;
    padding:.25rem .95rem .35rem; background:#fff;
    width:100%; box-sizing:border-box; overflow:hidden;
}
/* Native <datalist>-Ticks unterdrücken – manche Browser rendern die Marker
   außerhalb des Pills und stoßen visuell ins nächste Filter-Feld. */
.mmr-slider-pill datalist,
.mmr-filter-bar datalist { display:none !important; }
.mmr-slider-label {
    font-size:.78rem; font-weight:600; color:#212529;
    line-height:1.2; text-align:center;
}
.mmr-slider-pill input[type=range] {
    -webkit-appearance:none; appearance:none;
    width:100%; height:4px; background:#d0d0d0; border-radius:2px;
    margin:.35rem 0 .15rem; padding:0; cursor:pointer;
    outline:none !important; box-shadow:none !important;
}
.mmr-slider-pill input[type=range]::-webkit-slider-thumb {
    -webkit-appearance:none; appearance:none;
    width:16px; height:16px; border-radius:50%;
    background:#000; cursor:pointer; border:0;
}
.mmr-slider-pill input[type=range]::-moz-range-thumb {
    width:16px; height:16px; border-radius:50%;
    background:#000; cursor:pointer; border:0;
}

.mmr-filter-result { font-size:.9rem; color:#444; margin:-0.5rem 0 1rem; }
.mmr-filter-reset {
    color:#000;
    text-decoration:none;
    font-size:.7rem;
    border:1px solid #000;
    padding:5px 15px;
    border-radius:15px;
    margin-left:.75rem;
}
.mmr-filter-reset:hover { background:#000; color:#fff; }
.mmr-empty { padding:2rem; text-align:center; background:#f8f9fa; border-radius:8px; color:#555; }

@media (max-width:720px) {
    .mmr-filter-bar { gap:.75rem; }
    .mmr-filter { width:100%; justify-content:space-between; }
    .mmr-pill { min-width:0; flex-grow:1; }
    .mmr-pill-cta { width:100%; justify-content:center; }
}
.mmr-location { margin-bottom:1rem; }
.mmr-loc-head { padding:.25rem .75rem; margin-bottom:1rem; }
.mmr-loc-head h3 { margin:0 0 .15rem; }
.mmr-loc-head .mmr-muted { margin:0; font-size:.9rem; }

/* 3-Spalten-Grid, responsive */
.mmr-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1.25rem; }
@media (max-width: 992px) { .mmr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .mmr-grid { grid-template-columns: 1fr; } }

.mmr-card { background:#fff; border:1px solid #e6e6e6; border-radius:8px; overflow:hidden; transition:box-shadow .15s, transform .15s; }
.mmr-card:hover { box-shadow:0 6px 20px rgba(0,0,0,.08); transform:translateY(-2px); }
.mmr-card-link,
.mmr-card-link:hover,
.mmr-card-link:focus,
.mmr-card-link:active,
.mmr-card-link *,
.mmr-card-link *:hover {
    text-decoration:none !important;
}
.mmr-card-link { display:flex; flex-direction:column; height:100%; color:inherit; }
.mmr-img { height:180px; background-size:cover; background-position:center; position:relative; }
.mmr-img-fallback { display:flex; align-items:center; justify-content:center; color:#fff; font-size:48px; }

/* Standort-Tag oben auf dem Bild */
.mmr-loc-tag {
    position:absolute; top:.75rem; left:.75rem;
    display:inline-flex; align-items:center; gap:.3rem;
    padding:.3rem .65rem;
    background:rgba(255,255,255,.92);
    color:#212529;
    border-radius:4px;
    font-size:.78rem; font-weight:600;
    backdrop-filter:blur(2px);
}
.mmr-loc-tag svg { width:14px; height:14px; }

/* Logo-Variante: Bild statt Text */
.mmr-loc-tag-logo { padding:.3rem .55rem; }
.mmr-loc-tag-logo img { display:block; height:24px; max-width:120px; object-fit:contain; }

.mmr-card-body { padding:1rem; flex-grow:1; }
.mmr-card-body h4 { margin:0 0 .25rem; font-size:1.15rem; }
.mmr-badge { display:inline-block; padding:.1rem .4rem; font-size:.7rem; border-radius:4px; margin-left:.3rem; vertical-align:middle; }
.mmr-badge-combo { background:#cff4fc; color:#055160; }
.mmr-type { margin:0 0 .75rem; font-size:.85rem; }

/* Keyfacts mit Icons – einspaltig, kompakt */
.mmr-stats {
    list-style: none !important;
    padding: 0 !important; padding-inline-start: 0 !important;
    margin: 0 0 .5rem;
    font-size: .9rem;
    display: flex; flex-direction: column; gap: .15rem;
}
.mmr-stats li {
    list-style: none !important;
    display: flex; align-items: center; gap: .5rem;
    color: #212529;
    line-height: 1.25;
}
.mmr-stats li::before, .mmr-stats li::marker { content: none !important; display: none !important; }
.mmr-ic { display:inline-flex; width:18px; height:18px; color:#6b7280; flex-shrink:0; }
.mmr-ic svg { width:18px; height:18px; }

.mmr-desc { margin:.75rem 0 0; font-size:.9rem; color:#444; }
.mmr-card-foot { padding:.7rem 1rem; border-top:1px solid #f0f0f0; display:flex; justify-content:flex-end; align-items:center; font-size:.9rem; }
.mmr-btn-link {
    display:inline-block;
    background:#c80010; color:#fff;
    padding:.45rem 1.1rem; border-radius:999px;
    font-weight:600; font-size:.82rem;
    transition:background .12s;
}
.mmr-card:hover .mmr-btn-link { background:#9e000c; }
.mmr-muted { color:#6b7280; }

/* Detail */
/* Plugin-eigene Detailseite – Schutz vor fixed/sticky Theme-Headern
   (Impreza-Default-Header ~100 px), Container an Impreza-Default 1500 px angelehnt */
.mmr-detail-page-wrap  {
    padding: clamp(6rem, 14vh, 11rem) 1.25rem 4rem;
    box-sizing: border-box;
}
.mmr-detail-page-inner {
    max-width: var(--wp--style--global--wide-size, var(--wp--style--global--content-size, 1500px));
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}
/* Impreza-Theme: setzt selten Block-Theme-Vars → fester Wert 1500 sicherstellen */
body.theme-impreza .mmr-detail-page-inner,
.l-main .mmr-detail-page-inner { max-width:1500px; }
.mmr-detail { display:grid; grid-template-columns: 2fr 1fr; gap:2rem; align-items:start; }
.mmr-detail-side {
    position:relative;
    align-self:start;
    will-change:transform;
}
@media (max-width:880px) {
    .mmr-detail { grid-template-columns: 1fr; }
    .mmr-detail-side { transform:none !important; }
}
.mmr-detail-img { max-width:100%; border-radius:8px; margin:1rem 0; display:block; }
.mmr-detail-locationlogo { margin: .25rem 0 .5rem; }
.mmr-detail-locationlogo img { max-height:42px; max-width:200px; object-fit:contain; display:block; }
.mmr-detail-sub { margin-bottom:1.25rem; }
.mmr-desc-block { background:transparent; padding:0; border-radius:0; margin:1rem 0; }
.mmr-desc-block.mmr-richtext { padding:0; }

/* Lightbox */
.mmr-lightbox-link { display:block; cursor:zoom-in; }
.mmr-lightbox {
    position:fixed; inset:0; z-index:9999;
    background:rgba(0,0,0,.9);
    display:flex; align-items:center; justify-content:center;
    padding:2rem;
}
.mmr-lightbox[hidden] { display:none; }
.mmr-lightbox-img {
    max-width:100%; max-height:100%; object-fit:contain;
    border-radius:4px; box-shadow:0 4px 30px rgba(0,0,0,.5);
}
.mmr-lightbox-close, .mmr-lightbox-prev, .mmr-lightbox-next {
    position:absolute; background:rgba(255,255,255,.15); color:#fff;
    border:0; border-radius:50%; width:48px; height:48px;
    display:flex; align-items:center; justify-content:center;
    font-size:1.5rem; cursor:pointer;
    transition:background .15s;
}
.mmr-lightbox-close:hover, .mmr-lightbox-prev:hover, .mmr-lightbox-next:hover {
    background:rgba(255,255,255,.35);
}
.mmr-lightbox-close { top:1.5rem; right:1.5rem; }
.mmr-lightbox-prev  { left:1.5rem; top:50%; transform:translateY(-50%); }
.mmr-lightbox-next  { right:1.5rem; top:50%; transform:translateY(-50%); }
.mmr-richtext h2, .mmr-richtext h3, .mmr-richtext h4 { margin:1rem 0 .5rem; }
.mmr-richtext h2 { font-size:1.4rem; }
.mmr-richtext h3 { font-size:1.2rem; }
.mmr-richtext h4 { font-size:1.05rem; }
.mmr-richtext p { margin:0 0 .75rem; line-height:1.55; }
.mmr-richtext ul, .mmr-richtext ol { margin:0 0 .75rem 1.5rem; }
.mmr-richtext li { margin-bottom:.25rem; }
.mmr-richtext a { color:#0d6efd; text-decoration:underline; }
.mmr-richtext blockquote {
    border-left:4px solid #dee2e6; padding:.25rem 0 .25rem 1rem;
    margin:.75rem 0; color:#495057; font-style:italic;
}
.mmr-richtext strong { font-weight:700; }

/* 3D-Rundgang */
.mmr-3d { position:relative; padding-bottom:56.25%; height:0; margin:.5rem 0 1.5rem; border-radius:8px; overflow:hidden; background:#000; }
.mmr-3d iframe { position:absolute; top:0; left:0; width:100%; height:100%; border:0; }

/* Gallery */
.mmr-gallery { display:grid; grid-template-columns:repeat(3, 1fr); gap:.5rem; margin-bottom:1.5rem; }
@media (max-width:600px) { .mmr-gallery { grid-template-columns: repeat(2, 1fr); } }
.mmr-gallery a { display:block; overflow:hidden; border-radius:6px; }
.mmr-gallery img { width:100%; height:140px; object-fit:cover; display:block; transition:transform .2s; }
.mmr-gallery a:hover img { transform:scale(1.05); }

/* Documents – Listenpunkte aus, Titel bold, Download-Icon rechts schwarz */
.mmr-docs {
    list-style: none !important; padding:0 !important; padding-inline-start:0 !important;
    margin:0 0 1.5rem;
}
.mmr-docs li {
    list-style: none !important;
    display:flex; align-items:center;
    gap:.85rem; padding:.6rem 0;
    border-bottom:1px solid #f0f0f0;
}
.mmr-docs li::before, .mmr-docs li::marker { content:none !important; display:none !important; }
.mmr-docs li:last-child { border-bottom:0; }
.mmr-doc-dl    { color:#000; display:inline-flex; align-items:center; flex-shrink:0; text-decoration:none !important; }
.mmr-doc-dl:hover { color:#c80010; }
.mmr-doc-dl svg   { display:block; }
.mmr-doc-title {
    flex-grow:1; font-size:1rem; font-weight:700; color:#212529;
    text-decoration:none !important;
}
.mmr-doc-title:hover { color:#c80010; }
.mmr-capacity {
    display:grid; grid-template-columns:repeat(4, 1fr); gap:1rem;
    text-align:center; margin:1rem 0 1.5rem; padding:1.25rem 1.25rem 1.5rem;
    background:#f8f9fa; border-radius:8px;
}
.mmr-keyfacts-title {
    grid-column: 1 / -1;
    margin:0 0 .25rem;
    text-align:left;
}
.mmr-cap-ic   { display:flex; justify-content:center; align-items:center; height:32px; margin-bottom:.25rem; color:#212529; }
.mmr-cap-ic svg { width:28px; height:28px; }
.mmr-cap-num  { font-size:1.85rem; font-weight:700; color:#212529; line-height:1.1; }
.mmr-capacity .mmr-muted { font-size:.8rem; margin-top:.1rem; }

.mmr-calendar { display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem; }
@media (max-width:760px) { .mmr-calendar { grid-template-columns: 1fr; } }
.mmr-cal-month { background:#fff; border:1px solid #e6e6e6; border-radius:6px; padding:.5rem; }
.mmr-cal-head { font-weight:600; text-align:center; margin-bottom:.5rem; }
.mmr-cal-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:2px; }
.mmr-cal-dow { font-size:.75rem; text-align:center; color:#6b7280; font-weight:500; }
.mmr-cal-dow.mmr-cal-we { color:#0d6efd; }
.mmr-cal-day { text-align:center; padding:4px 0; font-size:.85rem; border-radius:3px; }
.mmr-cal-free { background:#d1e7dd; }
.mmr-cal-busy { background:#dc3545; color:#fff; }
.mmr-cal-past { color:#bbb; }
.mmr-cal-legend { font-size:.85rem; margin-top:.5rem; color:#6b7280; }
.mmr-cal-swatch { display:inline-block; width:14px; height:12px; vertical-align:middle; border-radius:2px; }
.mmr-cal-swatch.mmr-cal-free { background:#d1e7dd; }
.mmr-cal-swatch.mmr-cal-busy { background:#dc3545; }

.mmr-hp { position:absolute !important; left:-9999px !important; opacity:0 !important; }

/* Raum-Anfrage-Formular – Layout-only.
   Form-Felder (input, select, textarea) erben Theme-Definitionen.
   Plugin steuert nur Layout + kompakte Typografie. */
.mmr-inq         { width:100%; }
.mmr-inq h2, .mmr-inq h3 { margin:.25rem 0 .5rem; }
.mmr-inq-error   { background:#fdecea; color:#8b0000; padding:.6rem .9rem; border-radius:6px; margin-bottom:.75rem; }
.mmr-inq-success { padding:1rem; background:#e6f6ec; border-radius:6px; }
.mmr-inq-success h2 { margin-top:0; }
.mmr-inq-form    { display:flex; flex-direction:column; gap:1rem; }
.mmr-inq-row     { display:flex; flex-direction:column; gap:.35rem; }
.mmr-inq-row label,
.mmr-inq-row-2col label { font-size:.7rem; font-weight:700; }
.mmr-inq-row-2col       { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.mmr-inq-row-2col > div { display:flex; flex-direction:column; gap:.35rem; }
.mmr-inq-row-inline     { flex-direction:row; flex-wrap:wrap; align-items:center; gap:.75rem; }
.mmr-inq-row-inline input[type=text] { flex:1 1 200px; }
.mmr-inq-checks  { display:flex; flex-wrap:wrap; gap:.8rem; }
.mmr-inq-check   { display:inline-flex; align-items:center; gap:.4rem; cursor:pointer; font-size:.7rem; font-weight:700; }
.mmr-inq-check input { margin:0; }
.mmr-inq-submit-wrap { margin-top:.5rem; text-align:center; }
.mmr-inq-submit-wrap button { font-size:.8rem; }

.mmr-form-success { background:#d1e7dd; padding:1rem; border-radius:6px; }
.mmr-form-error   { background:#f8d7da; padding:.6rem; border-radius:4px; margin-bottom:.75rem; color:#842029; }
.mmr-error { background:#f8d7da; padding:.75rem; border-radius:4px; color:#842029; }

/* ── Locationabfrage (Standalone) ─────────────────────────────── */
.mmr-loc { max-width:900px; margin:0 auto; padding:2rem 1rem; }
.mmr-loc-title { text-align:center; font-weight:700; font-size:2.25rem; margin:0 0 1.5rem; }
.mmr-loc-intro { font-size:1rem; line-height:1.5; margin-bottom:2rem; }
.mmr-loc-section { font-weight:700; font-size:1.7rem; margin:2rem 0 1.25rem; }
.mmr-loc-form { display:flex; flex-direction:column; gap:1rem; }

.mmr-loc-row { display:grid; grid-template-columns: 200px 1fr; align-items:center; gap:1rem; }
.mmr-loc-row-textarea { align-items:start; }
.mmr-loc-row-textarea .mmr-loc-label { padding-top:.6rem; }
.mmr-loc-label { font-weight:700; font-size:.95rem; }
.mmr-loc-label-inline { margin:0 .5rem 0 1rem; }
.mmr-loc-sublabel { font-weight:700; font-size:.95rem; }
.mmr-loc-field { display:flex; align-items:center; gap:.5rem; }

/* Pills */
.mmr-loc-pill {
    flex-grow:1;
    border:1.5px solid #000 !important;
    border-radius:999px;
    background:#fff;
    padding:.7rem 1.5rem;
    box-shadow:none !important;
    display:flex; align-items:center;
}
.mmr-loc-pill input, .mmr-loc-pill select, .mmr-loc-pill textarea {
    flex-grow:1; width:100%;
    border:0 !important; outline:0 !important; background:transparent !important;
    font:inherit !important; padding:0 !important; margin:0 !important;
    color:#212529;
    appearance:none; -webkit-appearance:none; -moz-appearance:none;
    box-shadow:none !important;
}
.mmr-loc-pill-textarea { border-radius:10px; padding:1rem 1.5rem; }
.mmr-loc-pill-textarea textarea { resize:vertical; min-height:120px; line-height:1.4; }
.mmr-loc-pill-select { position:relative; padding-right:2.5rem; }
.mmr-loc-pill-select::after {
    content:''; position:absolute; right:1.25rem; top:50%;
    width:9px; height:9px;
    border-right:2px solid #000; border-bottom:2px solid #000;
    transform:translateY(-70%) rotate(45deg); pointer-events:none;
}
.mmr-loc-pill-date input { font-family:inherit; }
.mmr-loc-pill-date input::-webkit-calendar-picker-indicator { cursor:pointer; }

.mmr-loc-daterow, .mmr-loc-zeitraumrow {
    display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1rem; width:100%;
}
.mmr-loc-daterow .mmr-loc-pill { flex:1 1 200px; max-width:300px; }
.mmr-loc-zeitraumrow { margin-top:.5rem; }
.mmr-loc-zeitraumrow .mmr-loc-pill { flex:1 1 280px; }

.mmr-loc-checkrow { flex-wrap:wrap; gap:.5rem 1.5rem; }
.mmr-loc-check {
    display:inline-flex; align-items:center; gap:.5rem;
    font-weight:600; font-size:.95rem;
    cursor:pointer;
}
.mmr-loc-check input { width:18px; height:18px; accent-color:#c80010; }

.mmr-loc-namerow { gap:1rem; }
.mmr-loc-namerow > .mmr-loc-pill:first-child { max-width:none; }

.mmr-loc-submit-wrap { display:flex; justify-content:center; margin-top:1.5rem; }
.mmr-loc-submit {
    background:#c80010; color:#fff; border:0;
    border-radius:999px; padding:.85rem 2.25rem;
    font-weight:700; font-size:1rem; cursor:pointer;
    transition:background .15s;
}
.mmr-loc-submit:hover { background:#9e000c; }

.mmr-loc-success { background:#d1e7dd; padding:2rem; border-radius:12px; text-align:center; }
.mmr-loc-success h2 { margin:0 0 .5rem; color:#0f5132; }
.mmr-loc-error   { background:#f8d7da; padding:.75rem 1rem; border-radius:8px; color:#842029; margin-bottom:1rem; }

@media (max-width: 720px) {
    .mmr-loc-row { grid-template-columns: 1fr; gap:.4rem; }
    .mmr-loc-label-inline { margin:.4rem 0 0; }
    .mmr-loc-title { font-size:1.6rem; }
    .mmr-loc-section { font-size:1.3rem; }
}
