/**
 * Versión: 1.0.18. Última modificación: 2026-09-18.
 * Mantiene el aspecto rosa de los mapas originales sin alterar otros módulos de WordPress.
 */
.fbw-map-widget {
    font-family:inherit;
    color:#212529;
    width:100%;
    margin:0 auto
}
.fbw-map-widget * {
    box-sizing:border-box
}
.fbw-restaurant-card,.fbw-restaurant-card * {
    box-sizing:border-box
}
.fbw-map-widget [hidden],.fbw-map-more[hidden],.fbw-map-results[hidden],.fbw-clear-search[hidden] {
    display:none!important
}
.fbw-map-canvas {
    width:100%;
    height:450px;
    min-height:450px;
    background:#f8f5f6
}
.fbw-map-fallback {
    display:grid;
    place-items:center;
    text-align:center;
    padding:2rem;
    color:#5a4c52
}
.fbw-home-categories {
    width:100%;
    margin:0 auto;
    padding:1rem 0 1.2rem;
    text-align:center
}
.fbw-category-options {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    gap:0
}
.fbw-category-option {
    display:flex;
    flex-direction:column;
    align-items:center;
    min-width:0;
    text-align:center
}
.fbw-category-icon {
    display:flex;
    min-height:48px;
    align-items:center;
    justify-content:center
}
.fbw-category-option img {
    display:block;
    width:48px;
    height:48px;
    object-fit:contain
}
.fbw-category-option input {
    width:20px;
    height:20px;
    margin:.5rem 0 .2rem;
    accent-color:#ff0099;
    cursor:pointer
}
.fbw-category-option label {
    display:block;
    color:#212529;
    font-family:agenda-bold,AgendaMedium,Arial,sans-serif;
    font-size:1.5rem;
    font-weight:700;
    line-height:1.1;
    text-transform:uppercase;
    cursor:pointer
}
.fbw-home-categories p {
    margin:.65rem 0 0;
    font-family:agenda-light,Arial,sans-serif;
    font-size:1rem;
    text-align:center
}
.fbw-category-layout {
    display:grid;
    grid-template-columns:minmax(180px,1fr) minmax(0,3fr);
    gap:1.5rem;
    align-items:stretch
}
.fbw-map-filters {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:1rem
}
.fbw-map-filters h2 {
    font-family:agendablack,AgendaMedium,sans-serif;
    color:#ff0099;
    font-size:clamp(1.7rem,2.4vw,2.5rem);
    line-height:1.1;
    margin:0 0 .5rem
}
.fbw-map-filters label {
    display:flex;
    flex-direction:column;
    gap:.4rem;
    font-family:agenda-bold,sans-serif;
    font-size:1.1rem;
    font-weight:700;
    color:#212529
}
.fbw-map-filters select,.fbw-map-filters .fbw-autocomplete-input {
    width:100%;
    min-height:43px;
    border:1px solid #bdbdbd;
    border-radius:4px;
    padding:.5rem;
    background:#fff;
    color:#212529;
    font:inherit;
    font-size:1rem
}
.fbw-map-search {
    position:relative;
    margin:1.5rem 0 .6rem
}
.fbw-map-search input {
    display:block;
    width:100%;
    min-height:42px;
    padding:.55rem 2.4rem .55rem .8rem;
    border:2px solid #ff0099;
    border-radius:4px;
    font:inherit;
    font-size:1.05rem;
    background:#fff;
    color:#212529
}
.fbw-map-search input:focus {
    outline:0;
    box-shadow:0 0 12px #ff009955
}
.fbw-clear-search {
    position:absolute;
    right:.35rem;
    top:50%;
    transform:translateY(-50%);
    width:32px;
    height:32px;
    border:0;
    background:transparent;
    color:#333;
    font-size:1.7rem;
    line-height:1;
    cursor:pointer
}
#borrar {display:none!important}
.fbw-map-results {
    display:grid;
    gap:0
}
.fbw-restaurant-card {
    display:grid;
    grid-template-columns:270px minmax(0,300px) minmax(0,320px);
    gap:56px;
    justify-content:center;
    align-items:start;
    min-height:370px;
    padding:38px 16px;
    margin:0 0 20px;
    font-family:agenda-light,Arial,sans-serif;
    background:#f0ede6
}
.fbw-restaurant-card:nth-child(even) {
    background:#fff
}
.fbw-empty-offers-card {align-items:center;min-height:280px}
.fbw-empty-offers-card .fbw-restaurant-details {grid-column:2/-1}
.fbw-empty-offers-card .fbw-restaurant-details h3 {color:#c00073!important;font-size:clamp(24px,3vw,36px);line-height:1.2;margin:0!important}
.fbw-restaurant-image {
    display:block;
    width:230px;
    max-width:100%;
    height:230px;
    object-fit:cover
}
.fbw-restaurant-details {
    min-width:0;
    text-align:left!important;
    overflow-wrap:break-word
}
.fbw-restaurant-details h3 {
    color:#212529!important;
    font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    font-size:20px;
    font-weight:700;
    line-height:30px;
    text-align:left!important;
    padding:0!important;
    margin:0 0 28px!important
}
.fbw-restaurant-details p {
    color:#212529;
    margin:0 0 16px!important;
    padding:0!important;
    font-size:18px;
    text-align:left!important;
    word-spacing:normal!important;
    letter-spacing:normal!important
}
.fbw-restaurant-details .fbw-food-type {
    color:#ff0099;
    font-family:agenda-bold,sans-serif;
    font-size:18px;
    font-weight:700;
    line-height:18px;
    margin-bottom:13px!important;
    text-transform:uppercase
}
.fbw-restaurant-details .fbw-price-range {
    font-size:20px;
    font-weight:700;
    line-height:20px
}
.fbw-restaurant-details .fbw-address {
    font-family:agenda-light,Arial,sans-serif;
    line-height:27px
}
.fbw-restaurant-details a {
    display:block;
    color:#ff0099;
    margin:0 0 16px;
    font-family:agenda-bold,sans-serif;
    font-weight:700;
    font-size:20px;
    line-height:23px;
    text-decoration:none;
    overflow-wrap:anywhere
}
.fbw-restaurant-details .fbw-phone {color:#212529}
.fbw-restaurant-details a:hover {
    text-decoration:underline
}
.fbw-restaurant-offer {
    box-sizing:border-box;
    border:1px solid #ff0099;
    padding:1.2rem;
    min-width:0;
    width:100%;
    max-width:320px;
    font-family:agenda-light,Arial,sans-serif;
    font-size:1rem;
    line-height:1.4;
    text-align:left!important
}
.fbw-restaurant-offer>img {
    display:block;
    width:100%;
    max-height:90px;
    object-fit:contain;
    margin-bottom:26px
}
.fbw-offer-description {
    font-family:agenda-light,Arial,sans-serif;
    font-size:16px;
    font-weight:600;
    line-height:24px;
    margin:0!important;
    padding:0!important;
    overflow-wrap:anywhere
}
.fbw-list-offer:not(.fbw-offer-expanded) .fbw-offer-description {max-height:72px;overflow:hidden}
.fbw-list-offer.fbw-offer-collapsed .fbw-offer-price {display:none}
.fbw-offer-price {
    font-family:AgendaMedium,agenda-light,Arial,sans-serif;
    font-weight:700;
    margin:.55rem 0 0
}
.fbw-offer-toggle {
    border:0;
    padding:0;
    background:none;
    color:#ff0099;
    font-family:agendablack,Arial,sans-serif;
    font-size:20px;
    line-height:30px;
    cursor:pointer
}
.fbw-offer-toggle[hidden] {display:none!important}
.fbw-card-actions {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:center;
    gap:6px;
    margin-top:25px
}
.fbw-card-actions a,.fbw-card-actions button,.fbw-map-more button {
    border:1px solid #ff0099;
    border-radius:0;
    padding:.4rem .8rem;
    background:#fff;
    color:#ff0099;
    font-family:AgendaMedium,sans-serif;
    font-size:1rem;
    text-decoration:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center
}
.fbw-card-actions .fbw-reserve-link,.fbw-card-actions .fbw-map-link {
    background:#ff0099;
    color:#fff;
    border-color:#ff0099
}
.fbw-card-actions .fbw-share-button {
    background:#111;
    color:#fff;
    border-color:#111
}
.fbw-restaurant-offer .fbw-card-actions>a,.fbw-restaurant-offer .fbw-card-actions>button {
    min-width:0;
    width:100%;
    height:46px;
    margin:0;
    padding:3px;
    font-family:agenda-light,Arial,sans-serif;
    font-size:16px;
    line-height:1.15;
    text-align:center;
    white-space:normal
}
.fbw-restaurant-offer .fbw-reserve-link {font-size:18px!important;font-weight:600}
/* Las reglas antiguas por posición se conservan comentadas; ahora cada botón tiene su clase. */
/* .fbw-restaurant-offer .fbw-card-actions button:first-of-type {font-weight:700} */
/* .fbw-restaurant-offer .fbw-card-actions button:nth-of-type(2) {font-size:11px} */
.fbw-card-actions a:hover,.fbw-card-actions .fbw-map-link:hover,.fbw-map-more button:hover {
    background:#ff0099;
    color:#fff
}
.fbw-card-actions .fbw-share-button:hover {
    background:#111;
    color:#fff;
    border-color:#111
}
.fbw-map-more {
    display:flex;
    justify-content:center;
    padding:1.1rem
}
.fbw-map-overlay {
    position:absolute;
    z-index:10;
    width:260px;
    max-width:calc(100vw - 30px);
    padding:12px 16px;
    background:#fff;
    border:1px solid #ddd;
    border-radius:5px;
    box-shadow:0 3px 14px #0003
}
.fbw-map-overlay:after {
    content:"";
    position:absolute;
    top:100%;
    left:calc(50% - 10px);
    border-width:10px 10px 0;
    border-style:solid;
    border-color:#fff transparent transparent
}
.fbw-map-overlay>img {
    display:block;
    width:100%;
    height:150px;
    object-fit:contain;
    margin-bottom:.6rem
}
.fbw-overlay-title {
    font-family:agendablack,AgendaMedium,sans-serif;
    font-size:1.1rem;
    margin:0 0 .6rem
}
.fbw-overlay-offer {
    max-height:180px;
    overflow:auto
}
.fbw-map-overlay .fbw-offer-description {
    font-size:.9rem
}
.fbw-map-overlay .fbw-reserve-link {
    display:inline-block;
    border:1px solid #ff0099;
    color:#ff0099;
    text-decoration:none;
    padding:.3rem .65rem;
    margin-top:.7rem
}
.fbw-share-dialog {
    border:0;
    border-radius:8px;
    max-width:min(500px,calc(100vw - 30px));
    padding:2rem;
    box-shadow:0 8px 30px #0004
}
.fbw-share-dialog::backdrop {
    background:#0008
}
.fbw-share-dialog h2 {
    margin:0 0 .8rem
}
.fbw-share-channels {
    display:flex;
    flex-wrap:wrap;
    gap:.5rem;
    margin:1rem 0
}
.fbw-share-channels a,.fbw-share-channels button,.fbw-share-close {
    border:1px solid #ff0099;
    padding:.35rem .65rem;
    background:#fff;
    color:#c00073;
    text-decoration:none;
    font:inherit;
    cursor:pointer
}
.fbw-share-close {
    background:#ff0099;
    color:#fff
}
@media(max-width:1180px) {
    .fbw-restaurant-card {
        grid-template-columns:minmax(150px,230px) minmax(170px,270px) minmax(220px,320px);
        gap:clamp(18px,4vw,50px);
        padding-inline:clamp(20px,4vw,45px)
    }
}
@media(max-width:900px) {
    .fbw-category-layout {
        grid-template-columns:1fr
    }
    .fbw-map-filters {
        display:grid;
        grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
        align-items:end
    }
    .fbw-map-filters h2 {
        grid-column:1/-1
    }
    .fbw-restaurant-card {
        grid-template-columns:minmax(130px,230px) minmax(180px,1fr);
        gap:1.5rem
    }
    .fbw-restaurant-offer {
        grid-column:1/-1
    }
}
@media(max-width:560px) {
    .fbw-empty-offers-card .fbw-restaurant-details {grid-column:auto}
    .fbw-restaurant-card {
        grid-template-columns:1fr;
        padding:1rem;
        gap:.8rem;
        min-height:0
    }
    .fbw-restaurant-image {
        width:100%;
        height:210px
    }
    .fbw-restaurant-offer {
        grid-column:auto
    }
    .fbw-map-canvas {
        height:380px;
        min-height:380px
    }
    .fbw-category-option label {
        font-size:.9rem
    }
}
@media(max-width:360px) {
    .fbw-restaurant-offer {
        padding:.9rem
    }
    .fbw-restaurant-offer .fbw-card-actions {
        gap:2px
    }
    .fbw-restaurant-offer .fbw-card-actions>a,.fbw-restaurant-offer .fbw-card-actions>button {
        padding:.25rem;
        font-size:11px;
        line-height:1.1
    }
}
