/*
Theme Name: SaborMarket
Theme URI: 
Author: MarketPlace de Restaurantes
Author URI: 
Description: Tema moderno y altamente visual para el marketplace de restaurantes MP Restaurantes. Portada de alto impacto, directorio, fichas de restaurantes, favoritos y estilos responsive. Compatible con WooCommerce.
Version: 1.8.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sabormarket
Tags: food-and-drink, e-commerce, custom-logo, custom-menu, featured-images, full-width-template, theme-options, translation-ready
*/

:root {
    --sm-primary: #ff4d2e;
    --sm-primary-dark: #db351c;
    --sm-dark: #0d1117;
    --sm-dark-2: #18232d;
    --sm-text: #1d2933;
    --sm-muted: #6e7780;
    --sm-line: #e9ecef;
    --sm-soft: #fff7f2;
    --sm-soft-2: #f7f8f9;
    --sm-white: #ffffff;
    --sm-success: #18845a;
    --sm-shadow: 0 22px 60px rgba(16, 24, 32, .10);
    --sm-shadow-soft: 0 12px 35px rgba(16, 24, 32, .07);
    --sm-radius: 24px;
    --sm-radius-sm: 16px;
    --sm-shell: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--sm-text);
    background: var(--sm-white);
    font-family: Inter, Manrope, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.sm-shell {
    width: min(calc(100% - 40px), var(--sm-shell));
    margin-inline: auto;
}
.sm-section { padding: 94px 0; }
.sm-section--soft { background: var(--sm-soft-2); }

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid transparent;
    transition: .25s ease;
}
.site-header.is-scrolled {
    border-bottom-color: rgba(16,24,32,.08);
    box-shadow: 0 8px 30px rgba(16,24,32,.05);
}
.sm-header-inner {
    min-height: 82px;
    display: flex;
    align-items: center;
    gap: 28px;
}
.site-branding { flex: 0 0 auto; }
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { max-height: 52px; width: auto; }
.sm-wordmark {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 850;
    font-size: 1.28rem;
    letter-spacing: -.03em;
}
.sm-wordmark__mark {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    color: white;
    background: var(--sm-primary);
    border-radius: 11px;
    font-size: 1rem;
    box-shadow: 0 8px 20px rgba(255,90,54,.22);
}
.primary-navigation { margin-left: auto; display: flex; align-items: center; gap: 28px; }
.primary-navigation ul {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 28px;
    margin: 0;
    padding: 0;
}
.primary-navigation a {
    font-size: .94rem;
    font-weight: 700;
    color: #39434b;
    transition: color .2s ease;
}
.primary-navigation a:hover,
.primary-navigation .current-menu-item > a { color: var(--sm-primary); }
.sm-header-actions { display: flex; align-items: center; gap: 12px; }

/* Menu "Mi cuenta": agrupa Favoritos/Mis listados/Mensajes/Carrito/Mis pedidos
   detras de un solo desplegable, para que la barra principal no se amontone. */
.sm-account { position: relative; }
.sm-account__toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 0;
    padding: 4px 12px 4px 4px;
    border-radius: 999px;
    font-size: .94rem;
    font-weight: 700;
    color: #39434b;
    cursor: pointer;
    transition: background .2s ease;
}
.sm-account__toggle:hover,
.sm-account__toggle[aria-expanded="true"] { background: var(--sm-soft-2); }
.sm-account__avatar { border-radius: 50%; display: block; }
.sm-account__label { display: none; }
.sm-account__menu {
    position: absolute;
    right: 0;
    top: calc(100% + 10px);
    min-width: 210px;
    list-style: none;
    margin: 0;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--sm-line);
    border-radius: 14px;
    box-shadow: var(--sm-shadow-soft);
    display: none;
}
.sm-account.is-open .sm-account__menu { display: block; }
.sm-account__menu a {
    display: block;
    padding: 9px 10px;
    border-radius: 9px;
    font-size: .92rem;
    font-weight: 650;
    color: #39434b;
}
.sm-account__menu a:hover { background: var(--sm-soft-2); color: var(--sm-primary); }
.sm-account__divider { height: 1px; background: var(--sm-line); margin: 6px 4px; }
.sm-account__login { font-size: .94rem; font-weight: 750; color: #39434b; }
.sm-account__login:hover { color: var(--sm-primary); }
.sm-link-button { font-weight: 750; font-size: .92rem; padding: 10px 12px; }
.sm-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0 22px;
    border-radius: 14px;
    border: 0;
    color: #fff !important;
    background: var(--sm-primary) !important;
    font-weight: 800;
    box-shadow: 0 10px 26px rgba(255,90,54,.20);
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.sm-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(255,90,54,.28);
    background: var(--sm-primary-dark) !important;
}
.sm-button--small { min-height: 42px; padding: 0 16px; border-radius: 12px; font-size: .9rem; }
.sm-button--light { background: #fff !important; color: var(--sm-dark) !important; box-shadow: none; }
.sm-menu-toggle {
    display: none;
    background: transparent;
    border: 1px solid var(--sm-line);
    border-radius: 10px;
    padding: 8px 12px;
    font-weight: 800;
}

.sm-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 15% 22%, rgba(255, 90, 54, .09), transparent 32%),
        linear-gradient(180deg, #fff 0%, #fffdfa 100%);
}
.sm-hero::after {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    right: -220px;
    bottom: -220px;
    border-radius: 50%;
    background: rgba(255, 90, 54, .06);
}
.sm-hero__grid {
    min-height: 690px;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 56px;
    align-items: center;
    padding-top: 54px;
    padding-bottom: 78px;
}
.sm-eyebrow,
.sm-kicker {
    display: inline-block;
    color: var(--sm-primary);
    text-transform: uppercase;
    letter-spacing: .13em;
    font-size: .74rem;
    font-weight: 900;
}
.sm-hero h1,
.sm-section-heading h2,
.sm-promo h2,
.sm-owner h2,
.sm-page-header h1 {
    margin: 0;
    color: var(--sm-dark);
    line-height: 1.04;
    letter-spacing: -.045em;
}
.sm-hero h1 {
    margin-top: 18px;
    font-size: clamp(3.2rem, 5.8vw, 5.6rem);
    max-width: 720px;
}
.sm-hero__lead {
    max-width: 650px;
    margin: 24px 0 0;
    color: #5a646d;
    font-size: 1.12rem;
}
.sm-food-search {
    display: grid;
    grid-template-columns: .8fr 1fr auto;
    gap: 0;
    max-width: 760px;
    margin-top: 34px;
    padding: 7px;
    background: #fff;
    border: 1px solid var(--sm-line);
    border-radius: 18px;
    box-shadow: var(--sm-shadow-soft);
}
.sm-food-search input {
    min-width: 0;
    border: 0;
    outline: 0;
    padding: 0 18px;
    min-height: 52px;
    color: var(--sm-dark);
    background: transparent;
}
.sm-food-search input + input { border-left: 1px solid var(--sm-line); }
.sm-food-search button {
    border: 0;
    min-height: 52px;
    padding: 0 24px;
    border-radius: 13px;
    color: white;
    background: var(--sm-primary);
    font-weight: 850;
}
.sm-hero__trust {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 28px;
    max-width: 760px;
}
.sm-hero__trust div {
    padding-top: 14px;
    border-top: 1px solid var(--sm-line);
}
.sm-hero__trust strong,
.sm-hero__trust span { display: block; }
.sm-hero__trust strong { color: var(--sm-dark); font-size: .92rem; }
.sm-hero__trust span { margin-top: 3px; color: var(--sm-muted); font-size: .8rem; line-height: 1.4; }
.sm-hero__visual { position: relative; min-height: 540px; }
.sm-hero__image-wrap {
    position: absolute;
    inset: 20px 0 20px 20px;
    overflow: hidden;
    border-radius: 42px 42px 42px 110px;
    box-shadow: var(--sm-shadow);
    background: #f3f3f3;
}
.sm-hero__image-wrap img { width: 100%; height: 100%; object-fit: cover; }
.sm-floating-card {
    position: absolute;
    z-index: 2;
    width: 225px;
    padding: 18px;
    border: 1px solid rgba(255,255,255,.8);
    border-radius: 18px;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(14px);
    box-shadow: 0 18px 45px rgba(16,24,32,.15);
}
.sm-floating-card span,
.sm-floating-card strong,
.sm-floating-card small { display: block; }
.sm-floating-card span { color: var(--sm-primary); font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .09em; }
.sm-floating-card strong { margin-top: 6px; color: var(--sm-dark); font-size: 1rem; line-height: 1.3; }
.sm-floating-card small { margin-top: 7px; color: var(--sm-muted); line-height: 1.4; }
.sm-floating-card--top { top: 54px; left: -26px; }
.sm-floating-card--bottom { right: -26px; bottom: 50px; }

