.dp-fav-btn {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border: none;
    border-radius: 20px;
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    background:
        radial-gradient(circle at 15% 25%, rgba(255,255,255,.12) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 75% 65%, rgba(255,255,255,.09) 0 1.5px, transparent 3px),
        linear-gradient(135deg, var(--dp-turquesa-light,#12b8c8), var(--dp-turquesa,#08a9bd));
    background-size: 24px 24px, 34px 34px, 100% 100%;
    box-shadow: 0 4px 10px rgba(0,157,180,.20);
    transition: transform .18s ease, box-shadow .18s ease;
}
.dp-fav-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 7px 16px rgba(0,157,180,.26);
}
.dp-fav-btn.is-active {
    background: #fff;
    color: var(--dp-turquesa-dark,#079aae);
    border: 1.5px solid var(--dp-turquesa,#08a9bd);
    box-shadow: none;
}

.dp-fav-btn.is-active {
    background: #fef2f2;
    border-color: #fecaca;
    color: #dc2626;
}

.dp-reviews-list { margin: 16px 0; padding: 0; list-style: none; }
.dp-review-item { border-bottom: 1px solid var(--dp-border, #e5e7eb); padding: 12px 0; }
.dp-review-rating { color: #f59e0b; font-weight: 700; }

.dp-review-form textarea {
    width: 100%;
    min-height: 80px;
    padding: 10px;
    border: 1px solid var(--dp-border, #e5e7eb);
    border-radius: 8px;
    box-sizing: border-box;
    font-family: inherit;
    margin-top: 8px;
}

.dp-claim-box {
    background: var(--dp-bg, #f9fafb);
    border-radius: 10px;
    padding: 16px 20px;
    margin: 20px 0;
}

.dp-claim-status {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
}
.dp-claim-status.pending { background: #fef3c7; color: #92400e; }
.dp-claim-status.verified { background: #d1fae5; color: #065f46; }
.dp-claim-status.rejected { background: #fee2e2; color: #991b1b; }

.dp-lugar-page { max-width: 900px; margin: 0 auto; padding: 0 20px 60px; }

.dp-lugar-hero {
    background: linear-gradient(135deg, #eff6ff, #f9fafb);
    border-radius: 16px;
    padding: 40px 32px;
    margin: 30px 0;
}
.dp-lugar-hero h1 { font-size: 32px; font-weight: 800; margin: 0 0 12px; }
.dp-lugar-meta { display: flex; gap: 8px; margin-bottom: 12px; }
.dp-badge {
    display: inline-block; padding: 4px 12px; border-radius: 20px;
    font-size: 13px; font-weight: 600; background: #fff; color: var(--dp-text,#111827);
}
.dp-badge-verified { background: #d1fae5; color: #065f46; }
.dp-lugar-address { font-size: 15px; color: var(--dp-text-muted,#6b7280); margin: 0 0 10px; }
.dp-lugar-info-list {
    list-style: none;
    padding: 0;
    margin: 0 0 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.dp-lugar-info-list li {
    font-size: 14px;
    color: var(--dp-text,#111827);
}
.dp-lugar-info-list a {
    color: var(--dp-primary,#2563eb);
    text-decoration: none;
    font-weight: 600;
}
.dp-social-icon {
    width: 15px;
    height: 15px;
    vertical-align: -2px;
    margin-right: 2px;
}

.dp-lugar-actions {
    display: flex;
    gap: 18px;
    margin-bottom: 16px;
}
.dp-action-link {
    background: none;
    border: none;
    padding: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--dp-text-muted,#6b7280);
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
}
.dp-action-link:hover { color: var(--dp-primary,#2563eb); }

.dp-lugar-login-hint {
    margin: 10px 0 0;
    font-size: 13px;
}
.dp-lugar-login-hint a {
    color: var(--dp-primary,#2563eb);
    text-decoration: none;
    font-weight: 600;
}

.dp-lugar-section {
    margin: 40px 0;
    padding-top: 40px;
    border-top: 1px solid var(--dp-border,#e5e7eb);
}
.dp-lugar-section:first-of-type {
    border-top: none;
    padding-top: 0;
}
.dp-lugar-section h2 {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 18px;
}
.dp-lugar-description { line-height: 1.7; color: var(--dp-text,#111827); }

.dp-activity-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.dp-activity-card {
    background: #fff; border: 1px solid var(--dp-border,#e5e7eb); border-radius: 12px;
    padding: 20px; box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.dp-activity-card-header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.dp-activity-icon {
    display: inline-block;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    background-color: var(--dp-turquesa-dark,#079aae);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}
.dp-activity-card h3 { margin: 0; font-size: 17px; }
.dp-activity-facts { list-style: none; padding: 0; margin: 0 0 10px; font-size: 14px; }
.dp-activity-facts li { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.dp-activity-details { font-size: 13px; color: var(--dp-text-muted,#6b7280); margin: 0; line-height: 1.5; }

/* Bloque de reserva de terceros (Civitatis y equivalentes) dentro de una
   tarjeta de actividad — ver documento de integración v1.1. */
.dp-booking-block {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed var(--dp-border, #e5e7eb);
}

.dp-booking-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.dp-booking-rating {
    font-size: 13px;
    font-weight: 700;
    color: var(--dp-text, #111827);
}
.dp-booking-rating-count {
    font-weight: 500;
    color: var(--dp-text-muted, #6b7280);
}

.dp-booking-badge {
    background: #ecfdf5;
    color: #16a34a;
    font-size: 11.5px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
}

.dp-booking-facts {
    list-style: none;
    padding: 0;
    margin: 0 0 8px;
    font-size: 13px;
    color: var(--dp-text, #111827);
}
.dp-booking-facts li { margin-bottom: 5px; }

.dp-booking-included,
.dp-booking-excluded {
    font-size: 12.5px;
    color: var(--dp-text-muted, #6b7280);
    margin: 0 0 6px;
    line-height: 1.5;
}
.dp-booking-included strong,
.dp-booking-excluded strong {
    color: var(--dp-text, #111827);
}

.dp-booking-cta-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
}

.dp-booking-btn {
    display: inline-block;
    width: auto !important;
    margin-top: 0;
    padding: 10px 22px !important;
    font-size: 14px;
}

.dp-booking-disclosure {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: var(--dp-text-muted, #6b7280);
    cursor: help;
    border-bottom: 1px dotted var(--dp-text-muted, #6b7280);
}

.dp-facility-list { list-style: none; padding: 0; }
.dp-facility-list li { padding: 8px 0; border-bottom: 1px solid var(--dp-border,#e5e7eb); }

.dp-facility-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.dp-facility-card {
    background: #fff; border: 1px solid var(--dp-border,#e5e7eb); border-radius: 12px;
    padding: 20px; box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.dp-facility-card-header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.dp-facility-icon {
    display: inline-block;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    background-color: var(--dp-turquesa-dark,#079aae);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}
.dp-facility-card h3 { margin: 0; font-size: 16px; }
.dp-facility-qty { font-weight: 400; color: var(--dp-text-muted,#6b7280); }
.dp-facility-facts { list-style: none; padding: 0; margin: 0; font-size: 14px; }
.dp-facility-facts li { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }

.dp-lugar-hero { position: relative; overflow: hidden; }
.dp-lugar-hero-image {
    width: 100%; height: 220px; object-fit: cover;
    display: block; border-radius: 16px 16px 0 0;
}
.dp-lugar-hero-content { padding: 32px; }

.dp-business-reply {
    background: var(--dp-bg,#f9fafb);
    border-left: 3px solid var(--dp-primary,#2563eb);
    border-radius: 6px;
    padding: 10px 14px;
    margin-top: 10px;
    font-size: 14px;
}
.dp-reply-form textarea {
    padding: 8px 10px; border: 1px solid var(--dp-border,#e5e7eb);
    border-radius: 6px; font-family: inherit; font-size: 13px;
}
.dp-review-business-reply {
    background: var(--dp-bg,#f9fafb);
    border-left: 3px solid var(--dp-primary,#2563eb);
    border-radius: 6px;
    padding: 8px 12px;
    margin-top: 8px;
    font-size: 13px;
}
.dp-review-business-reply strong { display: block; margin-bottom: 2px; }
.dp-review-business-reply p { margin: 0; color: var(--dp-text,#111827); }

.dp-photo-slider {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 8px;
    -webkit-overflow-scrolling: touch;
}
.dp-photo-slider::-webkit-scrollbar { height: 6px; }
.dp-photo-slider::-webkit-scrollbar-thumb { background: var(--dp-border,#e5e7eb); border-radius: 10px; }

.dp-photo-slide {
    flex: 0 0 auto;
    width: 220px;
    height: 220px;
    scroll-snap-align: start;
    border-radius: 12px;
    overflow: hidden;
    display: block;
}
.dp-photo-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.2s ease;
}
.dp-photo-slide:hover img {
    transform: scale(1.04);
}

@media (max-width: 600px) {
    .dp-photo-slide { width: 160px; height: 160px; }
}

.dp-photo-slide {
    border: none;
    padding: 0;
    background: none;
    cursor: pointer;
}

.dp-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.9);
    z-index: 9999;
    align-items: center;
    justify-content: center;
}
.dp-lightbox.is-open { display: flex; }

.dp-lightbox-frame {
    width: min(800px, 90vw);
    height: min(600px, 80vh);
    background: #111;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.dp-lightbox img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.dp-lightbox-close,
.dp-lightbox-prev,
.dp-lightbox-next {
    position: absolute;
    background: rgba(255,255,255,0.12);
    color: #fff;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dp-lightbox-close {
    top: 20px; right: 20px;
    width: 40px; height: 40px;
    font-size: 18px;
}

.dp-lightbox-prev,
.dp-lightbox-next {
    top: 50%;
    transform: translateY(-50%);
    width: 48px; height: 48px;
    font-size: 28px;
}
.dp-lightbox-prev { left: 20px; }
.dp-lightbox-next { right: 20px; }

.dp-lightbox-close:hover,
.dp-lightbox-prev:hover,
.dp-lightbox-next:hover {
    background: rgba(255,255,255,0.25);
}

@media (max-width: 600px) {
    .dp-lightbox-prev, .dp-lightbox-next { width: 40px; height: 40px; font-size: 22px; }
}

#dp-share-btn {
    background: none; border: none; cursor: pointer;
    font-size: 14px; color: var(--dp-primary,#2563eb);
    font-family: inherit; padding: 0;
}
.dp-lugar-horario {
    font-size: 14px; color: var(--dp-text-muted,#6b7280); margin: 8px 0 0;
}

.dp-transport-box {
    background: var(--dp-bg,#f9fafb);
    border-radius: 10px;
    padding: 14px 18px;
    margin: 12px 0;
    font-size: 14px;
}

.dp-similar-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 18px;
}

.dp-similar-card {
    text-decoration: none;
    color: var(--dp-text,#111827);
    border-radius: 14px;
    overflow: hidden;
    display: block;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.dp-similar-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px rgba(0,0,0,0.12);
}

.dp-similar-media {
    position: relative;
    height: 150px;
    overflow: hidden;
}
.dp-similar-media img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform 0.3s ease;
}
.dp-similar-card:hover .dp-similar-media img {
    transform: scale(1.08);
}
.dp-similar-noimg {
    width: 100%; height: 100%;
    background: linear-gradient(135deg, #eff6ff, #f9fafb);
    display: flex; align-items: center; justify-content: center;
    font-size: 34px;
}

.dp-similar-dist {
    position: absolute;
    top: 10px; right: 10px;
    background: rgba(255,255,255,0.95);
    color: var(--dp-primary,#2563eb);
    font-size: 12px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}

.dp-similar-overlay {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 24px 12px 10px;
    background: linear-gradient(to top, rgba(0,0,0,0.75), transparent);
}
.dp-similar-overlay strong {
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    display: block;
}

.dp-similar-info {
    padding: 10px 14px 14px;
}
.dp-similar-info span {
    font-size: 13.5px;
    font-weight: 500;
    color: #55647A;
}

.dp-similar-activity {
    display: inline-block;
    margin-top: 6px;
    background: var(--dp-bg,#f9fafb);
    border-radius: 12px;
    padding: 3px 10px;
    font-size: 12px;
    font-weight: 600;
    color: var(--dp-text,#111827);
}

.dp-course-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}

.dp-course-card {
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, #fff7ed, #ffffff 60%);
    border: 1px solid #fed7aa;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.dp-course-card:hover {
    box-shadow: 0 10px 24px rgba(194,120,3,0.12);
    transform: translateY(-3px);
}

.dp-course-date-badge {
    align-self: flex-start;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    background: linear-gradient(135deg, #f97316, #ea580c);
    border-radius: 10px;
    color: #fff;
    margin-bottom: 12px;
}
.dp-course-day { font-size: 19px; font-weight: 800; line-height: 1; }
.dp-course-month { font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; opacity: 0.9; }

.dp-course-body { flex: 1; min-width: 0; }
.dp-course-title { font-size: 16px; display: block; margin-bottom: 6px; }
.dp-course-recur { font-size: 13px; color: var(--dp-text-muted,#6b7280); margin: 0 0 8px; line-height: 1.5; }
.dp-course-recur strong { color: var(--dp-text,#111827); }
.dp-course-desc { font-size: 14px; margin: 0 0 10px; line-height: 1.4; }
.dp-course-meta { display: flex; gap: 10px; flex-wrap: wrap; font-size: 12px; margin: 0 0 14px; color: var(--dp-text-muted,#6b7280); }

.dp-course-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}

.dp-course-card {
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, #fff7ed, #ffffff 60%);
    border: 1px solid #fed7aa;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.dp-course-card:hover {
    box-shadow: 0 10px 24px rgba(194,120,3,0.12);
    transform: translateY(-3px);
}

.dp-course-date-badge {
    align-self: flex-start;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    background: linear-gradient(135deg, #f97316, #ea580c);
    border-radius: 10px;
    color: #fff;
    margin-bottom: 12px;
}
.dp-course-day { font-size: 19px; font-weight: 800; line-height: 1; }
.dp-course-month { font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; opacity: 0.9; }

.dp-course-body { flex: 1; min-width: 0; }
.dp-course-title { font-size: 16px; display: block; margin-bottom: 6px; }
.dp-course-recur { font-size: 13px; color: var(--dp-text-muted,#6b7280); margin: 0 0 8px; line-height: 1.5; }
.dp-course-recur strong { color: var(--dp-text,#111827); }
.dp-course-desc { font-size: 14px; margin: 0 0 10px; line-height: 1.4; }
.dp-course-meta { display: flex; gap: 10px; flex-wrap: wrap; font-size: 12px; margin: 0 0 14px; color: var(--dp-text-muted,#6b7280); }

@media (max-width: 600px) {
    .dp-lugar-hero-content { padding: 20px; }
    .dp-lugar-hero h1 { font-size: 24px; }
    .dp-lugar-hero-image { height: 160px; }
    .dp-lugar-meta { margin-bottom: 10px; }
    .dp-badge { font-size: 12px; padding: 3px 10px; }
}

.dp-course-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.dp-badge-open { background: #d1fae5; color: #065f46; }
.dp-badge-closed { background: #fee2e2; color: #991b1b; }

.dp-course-image {
    width: 100%;
    height: 140px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 12px;
}

/* ======================================================================
   Restyle ficha de lugar (single-lugar.php) — inspirado en proto2.png
   ====================================================================== */

/* --- Migas de pan --- */
.dp-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--dp-text-muted,#6b7280);
    margin: 20px 0 0;
}
.dp-breadcrumbs a { color: var(--dp-text-muted,#6b7280); text-decoration: none; }
.dp-breadcrumbs a:hover { color: var(--dp-primary,#2563eb); text-decoration: underline; }
.dp-breadcrumb-sep { opacity: .6; }
.dp-breadcrumb-current { color: var(--dp-text,#111827); font-weight: 600; }

/* --- Tarjeta unificada: hero + bloque de título (como en el mockup) --- */
.dp-lugar-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 1px 3px rgba(15,23,42,.06), 0 10px 30px rgba(15,23,42,.05);
    overflow: hidden;
    margin: 16px 0 0;
}

/* --- Hero: solo imagen + iconos flotantes --- */
.dp-lugar-hero {
    position: relative;
    overflow: hidden;
    border-radius: 0;
    margin: 0;
    padding: 0;
    min-height: 90px;
    background: linear-gradient(135deg, #eff6ff, #f9fafb);
}
.dp-lugar-hero-icons {
    position: absolute;
    top: 16px;
    right: 16px;
    display: flex;
    gap: 10px;
    z-index: 2;
}
.dp-hero-icon-btn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,0.95);
    color: var(--dp-text,#111827);
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    transition: transform .15s ease, box-shadow .15s ease;
}
.dp-hero-icon-btn:hover { transform: translateY(-1px); box-shadow: 0 5px 14px rgba(0,0,0,0.2); }
.dp-hero-fav-btn.is-active { color: #dc2626; }

/* --- Bloque de título --- */
.dp-lugar-titleblock { padding: 22px 28px 26px; }
.dp-lugar-titlerow {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 10px;
}
.dp-lugar-titlerow h1 {
    font-size: 26px;
    font-weight: 800;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.dp-lugar-verified-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--dp-turquesa,#08a9bd);
    color: #fff;
    font-size: 12px;
    flex: 0 0 auto;
}
.dp-lugar-titlerow-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
}
.dp-lugar-status-badge { white-space: nowrap; flex: 0 0 auto; }
.dp-lugar-hours {
    font-size: 13px;
    color: var(--dp-text-muted,#6b7280);
    text-align: right;
    max-width: 100%;
    overflow-wrap: break-word;
}

.dp-lugar-subrow {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 14px;
}
.dp-lugar-rating-inline { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.dp-lugar-rating-inline a { color: var(--dp-primary,#2563eb); text-decoration: none; }
.dp-lugar-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.dp-lugar-chip {
    background: var(--dp-bg,#f4f5f7);
    border-radius: 20px;
    padding: 5px 14px;
    font-size: 13px;
    font-weight: 600;
    color: var(--dp-text,#111827);
    text-decoration: none;
    display: inline-block;
    transition: background 0.15s ease, color 0.15s ease;
}
a.dp-lugar-chip:hover {
    background: var(--dp-turquesa,#08a9bd);
    color: #fff;
}

.dp-lugar-card .dp-lugar-address {
    margin: 0 0 14px;
}
.dp-lugar-divider {
    border: none;
    border-top: 1px solid var(--dp-border,#e5e7eb);
    margin: 0 0 14px;
}
.dp-lugar-card .dp-lugar-info-list {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 22px;
    margin-bottom: 12px;
}
.dp-lugar-card .dp-lugar-info-list li {
    display: flex;
    align-items: center;
    gap: 6px;
}
.dp-lugar-card .dp-lugar-actions { margin-bottom: 0; }

/* --- Navegación de pestañas (tabs reales: cambian de panel, no saltan con ancla) --- */
.dp-lugar-tabs {
    position: sticky;
    top: 64px;
    z-index: 5;
    display: flex;
    gap: 4px;
    overflow-x: auto;
    background: #fff;
    border-bottom: 1px solid var(--dp-border,#e5e7eb);
    margin: 12px 0 0;
    -webkit-overflow-scrolling: touch;
    /* Difumina el borde derecho para insinuar que hay más pestañas al hacer scroll horizontal (móvil) */
    -webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 28px), transparent 100%);
    mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 28px), transparent 100%);
}
.dp-lugar-tabs::-webkit-scrollbar { display: none; }
.dp-lugar-tabs a {
    flex: 0 0 auto;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--dp-text-muted,#6b7280);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    cursor: pointer;
}
.dp-lugar-tabs a:hover { color: var(--dp-text,#111827); }
.dp-lugar-tabs a.is-active {
    color: var(--dp-turquesa-dark,#079aae);
    border-bottom-color: var(--dp-turquesa,#08a9bd);
}
/* En móvil, la última pestaña necesita un pequeño margen para no quedar pegada al borde difuminado */
@media (max-width: 600px) {
    .dp-lugar-tabs a:last-child { margin-right: 20px; }
}

/* --- Vista previa de fotos (dentro de Instalaciones) + botón a la galería completa --- */
.dp-photos-preview {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}
.dp-photos-preview-thumb {
    aspect-ratio: 1 / 1;
    border-radius: 12px;
    overflow: hidden;
    background: var(--dp-bg,#f4f5f7);
}
.dp-photos-preview-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.dp-photos-preview-btn {
    display: block;
    width: fit-content;
    margin: 0 auto 28px;
}
@media (max-width: 600px) {
    .dp-photos-preview { grid-template-columns: repeat(2, 1fr); }
}

/* --- Tarjetas de info: Características / Ideal para / Servicios --- */
.dp-info-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}
.dp-info-card {
    background: var(--dp-bg,#f9fafb);
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 20px;
}
.dp-info-cards .dp-info-card { margin-bottom: 0; }
.dp-info-card h3 { margin: 0 0 10px; font-size: 15px; font-weight: 700; }
.dp-info-tag-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 14px;
    color: var(--dp-text,#111827);
}
.dp-info-tag-list li { display: flex; align-items: center; gap: 8px; }
.dp-tag-icon-mask {
    display: inline-block;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    vertical-align: -3px;
    background-color: var(--dp-turquesa-dark,#079aae);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}
.dp-lugar-subheading { font-size: 17px; font-weight: 700; margin: 8px 0 14px; }

/* --- Ubicación: mapa + info en columnas --- */
.dp-lugar-location-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 24px;
    align-items: start;
}
.dp-lugar-location-map {
    height: 320px;
    border-radius: 12px;
    overflow: hidden;
    background: var(--dp-bg,#f9fafb);
}
@media (max-width: 780px) {
    .dp-lugar-location-grid { grid-template-columns: 1fr; }
    .dp-lugar-location-map { height: 240px; }
}

/* --- Cabecera de sección con enlace a la derecha (p.ej. "Opiniones de usuarios" / "Ver todas") --- */
.dp-lugar-section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.dp-lugar-section-header h2 { margin: 0; }
.dp-lugar-section-link {
    font-size: 14px;
    font-weight: 600;
    color: var(--dp-turquesa-dark,#079aae);
    text-decoration: none;
    white-space: nowrap;
}
.dp-lugar-section-link:hover { text-decoration: underline; }

/* --- Resumen de opiniones (histograma) --- */
.dp-reviews-overview { display: flex; flex-direction: column; gap: 16px; }
.dp-rating-summary {
    display: flex;
    gap: 24px;
    align-items: center;
    flex-wrap: wrap;
    background: var(--dp-bg,#f9fafb);
    border-radius: 14px;
    padding: 20px 22px;
}
.dp-rating-summary-score {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
}
.dp-rating-summary-score strong { font-size: 36px; font-weight: 800; line-height: 1; }
.dp-rating-summary-score span { font-size: 13px; color: var(--dp-text-muted,#6b7280); }
.dp-rating-summary-score .dp-review-rating { color: #f59e0b; font-size: 15px; }
.dp-rating-summary-bars { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 6px; }
.dp-rating-bar-row { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--dp-text-muted,#6b7280); }
.dp-rating-bar-track { flex: 1; height: 8px; border-radius: 6px; background: var(--dp-border,#e5e7eb); overflow: hidden; }
.dp-rating-bar-fill { height: 100%; background: #f59e0b; border-radius: 6px; }

/* --- Lista de opiniones: cada una como tarjeta con avatar y fecha relativa --- */
.dp-reviews-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; }
.dp-review-item {
    background: var(--dp-bg,#f9fafb);
    border-radius: 14px;
    padding: 16px 18px;
    border-bottom: none;
}
.dp-review-item-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.dp-review-item-head img { border-radius: 50%; flex: 0 0 auto; display: block; }
.dp-review-item-head strong { display: block; font-size: 14px; }
.dp-review-item-time { display: block; font-size: 12px; color: var(--dp-text-muted,#6b7280); }
.dp-review-item .dp-review-rating { display: block; margin-bottom: 6px; font-size: 14px; }
.dp-review-item-text { margin: 0; color: var(--dp-text,#111827); line-height: 1.6; }

.dp-reviews-all-btn { align-self: center; margin-top: 4px; }

@media (min-width: 700px) {
    .dp-reviews-overview {
        display: grid;
        grid-template-columns: minmax(240px, 320px) 1fr;
        align-items: start;
        gap: 24px;
    }
    .dp-reviews-all-btn { grid-column: 1 / -1; justify-self: center; }
}

/* --- Botón secundario (contorno), p.ej. "Ver todas las opiniones" --- */
.dp-lugar-page .dp-btn.dp-btn-outline {
    background: #fff !important;
    color: var(--dp-turquesa-dark,#079aae) !important;
    border: 1.5px solid var(--dp-turquesa,#08a9bd) !important;
    box-shadow: none !important;
}
.dp-lugar-page .dp-btn.dp-btn-outline:hover {
    background: var(--dp-bg,#f9fafb) !important;
    box-shadow: none !important;
}

/* --- CTA final (mismo patrón visual que la de home.css; se repite aquí
       porque esta página carga front.css de forma independiente) --- */
.dp-mascot-img { max-height: 200px; width: auto; filter: drop-shadow(0 8px 16px rgba(0,0,0,0.1)); }
.dp-mascot-small { max-height: 90px; flex: 0 0 auto; }
.dp-empresa-cta {
    background: var(--dp-bg,#f7fafc);
    border-radius: 16px;
    padding: 28px 24px;
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}
.dp-empresa-cta-text { flex: 1; min-width: 200px; }
.dp-empresa-cta-text h2 { margin: 0 0 6px; font-size: 18px; }
.dp-empresa-cta-text p { margin: 0; font-size: 14px; color: var(--dp-text-muted,#6b7280); }
.dp-lugar-cta-section { border-top: none; }
@media (max-width: 600px) {
    .dp-empresa-cta { flex-direction: column; text-align: center; }
}

.dp-btn {
    display: inline-block;
    padding: 12px 20px;
    border-radius: 24px;
    border: none;
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    text-align: center;
}
.dp-lugar-page .dp-btn {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle, rgba(255,255,255,.10) 0 1px, transparent 1.5px),
        linear-gradient(135deg, var(--dp-turquesa-light,#12b8c8), var(--dp-turquesa,#08a9bd)) !important;
    background-size: 14px 14px, 100% 100%;
    border: none !important;
    box-shadow: 0 4px 10px rgba(0,157,180,.18);
    transition: transform .18s ease, box-shadow .18s ease;
}
.dp-lugar-page .dp-btn:hover { transform: translateY(-1px); box-shadow: 0 7px 16px rgba(0,157,180,.24); }

/* --- Ajustes responsive --- */
@media (max-width: 600px) {
    .dp-lugar-titlerow h1 { font-size: 22px; }
    .dp-lugar-hero-image { height: 180px; }
    .dp-rating-summary { gap: 18px; }
    .dp-rating-summary-score strong { font-size: 28px; }
    .dp-lugar-tabs { top: 0; }
}

/* =========================================================
   Página de archivo Actividad + Ciudad (/{verbo}-{actividad}/{ciudad}/)
   Tarjetas compactas y modernas, mismo lenguaje visual que
   dp-similar-card / dp-search-result-card pero más pequeñas.
   ========================================================= */

.dp-archive-page {
    max-width: 1100px;
    margin: 0 auto;
    padding: 32px 20px 60px;
}

.dp-archive-breadcrumb {
    font-size: 13px;
    color: var(--dp-text-muted, #6b7280);
    margin: 0 0 10px;
}
.dp-archive-breadcrumb a {
    color: var(--dp-text-muted, #6b7280);
    text-decoration: none;
}
.dp-archive-breadcrumb a:hover { color: var(--dp-turquesa, #08a9bd); }
.dp-archive-breadcrumb span { margin: 0 6px; }

.dp-archive-header h1 {
    margin: 0 0 8px;
    font-size: 28px;
    font-weight: 800;
    color: var(--dp-text, #111827);
}

.dp-archive-count {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0 0 28px;
    font-size: 14px;
    color: var(--dp-text-muted, #6b7280);
}

.dp-archive-refine {
    color: var(--dp-turquesa, #08a9bd);
    font-weight: 700;
    text-decoration: none;
}
.dp-archive-refine:hover { text-decoration: underline; }

/* --- "Seguir" (ver includes/class-follows.php) --- */

/* Selectores reforzados (.dp-archive-page .dp-follow-box ...) y todas las
   propiedades heredables puestas explícitamente: el tema (Neve) aplica su
   propio estilo por defecto a <button>/<form> — text-transform, ancho
   100%, color de marca del tema — con una especificidad que puede empatar
   o superar a una clase suelta, y gana si su hoja de estilo carga después
   de esta. En vez de depender del orden de carga, se sobreescribe aquí
   explícitamente cada propiedad que el tema pudiera tocar (bug visual
   detectado el 25/08: botones enormes, azul genérico, texto en
   Mayúscula Inicial, apilados a ancho completo encima de la rejilla).  */
.dp-archive-page .dp-follow-box {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 22px;
    width: auto;
}
.dp-archive-page .dp-follow-form {
    display: inline-block;
    width: auto;
    margin: 0;
    padding: 0;
}
.dp-archive-page .dp-follow-box .dp-follow-btn,
.dp-archive-page a.dp-follow-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: auto;
    max-width: 100%;
    background: #fff;
    color: var(--dp-turquesa-dark, #079aae);
    border: 1.5px solid var(--dp-turquesa, #08a9bd);
    border-radius: 999px;
    padding: 7px 16px;
    margin: 0;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
    cursor: pointer;
    text-decoration: none;
    box-shadow: none;
    transition: background .15s ease, color .15s ease;
}
.dp-archive-page .dp-follow-box .dp-follow-btn:hover,
.dp-archive-page a.dp-follow-btn:hover {
    background: var(--dp-bg-tint, #e8f9fb);
    color: var(--dp-turquesa-dark, #079aae);
}
.dp-archive-page .dp-follow-box .dp-follow-btn.is-following {
    background: var(--dp-turquesa, #08a9bd);
    color: #fff;
}
.dp-archive-page .dp-follow-box .dp-follow-btn.is-following:hover { background: var(--dp-turquesa-dark, #079aae); }

.dp-archive-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 16px;
}

.dp-archive-card {
    text-decoration: none;
    color: var(--dp-text, #111827);
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    display: block;
    box-shadow: 0 1px 3px rgba(0,0,0,0.07);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.dp-archive-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 22px rgba(0,0,0,0.10);
}

.dp-archive-media {
    position: relative;
    height: 108px;
    overflow: hidden;
    background: linear-gradient(135deg, #eff6ff, #f9fafb);
}
.dp-archive-media img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform 0.3s ease;
}
.dp-archive-card:hover .dp-archive-media img { transform: scale(1.07); }

.dp-archive-noimg {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    color: var(--dp-turquesa, #08a9bd);
}
.dp-archive-noimg svg { width: 34px; height: 34px; opacity: 0.55; }
.dp-archive-noimg-emoji { font-size: 26px; }

.dp-archive-badge {
    position: absolute;
    top: 8px; left: 8px;
    background: rgba(255,255,255,0.95);
    color: #16a34a;
    font-size: 10px;
    font-weight: 800;
    padding: 3px 8px;
    border-radius: 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.12);
    letter-spacing: 0.2px;
}

.dp-archive-body {
    padding: 10px 12px 12px;
}

.dp-archive-name {
    margin: 0 0 4px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--dp-text, #111827);
}

.dp-archive-address {
    margin: 0 0 6px;
    font-size: 11.5px;
    color: var(--dp-text-muted, #6b7280);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dp-archive-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 6px;
}

.dp-archive-rating,
.dp-archive-price {
    font-size: 11.5px;
    font-weight: 700;
    color: var(--dp-text, #111827);
}
.dp-archive-rating-count {
    font-weight: 500;
    color: var(--dp-text-muted, #6b7280);
}
.dp-archive-price-unit {
    font-weight: 500;
    color: var(--dp-text-muted, #6b7280);
    margin-left: 2px;
}

/* Sistema de confianza (ver includes/class-trust.php): señales adicionales
   en la tarjeta de archivo, con el mismo tono discreto que rating/precio —
   no son el dato principal de la tarjeta, son un extra de contexto. */
.dp-archive-trust {
    font-size: 10.5px;
    font-weight: 600;
    color: var(--dp-turquesa, #08a9bd);
    background: rgba(8,169,189,0.08);
    padding: 2px 7px;
    border-radius: 20px;
    white-space: nowrap;
}

.dp-archive-chip {
    display: inline-block;
    background: var(--dp-bg, #f9fafb);
    border-radius: 10px;
    padding: 2px 9px;
    font-size: 10.5px;
    font-weight: 600;
    color: var(--dp-text, #111827);
}

@media (max-width: 480px) {
    .dp-archive-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
    .dp-archive-media { height: 92px; }
}

/* Paginación genérica (ver ronda "paginación", 24/08) — mismo estilo que
   .dp-tablon-pagination (assets/tablon.css), pero disponible en cualquier
   página que cargue front.css, sin depender de que también cargue
   tablon.css. Usada por el buscador, profesionales, eventos, la página de
   archivo actividad+ciudad y las opiniones de una ficha de lugar. */
.dp-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin: 28px 0;
    font-size: 14px;
}
.dp-pagination a { color: var(--dp-turquesa-dark,#079aae); text-decoration: none; font-weight: 600; }
.dp-pagination span { color: var(--dp-text-muted,#6b7280); }


/* ============================================================
   INICIO — REDISEÑO TARJETAS DE INSTALACIONES (30/08/2026)
   Bloque añadido y autocontenido: para revertir a mano basta con
   borrar desde esta línea hasta "FIN — REDISEÑO..." más abajo.
   También hay un script de un clic: revertir-instalaciones.command
   (en la raíz del plugin), que restaura esto y la plantilla PHP.
   ============================================================ */

.dp-facility-card {
    position: relative;
    border-radius: 18px;
    border-color: #DCE5EC;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    border-left-width: 4px;
    border-left-style: solid;
    border-left-color: #0891A8;
    padding-left: 18px;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.dp-facility-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.09);
    border-color: #0891A8;
}

.dp-facility-icon-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #E6F7FA;
    flex-shrink: 0;
    transition: background 0.15s ease;
}
.dp-facility-card:hover .dp-facility-icon-circle { background: #D6F0F4; }
.dp-facility-icon-circle .dp-facility-icon {
    width: 20px;
    height: 20px;
    background-color: #0891A8;
}
.dp-facility-icon-circle svg {
    width: 20px;
    height: 20px;
    color: #0891A8;
}

.dp-facility-card h3 { font-weight: 700; }

.dp-facility-qty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    margin-left: 4px;
    border-radius: 999px;
    background: #E6F7FA;
    color: #079AAE;
    font-size: 12px;
    font-weight: 700;
    vertical-align: middle;
}

.dp-facility-facts li {
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    padding: 7px 10px;
    margin-bottom: 8px;
    font-size: 13px;
}
.dp-fact-icon-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: #E6F7FA;
    flex-shrink: 0;
}
.dp-fact-icon-chip .dp-tag-icon-mask {
    width: 13px;
    height: 13px;
    background-color: #0891A8;
}

/* Familias de instalación: solo cambian el acento (borde izq., icono de
   cabecera y cápsula del número). Las chips de características se quedan
   siempre en turquesa a propósito, para no saturar de color la tarjeta. */
.dp-facility-fam-padel { border-left-color: #7C3AED; }
.dp-facility-fam-padel:hover { border-color: #7C3AED; }
.dp-facility-fam-padel .dp-facility-icon-circle { background: #F1EBFE; color: #7C3AED; }
.dp-facility-fam-padel:hover .dp-facility-icon-circle { background: #E6DBFC; }
.dp-facility-fam-padel .dp-facility-icon { background-color: #7C3AED; }
.dp-facility-fam-padel .dp-facility-qty { background: #F1EBFE; color: #7C3AED; }

.dp-facility-fam-piscina { border-left-color: #0284C7; }
.dp-facility-fam-piscina:hover { border-color: #0284C7; }
.dp-facility-fam-piscina .dp-facility-icon-circle { background: #E0F2FE; color: #0284C7; }
.dp-facility-fam-piscina:hover .dp-facility-icon-circle { background: #CDEBFC; }
.dp-facility-fam-piscina .dp-facility-icon { background-color: #0284C7; }
.dp-facility-fam-piscina .dp-facility-qty { background: #E0F2FE; color: #0284C7; }

.dp-facility-fam-gimnasio { border-left-color: #EA580C; }
.dp-facility-fam-gimnasio:hover { border-color: #EA580C; }
.dp-facility-fam-gimnasio .dp-facility-icon-circle { background: #FFEDD5; color: #EA580C; }
.dp-facility-fam-gimnasio:hover .dp-facility-icon-circle { background: #FEE0BB; }
.dp-facility-fam-gimnasio .dp-facility-icon { background-color: #EA580C; }
.dp-facility-fam-gimnasio .dp-facility-qty { background: #FFEDD5; color: #EA580C; }

.dp-facility-fam-infantil { border-left-color: #CA8A04; }
.dp-facility-fam-infantil:hover { border-color: #CA8A04; }
.dp-facility-fam-infantil .dp-facility-icon-circle { background: #FEF9C3; color: #CA8A04; }
.dp-facility-fam-infantil:hover .dp-facility-icon-circle { background: #FDF3A0; }
.dp-facility-fam-infantil .dp-facility-icon { background-color: #CA8A04; }
.dp-facility-fam-infantil .dp-facility-qty { background: #FEF9C3; color: #CA8A04; }

.dp-facility-fam-ceramica { border-left-color: #B45309; }
.dp-facility-fam-ceramica:hover { border-color: #B45309; }
.dp-facility-fam-ceramica .dp-facility-icon-circle { background: #FDECD8; color: #B45309; }
.dp-facility-fam-ceramica:hover .dp-facility-icon-circle { background: #FBDFC0; }
.dp-facility-fam-ceramica .dp-facility-icon { background-color: #B45309; }
.dp-facility-fam-ceramica .dp-facility-qty { background: #FDECD8; color: #B45309; }

.dp-facility-fam-bicicletas { border-left-color: #16A34A; }
.dp-facility-fam-bicicletas:hover { border-color: #16A34A; }
.dp-facility-fam-bicicletas .dp-facility-icon-circle { background: #DCFCE7; color: #16A34A; }
.dp-facility-fam-bicicletas:hover .dp-facility-icon-circle { background: #C6F6D9; }
.dp-facility-fam-bicicletas .dp-facility-icon { background-color: #16A34A; }
.dp-facility-fam-bicicletas .dp-facility-qty { background: #DCFCE7; color: #16A34A; }

.dp-facility-fam-aparcamiento { border-left-color: #475569; }
.dp-facility-fam-aparcamiento:hover { border-color: #475569; }
.dp-facility-fam-aparcamiento .dp-facility-icon-circle { background: #F1F5F9; color: #475569; }
.dp-facility-fam-aparcamiento:hover .dp-facility-icon-circle { background: #E2E8F0; }
.dp-facility-fam-aparcamiento .dp-facility-icon { background-color: #475569; }
.dp-facility-fam-aparcamiento .dp-facility-qty { background: #F1F5F9; color: #475569; }

/* FIN — REDISEÑO TARJETAS DE INSTALACIONES (30/08/2026) */


/* ============================================================
   INICIO — REDISEÑO TARJETAS DE ACTIVIDADES (31/08/2026)
   Bloque añadido y autocontenido: para revertir a mano basta con
   borrar desde esta línea hasta "FIN — REDISEÑO..." más abajo.
   También hay un script de un clic: revertir-actividades.command
   (en la raíz del plugin), que restaura esto y la plantilla PHP.
   Mismo criterio que el rediseño de Instalaciones, pero con franja
   superior de color (en vez de borde izquierdo) para diferenciar
   visualmente ambas secciones.
   ============================================================ */

.dp-activity-card {
    position: relative;
    overflow: hidden;
    border-radius: 14px;
    border-color: #DCE5EC;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    padding-top: 22px;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.dp-activity-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: #0891A8;
    transition: height 0.15s ease;
}
.dp-activity-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.09);
}
.dp-activity-card:hover::before { height: 5px; }

.dp-activity-icon-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #E6F7FA;
    flex-shrink: 0;
    transition: background 0.15s ease;
}
.dp-activity-card:hover .dp-activity-icon-circle { background: #D6F0F4; }
.dp-activity-icon-circle .dp-activity-icon {
    width: 24px;
    height: 24px;
    background-color: #0891A8;
}

.dp-activity-card h3 { font-weight: 700; font-size: 18px; }

.dp-activity-facts li {
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    padding: 7px 10px;
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: 500;
    color: #33415C;
}
.dp-activity-fact-icon-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: #E6F7FA;
    flex-shrink: 0;
}
.dp-activity-fact-icon-chip .dp-tag-icon-mask {
    width: 13px;
    height: 13px;
    background-color: #0891A8;
}

.dp-activity-details {
    font-size: 14px;
    color: #55647A;
    margin-top: 4px;
    line-height: 1.6;
}

/* Familias de actividad: agrupan actividades afines bajo un mismo color
   de acento (franja superior + icono de cabecera). Las chips de datos se
   quedan siempre en turquesa a propósito, igual que en Instalaciones, para
   no saturar de color la tarjeta. "otros" (icono trofeo genérico) se queda
   con el turquesa por defecto de arriba, sin regla propia. */
.dp-activity-fam-raqueta::before { background: #16A34A; }
.dp-activity-fam-raqueta .dp-activity-icon-circle { background: #DCFCE7; }
.dp-activity-fam-raqueta:hover .dp-activity-icon-circle { background: #C6F6D9; }
.dp-activity-fam-raqueta .dp-activity-icon { background-color: #16A34A; }

.dp-activity-fam-equipo::before { background: #EA580C; }
.dp-activity-fam-equipo .dp-activity-icon-circle { background: #FFEDD5; }
.dp-activity-fam-equipo:hover .dp-activity-icon-circle { background: #FEE0BB; }
.dp-activity-fam-equipo .dp-activity-icon { background-color: #EA580C; }

.dp-activity-fam-agua::before { background: #0284C7; }
.dp-activity-fam-agua .dp-activity-icon-circle { background: #E0F2FE; }
.dp-activity-fam-agua:hover .dp-activity-icon-circle { background: #CDEBFC; }
.dp-activity-fam-agua .dp-activity-icon { background-color: #0284C7; }

.dp-activity-fam-forma::before { background: #7C3AED; }
.dp-activity-fam-forma .dp-activity-icon-circle { background: #F1EBFE; }
.dp-activity-fam-forma:hover .dp-activity-icon-circle { background: #E6DBFC; }
.dp-activity-fam-forma .dp-activity-icon { background-color: #7C3AED; }

.dp-activity-fam-creativo::before { background: #DB2777; }
.dp-activity-fam-creativo .dp-activity-icon-circle { background: #FCE7F3; }
.dp-activity-fam-creativo:hover .dp-activity-icon-circle { background: #FAD1E8; }
.dp-activity-fam-creativo .dp-activity-icon { background-color: #DB2777; }

.dp-activity-fam-tecnico::before { background: #475569; }
.dp-activity-fam-tecnico .dp-activity-icon-circle { background: #F1F5F9; }
.dp-activity-fam-tecnico:hover .dp-activity-icon-circle { background: #E2E8F0; }
.dp-activity-fam-tecnico .dp-activity-icon { background-color: #475569; }

@media (max-width: 480px) {
    .dp-activity-icon-circle { width: 42px; height: 42px; }
    .dp-activity-icon-circle .dp-activity-icon { width: 21px; height: 21px; }
    .dp-activity-card h3 { font-size: 16px; }
}

/* FIN — REDISEÑO TARJETAS DE ACTIVIDADES (31/08/2026) */