.sm-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 34px;
}
.sm-section-heading h2,
.sm-promo h2,
.sm-owner h2 { margin-top: 8px; font-size: clamp(2.35rem, 4vw, 3.7rem); }
.sm-section-heading p { max-width: 690px; margin: 16px auto 0; color: var(--sm-muted); }
.sm-section-heading--center { text-align: center; justify-content: center; }
.sm-text-link { color: var(--sm-primary); font-weight: 850; font-size: .92rem; white-space: nowrap; }

.sm-category-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}
.sm-category {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    column-gap: 14px;
    padding: 20px;
    min-height: 112px;
    border: 1px solid var(--sm-line);
    border-radius: 18px;
    background: #fff;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.sm-category:hover { transform: translateY(-4px); border-color: rgba(255,90,54,.35); box-shadow: var(--sm-shadow-soft); }
.sm-category__number {
    grid-row: 1 / 3;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--sm-soft);
    color: var(--sm-primary);
    font-size: .75rem;
    font-weight: 900;
}
.sm-category strong { align-self: end; color: var(--sm-dark); line-height: 1.2; }
.sm-category small { color: var(--sm-muted); align-self: start; }

.sm-restaurant-grid,
.sm-post-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.sm-restaurant-card {
    overflow: hidden;
    border-radius: 22px;
    border: 1px solid #eceff1;
    background: #fff;
    box-shadow: 0 10px 25px rgba(16,24,32,.04);
    transition: transform .25s ease, box-shadow .25s ease;
}
.sm-restaurant-card:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(16,24,32,.10); }
.sm-restaurant-card__media {
    position: relative;
    display: block;
    height: 200px;
    overflow: hidden;
    background: #f1f2f3;
}
.sm-restaurant-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.sm-restaurant-card:hover .sm-restaurant-card__media img { transform: scale(1.035); }
.sm-card-badge {
    position: absolute;
    left: 14px;
    top: 14px;
    padding: 7px 10px;
    border-radius: 999px;
    color: var(--sm-dark);
    background: rgba(255,255,255,.92);
    font-size: .7rem;
    font-weight: 900;
}
.sm-restaurant-card__body { padding: 18px; }
.sm-card-heading { display: flex; align-items: start; gap: 12px; justify-content: space-between; }
.sm-card-heading h3 { margin: 0; font-size: 1.05rem; line-height: 1.3; }
.sm-card-heading h3 a { color: var(--sm-dark); }
.sm-rating { flex: 0 0 auto; padding: 5px 8px; border-radius: 8px; color: #684a00; background: #fff1b8; font-size: .74rem; font-weight: 900; }
.sm-restaurant-card__body p { margin: 9px 0 15px; color: var(--sm-muted); font-size: .86rem; line-height: 1.55; }
.sm-card-meta { display: flex; flex-wrap: wrap; gap: 7px; }
.sm-card-meta span { padding: 6px 8px; border-radius: 8px; background: #f5f6f7; color: #5b656e; font-size: .72rem; font-weight: 700; }

.sm-step-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.sm-step-grid article {
    position: relative;
    padding: 34px;
    min-height: 250px;
    border-radius: 24px;
    background: #fff;
    border: 1px solid var(--sm-line);
}
.sm-step-grid article > span {
    display: inline-flex;
    min-width: 52px;
    color: var(--sm-primary);
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .12em;
}
.sm-step-grid h3 { margin: 50px 0 8px; color: var(--sm-dark); font-size: 1.35rem; }
.sm-step-grid p { margin: 0; color: var(--sm-muted); }

.sm-promo { padding-top: 32px; padding-bottom: 32px; }
.sm-promo__inner {
    min-height: 480px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    border-radius: 34px;
    background: var(--sm-dark);
    box-shadow: var(--sm-shadow);
}
.sm-promo__copy { padding: 62px; align-self: center; }
.sm-promo h2 { color: #fff; }
.sm-promo p { max-width: 550px; color: #cbd2d7; margin: 20px 0 26px; }
.sm-kicker--light { color: #ffb29f; }
.sm-promo__visual { min-height: 480px; }
.sm-promo__visual img { width: 100%; height: 100%; object-fit: cover; }

.sm-dish-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.sm-dish-card {
    display: block;
    overflow: hidden;
    border: 1px solid var(--sm-line);
    border-radius: 22px;
    background: #fff;
}
.sm-dish-card img { width: 100%; height: 190px; object-fit: cover; }
.sm-dish-card div { padding: 18px; }
.sm-dish-card strong,
.sm-dish-card span { display: block; }
.sm-dish-card strong { color: var(--sm-dark); font-size: 1.04rem; }
.sm-dish-card span { margin-top: 3px; color: var(--sm-muted); font-size: .82rem; }

.sm-owner__grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 64px;
    align-items: center;
}
.sm-owner p { max-width: 650px; color: var(--sm-muted); margin: 18px 0 26px; }
.sm-owner__panel {
    padding: 18px;
    border-radius: 26px;
    background: #fff;
    box-shadow: var(--sm-shadow-soft);
}
.sm-owner__panel div { padding: 22px 20px; border-bottom: 1px solid var(--sm-line); }
.sm-owner__panel div:last-child { border-bottom: 0; }
.sm-owner__panel span,
.sm-owner__panel strong { display: block; }
.sm-owner__panel span { color: var(--sm-primary); font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .09em; }
.sm-owner__panel strong { margin-top: 5px; color: var(--sm-dark); font-size: 1.02rem; }

.site-footer {
    padding: 74px 0 26px;
    color: #c6cdd2;
    background: var(--sm-dark);
}
.sm-footer-grid {
    display: grid;
    grid-template-columns: 1.6fr .8fr .8fr 1fr;
    gap: 48px;
}
.sm-wordmark--footer { color: #fff; }
.site-footer p { max-width: 390px; color: #9fa9b0; }
.site-footer h2 { margin: 0 0 14px; color: #fff; font-size: .92rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li + li { margin-top: 8px; }
.site-footer a { color: #bec6cc; }
.site-footer a:hover { color: #fff; }
.sm-footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-top: 54px;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,.09);
    color: #7f8a92;
    font-size: .82rem;
}

.sm-content-area { padding: 76px 0 96px; min-height: 60vh; }
.sm-page-header { margin-bottom: 34px; }
.sm-page-header h1 { font-size: clamp(2.5rem, 5vw, 4.8rem); margin-top: 8px; }
.sm-reading-width { max-width: 900px; }
.sm-article__hero { overflow: hidden; border-radius: 26px; margin-bottom: 36px; }
.sm-article__hero img { width: 100%; }
.sm-entry-content { font-size: 1.05rem; }
.sm-entry-content h2, .sm-entry-content h3, .sm-entry-content h4 { color: var(--sm-dark); line-height: 1.2; }
.sm-entry-content a { color: var(--sm-primary); text-decoration: underline; }
.sm-entry-content img { border-radius: 18px; }
.sm-empty-state { max-width: 720px; margin: 50px auto; text-align: center; padding: 50px; border-radius: 26px; background: var(--sm-soft-2); }
.sm-empty-state h1, .sm-empty-state h2 { color: var(--sm-dark); }

.navigation.pagination { margin-top: 36px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { padding: 9px 13px; border-radius: 10px; background: #f2f4f5; font-weight: 750; }
.page-numbers.current { color: #fff; background: var(--sm-primary); }

/* WooCommerce */
.woocommerce .woocommerce-breadcrumb { color: var(--sm-muted); margin-bottom: 24px; }
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
    width: auto !important;
    margin: 0 !important;
    padding: 14px;
    border: 1px solid var(--sm-line);
    border-radius: 20px;
    background: #fff;
}
.woocommerce ul.products li.product a img { border-radius: 14px; margin-bottom: 14px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--sm-dark); font-size: 1rem; font-weight: 800; }
.woocommerce ul.products li.product .price { color: var(--sm-primary); font-weight: 850; }
.woocommerce div.product div.images img { border-radius: 22px; }
.woocommerce div.product .product_title { color: var(--sm-dark); letter-spacing: -.03em; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--sm-primary); }
.woocommerce .quantity .qty { min-height: 48px; border: 1px solid var(--sm-line); border-radius: 10px; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error { border-top-color: var(--sm-primary); border-radius: 12px; }

/* GeoDirectory-friendly styling */
.geodir-listing-post,
.geodir-post,
.geodir-category-list-view .geodir-post { border-radius: 18px !important; overflow: hidden; border-color: var(--sm-line) !important; }
.geodir-post-title a { color: var(--sm-dark) !important; font-weight: 850; }
.geodir-search-container,
.geodir-search-form-wrapper { border-radius: 18px; }

@media (max-width: 1100px) {
    .sm-header-actions .sm-link-button { display: none; }
    .primary-navigation ul { gap: 18px; }
    .sm-hero__grid { grid-template-columns: 1fr 1fr; gap: 36px; }
    .sm-restaurant-grid, .sm-post-grid, .sm-dish-grid { grid-template-columns: repeat(2, 1fr); }
    .sm-category-grid { grid-template-columns: repeat(2, 1fr); }
    .sm-footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
    .sm-footer-grid > :last-child { display: none; }
}

@media (max-width: 860px) {
    .sm-shell { width: min(calc(100% - 28px), var(--sm-shell)); }
    .sm-section { padding: 70px 0; }
    .sm-header-inner { min-height: 72px; }
    .sm-menu-toggle { display: inline-flex; margin-left: auto; }
    .primary-navigation {
        position: absolute;
        left: 14px;
        right: 14px;
        top: calc(100% + 6px);
        display: none;
        padding: 14px;
        border: 1px solid var(--sm-line);
        border-radius: 16px;
        background: #fff;
        box-shadow: var(--sm-shadow-soft);
    }
    .primary-navigation.is-open { display: block; }
    .primary-navigation ul { display: block; }
    .primary-navigation li + li { margin-top: 3px; }
    .primary-navigation a { display: block; padding: 10px 8px; }
    .sm-header-actions { display: none; }

    /* En movil, "Mi cuenta" no necesita su propio desplegable: sus enlaces
       simplemente se suman al final de la misma lista colapsable. */
    .sm-account { position: static; margin-top: 10px; }
    .sm-account__toggle { display: none; }
    .sm-account__label {
        display: block;
        margin: 4px 8px 4px;
        font-size: .72rem;
        text-transform: uppercase;
        letter-spacing: .08em;
        font-weight: 800;
        color: #8a939b;
    }
    .sm-account__menu {
        position: static;
        display: block;
        margin: 0;
        padding: 0;
        border: 0;
        box-shadow: none;
    }
    .sm-account__menu li + li { margin-top: 3px; }
    .sm-account__divider { display: none; }
    .sm-account__login { display: block; padding: 10px 8px; margin-top: 10px; }
    .sm-hero__grid { grid-template-columns: 1fr; min-height: 0; padding-top: 48px; }
    .sm-hero__copy { order: 1; }
    .sm-hero__visual { order: 2; min-height: 520px; }
    .sm-hero h1 { font-size: clamp(3rem, 10vw, 4.8rem); }
    .sm-food-search { grid-template-columns: 1fr; gap: 6px; padding: 8px; }
    .sm-food-search input + input { border-left: 0; border-top: 1px solid var(--sm-line); }
    .sm-hero__trust { grid-template-columns: 1fr; }
    .sm-hero__image-wrap { inset: 10px; border-radius: 34px 34px 34px 70px; }
    .sm-floating-card--top { left: 0; }
    .sm-floating-card--bottom { right: 0; }
    .sm-step-grid { grid-template-columns: 1fr; }
    .sm-promo__inner { grid-template-columns: 1fr; }
    .sm-promo__copy { padding: 42px 34px; }
    .sm-promo__visual { min-height: 340px; }
    .sm-owner__grid { grid-template-columns: 1fr; gap: 36px; }
    .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .sm-section { padding: 56px 0; }
    .sm-section-heading { align-items: start; flex-direction: column; gap: 12px; }
    .sm-hero__grid { padding-bottom: 54px; }
    .sm-hero h1 { font-size: clamp(2.7rem, 13vw, 4rem); }
    .sm-hero__visual { min-height: 430px; }
    .sm-floating-card { width: 190px; padding: 14px; }
    .sm-floating-card--top { top: 30px; }
    .sm-floating-card--bottom { bottom: 22px; }
    .sm-category-grid,
    .sm-restaurant-grid,
    .sm-post-grid,
    .sm-dish-grid { grid-template-columns: 1fr; }
    .sm-category-grid { gap: 10px; }
    .sm-restaurant-card__media { height: 230px; }
    .sm-promo__inner { width: 100%; border-radius: 24px; }
    .sm-promo__copy { padding: 34px 26px; }
    .sm-footer-grid { grid-template-columns: 1fr; }
    .sm-footer-grid > :last-child { display: block; }
    .sm-footer-bottom { flex-direction: column; }
    .woocommerce ul.products { grid-template-columns: 1fr; }
}


/* ======================================================================
   MP Restaurantes integration - SaborMarket 1.1
   ====================================================================== */
.sm-card-media-wrap { position: relative; }
.sm-card-favorite.mp-tarjeta-favorito {
    z-index: 4;
    top: 14px;
    right: 14px;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.68);
    background: rgba(13,17,23,.72);
    color: #fff;
    font-size: 20px;
    line-height: 1;
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.sm-card-address {
    margin: 0 0 13px;
    color: var(--sm-muted);
    font-size: .79rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sm-directory-page { background: #f7f8f9; min-height: 70vh; }
.sm-directory-hero {
    padding: 64px 0 50px;
    color: #fff;
    background:
        radial-gradient(circle at 78% 12%, rgba(255,77,46,.38), transparent 25%),
        linear-gradient(115deg, #0b0e13 0%, #151b22 58%, #0d1117 100%);
}
.sm-directory-hero h1 {
    max-width: 820px;
    margin: 7px 0 12px;
    color: #fff;
    font-size: clamp(2.6rem, 6vw, 5rem);
    line-height: .98;
    letter-spacing: -.055em;
}
.sm-directory-hero p { max-width: 720px; margin: 0; color: #c9d0d6; font-size: 1.06rem; }
.sm-directory-body { padding: 34px 0 86px; }
.sm-directory-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
    padding: 18px 20px;
    border: 1px solid var(--sm-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(16,24,32,.04);
}
.sm-directory-toolbar strong,
.sm-directory-toolbar span { display: block; }
.sm-directory-toolbar strong { color: var(--sm-dark); font-size: 1.02rem; }
.sm-directory-toolbar span { margin-top: 2px; color: var(--sm-muted); font-size: .83rem; }
.sm-directory-results {
    display: grid;
    grid-template-columns: 286px minmax(0, 1fr);
    gap: 26px;
    align-items: start;
}
.sm-directory-results > .mp-buscador {
    grid-column: 1;
    position: sticky;
    top: 106px;
}
.sm-directory-results > .mp-grid-listados,
.sm-directory-results > .mp-paginacion,
.sm-directory-results > .mp-sin-resultados {
    grid-column: 2;
}

/* Search/filter panel from MP Restaurantes */
.mp-buscador {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 0;
    padding: 20px;
    border: 1px solid var(--sm-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(16,24,32,.055);
}
.mp-buscador::before {
    content: "Filtrar restaurantes";
    display: block;
    margin-bottom: 1px;
    color: var(--sm-dark);
    font-size: 1.03rem;
    font-weight: 850;
    letter-spacing: -.02em;
}
.mp-buscador input,
.mp-buscador select {
    width: 100%;
    min-height: 46px;
    padding: 0 13px;
    border: 1px solid #dfe3e6;
    border-radius: 12px;
    background: #fff;
    color: var(--sm-text);
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.mp-buscador input:focus,
.mp-buscador select:focus {
    border-color: var(--sm-primary);
    box-shadow: 0 0 0 4px rgba(255,77,46,.09);
}
.mp-buscador .mp-btn-primario {
    min-height: 48px;
    border: 0;
    border-radius: 12px;
    background: var(--sm-primary);
    color: #fff;
    font-weight: 850;
    box-shadow: 0 10px 24px rgba(255,77,46,.18);
}

/* Listing cards from MP Restaurantes */
.mp-grid-listados {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 0;
}
.mp-tarjeta {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--sm-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(16,24,32,.055);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.mp-tarjeta:hover {
    transform: translateY(-3px);
    border-color: rgba(255,77,46,.25);
    box-shadow: 0 18px 42px rgba(16,24,32,.10);
}
.mp-tarjeta-imagen { display: block; overflow: hidden; background: #eee; }
.mp-tarjeta-imagen img,
.mp-tarjeta-imagen-vacia {
    width: 100%;
    height: 205px;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}
.mp-tarjeta:hover .mp-tarjeta-imagen img { transform: scale(1.035); }
.mp-tarjeta-imagen-vacia {
    background: linear-gradient(135deg, #eceff1, #f7f8f9);
}
.mp-tarjeta-favorito {
    top: 13px;
    right: 13px;
    width: 39px;
    height: 39px;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 50%;
    background: rgba(13,17,23,.68);
    color: #fff;
    box-shadow: 0 8px 22px rgba(0,0,0,.16);
    backdrop-filter: blur(8px);
}
.mp-tarjeta-cuerpo { padding: 17px 18px 18px; }
.mp-tarjeta-titulo { margin: 0 0 7px; color: var(--sm-dark); font-size: 1.08rem; line-height: 1.2; }
.mp-tarjeta-titulo a { color: inherit; }
.mp-tarjeta-rating { display: flex; align-items: center; gap: 7px; font-size: .78rem; }
.mp-stars { color: #f1a51d; letter-spacing: .04em; }
.mp-tarjeta-categoria,
.mp-tarjeta-precio,
.mp-tarjeta-distancia { margin: 5px 0 0; color: var(--sm-muted); font-size: .78rem; }
.mp-tarjeta-precio { color: var(--sm-primary); font-weight: 850; }
.mp-paginacion { display: flex; gap: 7px; margin: 28px 0 0; }
.mp-pagina-link {
    display: grid;
    min-width: 38px;
    min-height: 38px;
    place-items: center;
    padding: 0 11px;
    border: 1px solid var(--sm-line);
    border-radius: 10px;
    background: #fff;
    color: var(--sm-dark);
    font-weight: 800;
}
.mp-pagina-link.activo { border-color: var(--sm-primary); background: var(--sm-primary); color: #fff; }
.mp-sin-resultados {
    padding: 44px;
    border-radius: 20px;
    background: #fff;
    border: 1px solid var(--sm-line);
    color: var(--sm-muted);
}

/* Single restaurant injected by MP Restaurantes */
.sm-restaurant-single-wrap { padding: 28px 0 90px; background: #f8f9fa; }
.sm-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 0 22px;
    color: #77818a;
    font-size: .8rem;
}
.sm-breadcrumb a:hover { color: var(--sm-primary); }
.sm-restaurant-single .mp-ficha {
    padding: 0;
    border: 0;
    background: transparent;
}
.mp-ficha-cabecera {
    position: relative;
    margin-bottom: 18px;
    padding: 28px 30px;
    border: 1px solid var(--sm-line);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(16,24,32,.05);
}
.mp-ficha-titulo {
    max-width: 850px;
    margin: 0 0 8px;
    color: var(--sm-dark);
    font-size: clamp(2.1rem, 5vw, 4.4rem);
    line-height: 1;
    letter-spacing: -.055em;
}
.mp-ficha-rating { margin: 0 0 8px; }
.mp-ficha-direccion { margin: 0 0 15px; color: var(--sm-muted); }
.mp-btn,
.mp-btn-primario,
.mp-btn-favorito {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid #dfe3e6;
    border-radius: 12px;
    background: #fff;
    color: var(--sm-dark);
    font-weight: 800;
    text-decoration: none;
}
.mp-btn-primario { border-color: var(--sm-primary); background: var(--sm-primary); color: #fff; }
.mp-btn-favorito { border-color: rgba(255,77,46,.25); color: var(--sm-primary); background: #fff7f4; }
.mp-ficha-galeria {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr;
    grid-auto-rows: 250px;
    gap: 10px;
    margin: 0 0 22px;
    overflow: hidden;
    border-radius: 24px;
}
.mp-ficha-galeria-item:first-child { grid-row: span 2; }
.mp-ficha-galeria img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.mp-ficha-cuerpo { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, .65fr); gap: 24px; }
.mp-ficha-principal,
.mp-ficha-sidebar {
    min-width: 0;
    border: 1px solid var(--sm-line);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(16,24,32,.045);
}
.mp-ficha-principal { padding: 28px; }
.mp-ficha-sidebar {
    position: sticky;
    top: 105px;
    align-self: start;
    padding: 24px;
}
.mp-ficha-principal h2,
.mp-ficha-sidebar h2,
.mp-ficha-similares h2 { color: var(--sm-dark); letter-spacing: -.035em; }
.mp-ficha-descripcion { color: #48525a; }
.mp-ficha-info { list-style: none; padding: 0; margin: 0; }
.mp-ficha-info li { padding: 10px 0; border-bottom: 1px solid var(--sm-line); }
.mp-mapa { height: 360px; overflow: hidden; border-radius: 18px; background: #e9edf0; }
.mp-ficha-similares {
    margin-top: 28px;
    padding: 28px;
    border: 1px solid var(--sm-line);
    border-radius: 22px;
    background: #fff;
}
.mp-ficha-similares .mp-grid-listados { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mp-ficha-similares .mp-tarjeta-imagen img,
.mp-ficha-similares .mp-tarjeta-imagen-vacia { height: 170px; }

/* Front-end owner/account forms from MP Restaurantes */
.mp-form-listado,
.mp-mis-listados,
.mp-login-prompt {
    padding: 28px;
    border: 1px solid var(--sm-line);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(16,24,32,.05);
}
.mp-form-listado label { color: var(--sm-dark); font-weight: 800; }
.mp-form-listado input[type=text],
.mp-form-listado input[type=email],
.mp-form-listado input[type=url],
.mp-form-listado textarea,
.mp-form-listado select {
    max-width: none;
    min-height: 46px;
    padding: 10px 13px;
    border: 1px solid #dfe3e6;
    border-radius: 12px;
    background: #fff;
}
.mp-form-listado textarea { min-height: 130px; }
.mp-tabla-listados {
    overflow: hidden;
    border: 1px solid var(--sm-line);
    border-radius: 16px;
    background: #fff;
}
.mp-tabla-listados th,
.mp-tabla-listados td { padding: 13px 12px; border-bottom: 1px solid var(--sm-line); }
.mp-exito,
.mp-error { padding: 13px 16px; border-radius: 12px; }

/* Category shortcode from MP Restaurantes */
.mp-categorias-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0,1fr));
    gap: 12px;
}
.mp-categoria-tile {
    position: relative;
    min-height: 150px;
    display: flex;
    align-items: end;
    padding: 16px;
    overflow: hidden;
    border-radius: 18px;
    color: #fff;
    background: var(--sm-dark);
    background-size: cover;
    background-position: center;
}
.mp-categoria-tile::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 22%, rgba(0,0,0,.76));
}
.mp-categoria-tile-nombre,
.mp-categoria-tile-icono { position: relative; z-index: 2; }
.mp-categoria-tile-nombre { font-weight: 850; }

@media (max-width: 980px) {
    .sm-directory-results { grid-template-columns: 1fr; }
    .sm-directory-results > .mp-buscador,
    .sm-directory-results > .mp-grid-listados,
    .sm-directory-results > .mp-paginacion,
    .sm-directory-results > .mp-sin-resultados { grid-column: 1; }
    .sm-directory-results > .mp-buscador { position: static; grid-template-columns: repeat(2, minmax(0,1fr)); }
    .sm-directory-results > .mp-buscador::before { grid-column: 1 / -1; }
    .mp-ficha-cuerpo { grid-template-columns: 1fr; }
    .mp-ficha-sidebar { position: static; }
    .mp-ficha-galeria { grid-template-columns: 1fr 1fr; grid-auto-rows: 220px; }
    .mp-ficha-galeria-item:first-child { grid-row: span 1; grid-column: span 2; }
    .mp-ficha-similares .mp-grid-listados { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mp-categorias-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 660px) {
    .sm-directory-hero { padding: 46px 0 38px; }
    .sm-directory-toolbar { align-items: flex-start; flex-direction: column; }
    .sm-directory-results > .mp-buscador { grid-template-columns: 1fr; }
    .sm-directory-results > .mp-buscador::before { grid-column: auto; }
    .mp-grid-listados { grid-template-columns: 1fr; }
    .mp-tarjeta-imagen img,
    .mp-tarjeta-imagen-vacia { height: 225px; }
    .mp-ficha-cabecera { padding: 22px; }
    .mp-ficha-galeria { display: flex; overflow-x: auto; border-radius: 18px; }
    .mp-ficha-galeria-item { flex: 0 0 88%; }
    .mp-ficha-galeria img { height: 250px; border-radius: 18px; }
    .mp-ficha-principal,
    .mp-ficha-sidebar,
    .mp-ficha-similares { padding: 20px; }
    .mp-ficha-similares .mp-grid-listados { grid-template-columns: 1fr; }
    .mp-categorias-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .mp-tabla-listados { display: block; overflow-x: auto; }
}


/* Utility pages: favorites / my listings / add listing */
.sm-page-hero {
    padding: 64px 0 42px;
}
.sm-page-hero--soft {
    background: linear-gradient(180deg, #fff7f2 0%, #ffffff 100%);
}
.sm-page-hero--dark {
    color: #fff;
    background:
        radial-gradient(circle at 78% 12%, rgba(255,77,46,.32), transparent 25%),
        linear-gradient(115deg, #0b0e13 0%, #151b22 58%, #0d1117 100%);
}
.sm-page-hero--dark h1,
.sm-page-hero--dark p,
.sm-page-hero--dark .sm-kicker { color: inherit; }
.sm-page-hero--dark p { color: #c9d0d6; }
.sm-page-hero__inner h1 {
    margin: 8px 0 12px;
    font-size: clamp(2.6rem, 5vw, 4.8rem);
    letter-spacing: -.055em;
    line-height: 1;
}
.sm-page-hero__inner p {
    max-width: 760px;
    margin: 0;
    color: var(--sm-muted);
    font-size: 1.02rem;
}
.sm-page-body {
    padding: 10px 0 88px;
    background: #f7f8f9;
}
.sm-page-body__wide {
    max-width: var(--sm-shell);
}
.sm-article--utility {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.sm-utility-page .sm-entry-content > *:first-child { margin-top: 0; }
.sm-utility-page .mp-grid-listados {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sm-utility-page .mp-mis-listados,
.sm-utility-page .mp-form-listado,
.sm-utility-page .mp-login-prompt {
    box-shadow: 0 16px 40px rgba(16,24,32,.06);
}
.sabormarket-fallback-thumb {
    object-fit: cover;
}

@media (max-width: 1024px) {
    .sm-utility-page .mp-grid-listados {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* Enhanced single gallery */
.sm-gallery {
    margin: 0 0 22px;
}
.sm-gallery__stage {
    position: relative;
    overflow: hidden;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(16,24,32,.06);
}
.sm-gallery__slide {
    display: none;
    aspect-ratio: 16 / 8.8;
    overflow: hidden;
    background: #eff2f4;
}
.sm-gallery__slide.is-active {
    display: block;
}
.sm-gallery__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.sm-gallery__nav,
.sm-gallery__overlay-nav,
.sm-gallery__close {
    position: absolute;
    z-index: 3;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 50%;
    background: rgba(13,17,23,.62);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    backdrop-filter: blur(10px);
    box-shadow: 0 10px 26px rgba(0,0,0,.18);
}
.sm-gallery__nav--prev,
.sm-gallery__overlay-nav--prev { left: 16px; top: calc(50% - 24px); }
.sm-gallery__nav--next,
.sm-gallery__overlay-nav--next { right: 16px; top: calc(50% - 24px); }
.sm-gallery__thumbs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(82px, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.sm-gallery__thumb {
    padding: 0;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(16,24,32,.05);
}
.sm-gallery__thumb.is-active {
    border-color: var(--sm-primary);
    transform: translateY(-2px);
}
.sm-gallery__thumb img {
    width: 100%;
    height: 82px;
    object-fit: cover;
}
.sm-gallery__zoom-note {
    margin-top: 10px;
    color: var(--sm-muted);
    font-size: .82rem;
    text-align: right;
}
.sm-gallery__lightbox {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: grid;
    place-items: center;
    padding: 40px;
    background: rgba(7, 10, 14, .92);
}
.sm-gallery__lightbox[hidden] { display: none !important; }
.sm-gallery__lightbox-image {
    width: auto;
    max-width: min(92vw, 1280px);
    max-height: 84vh;
    border-radius: 20px;
    box-shadow: 0 24px 80px rgba(0,0,0,.35);
}
.sm-gallery__close {
    top: 18px;
    right: 18px;
    font-size: 34px;
}
.sm-gallery__counter {
    position: absolute;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.14);
    color: #fff;
    font-weight: 800;
    backdrop-filter: blur(10px);
}

/* Comment / review styling */
.sm-comments-area {
    margin-top: 34px;
}
.sm-comments-heading {
    margin-bottom: 18px;
}
.sm-comments-heading h2 {
    margin: 8px 0 10px;
    color: var(--sm-dark);
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: -.04em;
}
.sm-comments-heading p {
    margin: 0;
    color: var(--sm-muted);
}
.sm-comments-card {
    padding: 28px;
    border: 1px solid var(--sm-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(16,24,32,.05);
}
.sm-comments-card h2,
.sm-comments-card h3,
.sm-comments-card .comments-title {
    color: var(--sm-dark);
    letter-spacing: -.03em;
}
.sm-comments-card .comment-list {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
}
.sm-comments-card .comment-list > li + li {
    margin-top: 18px;
}
.sm-comments-card .comment-body {
    padding: 18px 18px 16px;
    border: 1px solid var(--sm-line);
    border-radius: 18px;
    background: #fff;
}
.sm-comments-card .comment-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
    font-size: .84rem;
}
.sm-comments-card .comment-author img {
    border-radius: 50%;
}
.sm-comments-card .comment-author .fn {
    color: var(--sm-dark);
    font-weight: 800;
}
.sm-comments-card .comment-metadata a,
.sm-comments-card .reply a {
    color: var(--sm-primary);
    font-weight: 700;
}
.sm-comments-card .comment-content p:last-child {
    margin-bottom: 0;
}
.sm-comments-card .comment-respond {
    margin-top: 24px;
    padding: 24px;
    border-radius: 20px;
    background: linear-gradient(180deg, #fff9f6 0%, #fff 100%);
    border: 1px solid #ffe0d8;
}
.sm-comments-card .comment-reply-title {
    margin: 0 0 8px;
    color: var(--sm-dark);
    font-size: 1.5rem;
}
.sm-comments-card .comment-notes,
.sm-comments-card .logged-in-as,
.sm-comments-card .comment-form-cookies-consent,
.sm-comments-card .form-submit,
.sm-comments-card .comment-form-rating {
    color: var(--sm-muted);
    font-size: .92rem;
}
.sm-comments-card .comment-form {
    display: grid;
    gap: 16px;
}
.sm-comments-card .comment-form label {
    display: block;
    margin-bottom: 8px;
    color: var(--sm-dark);
    font-weight: 800;
}
.sm-comments-card .comment-form input[type="text"],
.sm-comments-card .comment-form input[type="email"],
.sm-comments-card .comment-form input[type="url"],
.sm-comments-card .comment-form select,
.sm-comments-card .comment-form textarea {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid #dfe3e6;
    border-radius: 14px;
    background: #fff;
    color: var(--sm-text);
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.sm-comments-card .comment-form textarea {
    min-height: 180px;
    resize: vertical;
}
.sm-comments-card .comment-form input:focus,
.sm-comments-card .comment-form select:focus,
.sm-comments-card .comment-form textarea:focus {
    border-color: var(--sm-primary);
    box-shadow: 0 0 0 4px rgba(255,77,46,.09);
}
.sm-comments-card .submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0 22px;
    border: 0;
    border-radius: 14px;
    color: #fff;
    background: var(--sm-primary);
    font-weight: 800;
    box-shadow: 0 10px 26px rgba(255,90,54,.20);
}

@media (max-width: 860px) {
    .sm-gallery__slide { aspect-ratio: 4 / 3; }
    .sm-gallery__lightbox { padding: 20px; }
    .sm-gallery__nav,
    .sm-gallery__overlay-nav,
    .sm-gallery__close { width: 42px; height: 42px; }
    .sm-comments-card { padding: 18px; }
}


/* v1.5.0 - GeoDirectory-inspired search results with split map */
:root { --sm-shell-wide: 1480px; }
.sm-wide-shell { width: min(calc(100% - 36px), var(--sm-shell-wide)); margin-inline: auto; }
.sm-gd-directory { min-height: 70vh; background: #f5f6f7; }
.sm-gd-titlebar { padding: 34px 0 24px; background: #fff; border-bottom: 1px solid var(--sm-line); }
.sm-gd-breadcrumb { display:flex; gap:7px; flex-wrap:wrap; color:#869099; font-size:.78rem; margin-bottom:12px; }
.sm-gd-breadcrumb a:hover { color:var(--sm-primary); }
.sm-gd-titlebar h1 { margin:0; color:var(--sm-dark); font-size:clamp(2rem,4vw,3.5rem); line-height:1.02; letter-spacing:-.05em; }
.sm-gd-titlebar p { margin:9px 0 0; color:var(--sm-muted); }
.sm-gd-search-section { position:relative; z-index:10; padding:18px 0; background:#fff; border-bottom:1px solid var(--sm-line); }
.sm-gd-search.mp-buscador { position:static; display:grid; grid-template-columns:1.15fr 1.15fr .8fr .65fr .62fr auto; gap:8px; margin:0; padding:8px; border:1px solid #e5e8eb; border-radius:18px; box-shadow:0 12px 34px rgba(16,24,32,.07); }
.sm-gd-search.mp-buscador::before { display:none; }
.sm-gd-field { min-width:0; display:flex; flex-direction:column; justify-content:center; padding:5px 12px; border-right:1px solid #eceff1; }
.sm-gd-field span { margin-bottom:2px; color:#8a939b; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.sm-gd-search .sm-gd-field input,
.sm-gd-search .sm-gd-field select { min-height:30px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:var(--sm-dark); font-size:.91rem; }
.sm-gd-search .sm-gd-field input:focus,
.sm-gd-search .sm-gd-field select:focus { border:0; box-shadow:none; }
.sm-gd-search__button { min-width:112px; border:0; border-radius:13px; background:var(--sm-primary); color:#fff; font-weight:850; }
.sm-gd-main-section { padding:22px 0 70px; }
.sm-gd-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:14px; padding:12px 14px; border:1px solid var(--sm-line); border-radius:15px; background:#fff; }
.sm-gd-toolbar__summary strong,.sm-gd-toolbar__summary span { display:block; }
.sm-gd-toolbar__summary strong { color:var(--sm-dark); font-size:.95rem; }
.sm-gd-toolbar__summary span { color:var(--sm-muted); font-size:.78rem; }
.sm-gd-toolbar__actions { display:flex; align-items:center; gap:12px; }
.sm-gd-sort label { display:flex; align-items:center; gap:8px; }
.sm-gd-sort label > span { color:var(--sm-muted); font-size:.78rem; font-weight:700; }
.sm-gd-sort select { min-height:38px; padding:0 34px 0 11px; border:1px solid var(--sm-line); border-radius:10px; background-color:#fff; color:var(--sm-dark); }
.sm-gd-view-switch { display:flex; padding:3px; border:1px solid var(--sm-line); border-radius:10px; background:#f7f8f9; }
.sm-gd-view-switch button { min-height:32px; padding:0 10px; border:0; border-radius:7px; background:transparent; color:#6b747c; font-size:.75rem; font-weight:800; }
.sm-gd-view-switch button.is-active { background:#fff; color:var(--sm-dark); box-shadow:0 2px 8px rgba(16,24,32,.08); }
.sm-gd-split { display:grid; grid-template-columns:minmax(0, 57%) minmax(380px, 43%); gap:18px; align-items:start; }
.sm-gd-results-column { min-width:0; }
.sm-gd-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.sm-gd-results[data-sm-results-view="list"] { grid-template-columns:1fr; }
.sm-gd-card { position:relative; overflow:hidden; display:grid; grid-template-rows:190px auto; min-width:0; border:1px solid #e5e8eb; border-radius:18px; background:#fff; box-shadow:0 8px 24px rgba(16,24,32,.045); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.sm-gd-card:hover { transform:translateY(-3px); border-color:rgba(255,77,46,.28); box-shadow:0 16px 38px rgba(16,24,32,.09); }
.sm-gd-card.is-map-active { border-color:var(--sm-primary); box-shadow:0 0 0 3px rgba(255,77,46,.10),0 16px 38px rgba(16,24,32,.10); }
.sm-gd-card__media { position:relative; display:block; overflow:hidden; background:#eef1f2; }
.sm-gd-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.sm-gd-card:hover .sm-gd-card__media img { transform:scale(1.035); }
.sm-gd-card__category { position:absolute; left:12px; bottom:12px; max-width:calc(100% - 24px); padding:6px 9px; border-radius:999px; background:rgba(13,17,23,.74); color:#fff; font-size:.69rem; font-weight:800; backdrop-filter:blur(8px); }
.sm-gd-card__favorite { position:absolute; z-index:4; top:12px; right:12px; width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.8); border-radius:50%; background:rgba(13,17,23,.62); color:#fff; font-size:19px; backdrop-filter:blur(8px); }
.sm-gd-card__body { min-width:0; padding:15px 16px 16px; }
.sm-gd-card__heading { display:flex; gap:10px; align-items:start; justify-content:space-between; }
.sm-gd-card__heading h2 { min-width:0; margin:0; color:var(--sm-dark); font-size:1rem; line-height:1.25; }
.sm-gd-card__price { flex:0 0 auto; color:var(--sm-primary); font-weight:900; }
.sm-gd-card__rating { display:flex; align-items:center; gap:6px; margin-top:7px; color:#717a82; font-size:.75rem; }
.sm-gd-card__rating .mp-stars { color:#f2a51d; }
.sm-gd-card__address { margin:8px 0 0; color:#68727b; font-size:.76rem; line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sm-gd-card__footer { display:flex; flex-wrap:wrap; align-items:center; gap:6px 9px; margin-top:12px; padding-top:10px; border-top:1px solid #eff1f3; color:#747e86; font-size:.71rem; }
.sm-gd-card__footer span + span::before { content:"·"; margin-right:9px; }
.sm-gd-card__footer a { margin-left:auto; color:var(--sm-primary); font-weight:850; }
.sm-gd-results[data-sm-results-view="list"] .sm-gd-card { grid-template-columns:230px 1fr; grid-template-rows:minmax(175px,auto); }
.sm-gd-results[data-sm-results-view="list"] .sm-gd-card__media { height:100%; }
.sm-gd-map-column { min-width:0; }
.sm-gd-map-card { position:sticky; top:98px; overflow:hidden; border:1px solid #e3e7ea; border-radius:18px; background:#fff; box-shadow:0 12px 32px rgba(16,24,32,.06); }
.sm-gd-map-card__head { min-height:56px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px; border-bottom:1px solid var(--sm-line); }
.sm-gd-map-card__head strong,.sm-gd-map-card__head span { display:block; }
.sm-gd-map-card__head strong { color:var(--sm-dark); font-size:.88rem; }
.sm-gd-map-card__head div > span { color:var(--sm-muted); font-size:.72rem; }
.sm-gd-location-pill { max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:6px 9px; border-radius:999px; background:#fff2ed; color:var(--sm-primary) !important; font-size:.7rem !important; font-weight:800; }
.sm-gd-map { position:relative; height:calc(100vh - 194px); min-height:590px; background:#e9eef1; }
.sm-gd-map__loading { position:absolute; inset:0; display:grid; place-items:center; color:#7d878f; font-size:.9rem; background:linear-gradient(135deg,#edf1f3,#e5eaed); }
.sm-gd-map-info { width:240px; font-family:Inter,system-ui,sans-serif; }
.sm-gd-map-info img { width:100%; height:110px; object-fit:cover; border-radius:10px; margin-bottom:9px; }
.sm-gd-map-info strong { display:block; color:#111820; font-size:.95rem; line-height:1.25; }
.sm-gd-map-info small { display:block; margin-top:3px; color:#737d85; }
.sm-gd-map-info a { display:inline-block; margin-top:8px; color:#ff4d2e; font-weight:800; }
.sm-gd-pagination { display:flex; flex-wrap:wrap; gap:7px; margin-top:20px; }
.sm-gd-pagination a { min-width:38px; min-height:38px; display:grid; place-items:center; padding:0 10px; border:1px solid var(--sm-line); border-radius:10px; background:#fff; color:var(--sm-dark); font-size:.8rem; font-weight:800; }
.sm-gd-pagination a.is-current { border-color:var(--sm-primary); background:var(--sm-primary); color:#fff; }
.sm-gd-empty { padding:46px 28px; border:1px solid var(--sm-line); border-radius:20px; background:#fff; text-align:center; }
.sm-gd-empty h2 { margin:0; color:var(--sm-dark); }
.sm-gd-empty p { color:var(--sm-muted); }

/* Local-photo category grid: does not depend on Pexels/API. */
.sm-categories-grid-enhanced { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.sm-category-photo { position:relative; min-height:245px; overflow:hidden; display:flex; align-items:flex-end; padding:22px; border-radius:24px; background-size:cover; background-position:center; box-shadow:0 14px 38px rgba(16,24,32,.08); transition:transform .25s ease,box-shadow .25s ease; }
.sm-category-photo:hover { transform:translateY(-5px); box-shadow:0 22px 50px rgba(16,24,32,.14); }
.sm-category-photo__shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,8,11,.04),rgba(5,8,11,.18) 35%,rgba(5,8,11,.82)); }
.sm-category-photo__content { position:relative; z-index:2; color:#fff; }
.sm-category-photo__content strong,.sm-category-photo__content small { display:block; }
.sm-category-photo__content strong { font-size:1.35rem; line-height:1.15; }
.sm-category-photo__content small { margin-top:4px; color:rgba(255,255,255,.86); }

@media (max-width:1200px) {
    .sm-gd-search.mp-buscador { grid-template-columns:1fr 1fr .8fr .7fr auto; }
    .sm-gd-field--radius { display:none; }
    .sm-gd-split { grid-template-columns:minmax(0,55%) minmax(340px,45%); }
    .sm-gd-results { grid-template-columns:1fr; }
}
@media (max-width:900px) {
    .sm-wide-shell { width:min(calc(100% - 26px),var(--sm-shell-wide)); }
    .sm-gd-search.mp-buscador { grid-template-columns:1fr 1fr; }
    .sm-gd-field { border-right:0; border-bottom:1px solid #eceff1; }
    .sm-gd-field--radius { display:flex; }
    .sm-gd-search__button { min-height:48px; grid-column:1 / -1; }
    .sm-gd-toolbar { align-items:flex-start; flex-direction:column; }
    .sm-gd-toolbar__actions { width:100%; justify-content:space-between; }
    .sm-gd-split { grid-template-columns:1fr; }
    .sm-gd-map-column { order:-1; }
    .sm-gd-map-card { position:relative; top:auto; }
    .sm-gd-map { height:420px; min-height:420px; }
    .sm-gd-results { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .sm-categories-grid-enhanced { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px) {
    .sm-gd-titlebar { padding-top:24px; }
    .sm-gd-search.mp-buscador { grid-template-columns:1fr; border-radius:15px; }
    .sm-gd-search__button { grid-column:auto; }
    .sm-gd-toolbar__actions { align-items:flex-start; flex-direction:column; }
    .sm-gd-view-switch { width:100%; }
    .sm-gd-view-switch button { flex:1; }
    .sm-gd-results { grid-template-columns:1fr; }
    .sm-gd-results[data-sm-results-view="list"] .sm-gd-card { grid-template-columns:1fr; grid-template-rows:190px auto; }
    .sm-gd-map { height:340px; min-height:340px; }
    .sm-categories-grid-enhanced { grid-template-columns:1fr; }
}


/* v1.5.1 — Mapa persistente durante el scroll de resultados.
   El sticky se aplica a la columna completa para evitar que el mapa se pierda
   al llegar a las tarjetas inferiores. El panel ocupa la altura útil de la ventana. */
:root {
    --sm-map-sticky-top: 94px;
    --sm-map-sticky-gap: 18px;
}
body.admin-bar {
    --sm-map-sticky-top: 126px;
}
.sm-gd-split {
    align-items: stretch;
}
.sm-gd-map-column {
    position: -webkit-sticky;
    position: sticky;
    top: var(--sm-map-sticky-top);
    align-self: start;
    height: calc(100vh - var(--sm-map-sticky-top) - var(--sm-map-sticky-gap));
    height: calc(100dvh - var(--sm-map-sticky-top) - var(--sm-map-sticky-gap));
    min-height: 520px;
}
.sm-gd-map-card {
    position: relative;
    top: auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
}
.sm-gd-map-card__head {
    flex: 0 0 auto;
}
.sm-gd-map {
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
}

@media (max-width: 900px) {
    .sm-gd-split {
        align-items: start;
    }
    .sm-gd-map-column {
        position: relative;
        top: auto;
        height: auto;
        min-height: 0;
    }
    .sm-gd-map-card {
        height: auto;
    }
    .sm-gd-map {
        height: 420px;
        min-height: 420px;
        flex: none;
    }
}

@media (max-width: 620px) {
    .sm-gd-map {
        height: 340px;
        min-height: 340px;
    }
}


/* v1.6.0 — Contextual restaurant map with progressive zoom and nearby alternatives. */
.sm-single-map-shell {
    position: relative;
    margin-top: 8px;
    overflow: hidden;
    border-radius: 20px;
    background: #e9edf0;
    box-shadow: 0 12px 34px rgba(16,24,32,.08);
}
.sm-single-map-shell .mp-mapa {
    width: 100%;
    height: 430px;
    min-height: 430px;
    margin: 0;
    border-radius: 0;
    box-shadow: none;
}
.sm-single-map-controls {
    position: absolute;
    z-index: 8;
    right: 14px;
    bottom: 46px;
    display: grid;
    grid-template-columns: 46px 46px;
    gap: 7px;
    padding: 7px;
    border: 1px solid rgba(255,255,255,.78);
    border-radius: 15px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 12px 30px rgba(16,24,32,.18);
    backdrop-filter: blur(12px);
}
.sm-single-map-controls button {
    min-width: 46px;
    height: 42px;
    padding: 0;
    border: 1px solid #e2e6e9;
    border-radius: 10px;
    background: #fff;
    color: var(--sm-dark);
    font-size: 1.35rem;
    font-weight: 850;
    line-height: 1;
    box-shadow: none;
}
.sm-single-map-controls button:hover {
    transform: none;
    border-color: rgba(255,77,46,.35);
    background: #fff7f4;
    color: var(--sm-primary);
}
.sm-single-map-controls [data-map-center] {
    grid-column: 1 / -1;
    width: auto;
    padding: 0 12px;
    font-size: .76rem;
}
.sm-single-map-discovery {
    position: absolute;
    z-index: 7;
    left: 14px;
    bottom: 42px;
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: calc(100% - 160px);
}
.sm-single-map-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.78);
    border-radius: 13px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 10px 28px rgba(16,24,32,.14);
    backdrop-filter: blur(12px);
}
.sm-single-map-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #3f4b54;
    font-size: .73rem;
    font-weight: 750;
}
.sm-single-map-legend i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #26313a;
    box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(38,49,58,.18);
}
.sm-single-map-legend i.is-primary {
    width: 13px;
    height: 13px;
    background: var(--sm-primary);
    box-shadow: 0 0 0 3px #fff, 0 0 0 4px rgba(255,77,46,.22);
}
.sm-single-map-discovery [data-map-show-nearby] {
    min-height: 40px;
    padding: 0 13px;
    border: 0;
    border-radius: 12px;
    background: var(--sm-primary);
    color: #fff;
    font-size: .75rem;
    font-weight: 850;
    box-shadow: 0 10px 24px rgba(255,77,46,.22);
    white-space: nowrap;
}
.sm-single-map-note {
    margin: 10px 0 0;
    color: var(--sm-muted);
    font-size: .82rem;
    line-height: 1.45;
}
.sm-single-map-info {
    width: 235px;
    padding: 1px 1px 3px;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.sm-single-map-info img {
    width: 100%;
    height: 115px;
    margin-bottom: 9px;
    object-fit: cover;
    border-radius: 10px;
}
.sm-single-map-info__badge {
    display: inline-block;
    margin-bottom: 5px;
    padding: 4px 7px;
    border-radius: 999px;
    background: #eef1f3;
    color: #53606a;
    font-size: .66rem;
    font-weight: 850;
}
.sm-single-map-info__badge.is-primary {
    background: #fff0eb;
    color: #d73b22;
}
.sm-single-map-info strong,
.sm-single-map-info small {
    display: block;
}
.sm-single-map-info strong {
    color: var(--sm-dark);
    font-size: .94rem;
    line-height: 1.25;
}
.sm-single-map-info small {
    margin-top: 4px;
    color: #6e7881;
    font-size: .75rem;
    line-height: 1.4;
}
.sm-single-map-info a {
    display: inline-flex;
    margin-top: 8px;
    color: var(--sm-primary);
    font-size: .78rem;
    font-weight: 850;
}

@media (max-width: 760px) {
    .sm-single-map-shell .mp-mapa {
        height: 360px;
        min-height: 360px;
    }
    .sm-single-map-discovery {
        right: 12px;
        left: 12px;
        bottom: 12px;
        max-width: none;
        align-items: stretch;
        flex-direction: column;
    }
    .sm-single-map-legend {
        width: fit-content;
        max-width: calc(100% - 105px);
    }
    .sm-single-map-discovery [data-map-show-nearby] {
        width: fit-content;
    }
    .sm-single-map-controls {
        right: 12px;
        bottom: 12px;
    }
    .sm-single-map-discovery [data-map-show-nearby] {
        display: none;
    }
}


/* Reviews & moderation experience v1.7 */
.sm-comments-card { padding: 28px; }
.sm-reviews { display: grid; gap: 22px; }
.sm-reviews__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 20px 22px;
    border-radius: 18px;
    background: #f7f8f9;
    border: 1px solid var(--sm-line);
}
.sm-reviews__summary > div { display: flex; align-items: baseline; gap: 9px; color: var(--sm-dark); }
.sm-reviews__count { color: var(--sm-primary); font-size: 2rem; font-weight: 900; line-height: 1; }
.sm-reviews__summary p { max-width: 610px; margin: 0; color: var(--sm-muted); font-size: .83rem; }
.sm-review-list,
.sm-review-list .children { list-style: none; padding: 0; margin: 0; }
.sm-review-list { display: grid; gap: 18px; }
.sm-review-list .children { margin: 14px 0 0 58px; display: grid; gap: 12px; }
.sm-review__card {
    padding: 22px;
    border: 1px solid var(--sm-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(16,24,32,.035);
}
.sm-review--reply .sm-review__card {
    background: #fbfcfc;
    border-radius: 16px;
}
.sm-review__card.is-owner-response {
    border-color: rgba(255,77,46,.22);
    background: linear-gradient(180deg,#fff9f6 0%,#fff 100%);
}
.sm-review__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
}
.sm-review__author-wrap { display: flex; align-items: center; gap: 12px; min-width: 0; }
.sm-review__avatar { width: 48px; height: 48px; border-radius: 50%; }
.sm-review__author-line { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.sm-review__author { color: var(--sm-dark); font-size: .98rem; }
.sm-review__author-wrap time { display: block; margin-top: 2px; color: var(--sm-muted); font-size: .76rem; }
.sm-review__badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    background: #eef1f3;
    color: #59636c;
    font-size: .68rem;
    font-weight: 850;
}
.sm-review__badge--owner { background: #fff0eb; color: var(--sm-primary-dark); }
.sm-review__rating { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 7px; text-align: right; }
.sm-review-stars { display: inline-flex; gap: 2px; color: #d9dee2; font-size: 1rem; }
.sm-review-stars .is-filled { color: #f2a51a; }
.sm-review__rating > span:not(.sm-review-stars) { color: var(--sm-dark); font-weight: 900; }
.sm-review__rating small { width: 100%; color: var(--sm-muted); font-size: .72rem; }
.sm-review__content { margin-top: 16px; color: #3e4951; line-height: 1.7; }
.sm-review__content p { margin-top: 0; }
.sm-review__content p:last-child { margin-bottom: 0; }
.sm-review__pending,
.sm-review-notice,
.sm-review-owner-help,
.sm-review-login,
.sm-reviews-empty {
    padding: 16px 18px;
    border-radius: 16px;
    background: #fff8e8;
    border: 1px solid #f4dfaa;
    color: #5f512d;
}
.sm-review-notice--success { background: #edf9f2; border-color: #bfe8cf; color: #286444; }
.sm-review-owner-help { background: #f7f8f9; border-color: var(--sm-line); color: var(--sm-text); }
.sm-review-owner-help strong,
.sm-review-login strong,
.sm-reviews-empty strong { color: var(--sm-dark); }
.sm-review-owner-help p,
.sm-review-login p,
.sm-reviews-empty p { margin: 5px 0 0; }
.sm-review__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; }
.sm-review__actions .comment-reply-link,
.sm-review-action {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 11px;
    border: 1px solid var(--sm-line);
    border-radius: 10px;
    background: #fff;
    color: #505b63;
    font-size: .76rem;
    font-weight: 800;
    text-decoration: none;
}
.sm-review__actions .comment-reply-link:hover,
.sm-review-action:hover { border-color: rgba(255,77,46,.34); color: var(--sm-primary); }
.sm-review-action--report { border: 0; background: transparent; color: #899198; padding-inline: 6px; }
.sm-review-report { margin: 0; }
.sm-review__reported { color: #9a7131; font-size: .74rem; font-weight: 700; }
.sm-review-edit-form {
    margin-top: 18px;
    padding: 18px;
    border-radius: 16px;
    background: #f7f8f9;
    border: 1px solid var(--sm-line);
}
.sm-review-edit-form[hidden] { display: none !important; }
.sm-review-edit-form > label { display: block; margin: 12px 0 7px; color: var(--sm-dark); font-weight: 800; }
.sm-review-edit-form textarea { width: 100%; min-height: 130px; padding: 12px 14px; border: 1px solid #dfe3e6; border-radius: 13px; resize: vertical; }

/* Visual star picker from MP Restaurantes */
.sm-comments-card .mp-rating-picker,
.sm-review-edit-form .mp-rating-picker { border: 0; padding: 0; margin: 0 0 12px; }
.sm-comments-card .mp-rating-picker legend,
.sm-review-edit-form .mp-rating-picker legend { color: var(--sm-dark); font-size: 1rem; font-weight: 850; }
.sm-comments-card .mp-rating-question { margin: 3px 0 10px; color: var(--sm-muted); font-size: .88rem; }
.sm-comments-card .mp-rating-stars,
.sm-review-edit-form .mp-rating-stars { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 7px; }
.sm-comments-card .mp-rating-stars input,
.sm-review-edit-form .mp-rating-stars input { position: absolute; opacity: 0; pointer-events: none; }
.sm-comments-card .mp-rating-stars label,
.sm-review-edit-form .mp-rating-stars label {
    color: #d4d9dd;
    font-size: 2.45rem;
    line-height: 1;
    cursor: pointer;
    transition: transform .12s ease,color .12s ease;
}
.sm-comments-card .mp-rating-stars label:hover,
.sm-comments-card .mp-rating-stars label:hover ~ label,
.sm-comments-card .mp-rating-stars input:checked ~ label,
.sm-review-edit-form .mp-rating-stars label:hover,
.sm-review-edit-form .mp-rating-stars label:hover ~ label,
.sm-review-edit-form .mp-rating-stars input:checked ~ label { color: #f2a51a; }
.sm-comments-card .mp-rating-stars label:hover,
.sm-review-edit-form .mp-rating-stars label:hover { transform: scale(1.12); }
.sm-comments-card .mp-rating-feedback,
.sm-review-edit-form .mp-rating-feedback { margin: 7px 0 0; min-height: 1.2em; color: var(--sm-primary-dark); font-size: .82rem; font-weight: 800; }
.sm-comments-card .comment-form-comment label { font-size: 1rem; }
.sm-comments-card .sm-review-submit { min-width: 190px; }

/* The owner and users with an existing review only see the form when replying. */
.sm-reviews.has-restricted-top-form #respond:not(.is-reply-mode) { display: none; }
.sm-reviews #respond.is-reply-mode { display: block; }
.sm-reviews #respond.is-reply-mode .mp-rating-picker { display: none !important; }
.sm-reviews #cancel-comment-reply-link { margin-left: 8px; color: var(--sm-primary); font-size: .8rem; }

@media (max-width: 720px) {
    .sm-comments-card { padding: 16px; }
    .sm-reviews__summary { align-items: flex-start; flex-direction: column; gap: 8px; }
    .sm-review-list .children { margin-left: 18px; }
    .sm-review__header { flex-direction: column; }
    .sm-review__rating { justify-content: flex-start; text-align: left; }
    .sm-comments-card .mp-rating-stars label,
    .sm-review-edit-form .mp-rating-stars label { font-size: 2.2rem; }
}


/* Secure messaging integration */
.sm-secure-chat-section{margin-top:28px}.sabormarket-restaurant-single .mpms-entry-card{border-color:#eceff1;border-radius:22px;box-shadow:0 12px 34px rgba(16,24,32,.055)}.sabormarket-restaurant-single .mpms-primary-link,.sm-messages-page .mpms-primary-link,.sm-messages-page .mpms-compose button[type=submit]{background:var(--sm-primary)}.sm-messages-page .mpms-inbox{border-radius:24px;box-shadow:0 16px 44px rgba(16,24,32,.06)}
