.dai-fx {
    --dai-fx-gap: clamp(20px, 3vw, 36px);
    --dai-fx-linea: color-mix(in srgb, currentColor 16%, transparent);
    --dai-fx-suave: color-mix(in srgb, currentColor 5%, transparent);
    --dai-fx-borde: color-mix(in srgb, currentColor 34%, transparent);
    --dai-fx-radio: 14px;
    --dai-fx-fondo: var(--dai-ficha-fondo, #fff);
    --dai-fx-marca: var(--directorai-color, #1d1d1f);
    --dai-fx-sobre-marca: var(--dai-on-brand, #fff);
    --dai-fx-top: 0px;
    display: block;
    min-width: 0;
}
.dai-fx *, .dai-fx *::before, .dai-fx *::after { box-sizing: border-box; }

.dai-fx .dai-fx-hero { margin: 0 0 var(--dai-fx-gap); min-width: 0; }
.dai-fx .dai-fx-foto { min-width: 0; }
.dai-fx .dai-fx-foto > img,
.dai-fx .dai-fx-foto > :is(p, figure) > img {
    display: block;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 12px;
    margin: 0;
}
.dai-fx .dai-fx-foto > :is(p, figure) { margin: 0; }
.dai-fx .dai-fx-datos { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.dai-fx .dai-fx-datos > p,
.dai-fx .dai-fx-datos > [data-dai-id="rating"] > p { margin: 0 !important; }
.dai-fx .dai-fx-datos [data-dai-id="rating"] .su-service-title { margin-top: 0 !important; }
.dai-fx .dai-fx-datos .su-service-content:empty { display: none; }
.dai-fx .dai-fx-datos .su-service { margin: 0 !important; }
.dai-fx .dai-fx-datos .dai-destacado,
.dai-fx .dai-fx-datos .dai-cerrado-ficha { align-self: flex-start; margin: 0 !important; }

.directory-container .dai-fx .dai-fx-cuerpo {
    display: flex;
    flex-direction: column;
    gap: var(--dai-fx-gap) !important;
    margin: 0 0 var(--dai-fx-gap) !important;
    padding: 0;
}
.directory-container .dai-fx .dai-fx-principal,
.directory-container .dai-fx .dai-fx-lateral {
    flex: none !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0;
}
.dai-fx .dai-fx-principal > div + div,
.dai-fx .dai-fx-lateral > div + div { margin-top: var(--dai-fx-gap); }
.dai-fx .dai-fx-panel > *:first-child { margin-top: 0; }

.dai-fx :is(h2, h3)[id],
.dai-fx #dai-fx-fotos,
.dai-fx #dai-fx-mapa { scroll-margin-top: calc(var(--dai-fx-top) + 76px); }

.dai-fx .dai-fx-acciones,
.dai-fx .dai-fx-indice,
.dai-fx .dai-fx-barra { display: none; }

.dai-fx .dai-fx-accion,
.dai-fx .dai-fx-barra-a,
.dai-fx .dai-fx-chip {
    -webkit-tap-highlight-color: transparent;
    text-decoration: none !important;
    font-family: inherit;
}
.dai-fx .dai-fx-ico { flex: none; width: 1.15em; height: 1.15em; }
.dai-fx .dai-fx-accion:focus-visible,
.dai-fx .dai-fx-barra-a:focus-visible,
.dai-fx .dai-fx-chip:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

/* Perfil */
.dai-fx[data-dai-ficha="perfil"] .dai-fx-hero {
    border: 1px solid var(--dai-fx-linea);
    border-radius: var(--dai-fx-radio);
    padding: clamp(12px, 2vw, 22px);
    display: grid;
    gap: clamp(16px, 2.5vw, 32px);
}
.dai-fx[data-dai-ficha="perfil"] .dai-fx-foto .dai-carousel,
.dai-fx[data-dai-ficha="perfil"] .dai-fx-foto .dai-carousel-single { border-radius: calc(var(--dai-fx-radio) - 4px); }
.dai-fx[data-dai-ficha="perfil"] .dai-fx-datos { gap: 14px; justify-content: center; }
.dai-fx[data-dai-ficha="perfil"] .dai-fx-datos [data-dai-id="rating"] .su-service-title { font-size: 1.35em; font-weight: 700; }
.dai-fx[data-dai-ficha="perfil"] .dai-fx-acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 6px;
}
.dai-fx .dai-fx-acciones .dai-fx-accion { flex: 1 1 auto; white-space: nowrap; }
.dai-fx .dai-fx-accion {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    min-height: 46px;
    padding: 10px 16px;
    border: 1px solid var(--dai-fx-borde);
    border-radius: 999px;
    background: transparent;
    color: inherit !important;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.dai-fx .dai-fx-accion:hover { border-color: currentColor; background: var(--dai-fx-suave); transform: translateY(-1px); }
.dai-fx .dai-fx-accion.dai-fx-accion-principal {
    background: var(--dai-fx-marca);
    border-color: var(--dai-fx-marca);
    color: var(--dai-fx-sobre-marca) !important;
}
.dai-fx .dai-fx-accion.dai-fx-accion-principal:hover { filter: brightness(1.08); }
.dai-fx .dai-fx-accion-dato { display: none; font-weight: 400; opacity: .85; white-space: nowrap; }
.dai-fx .dai-fx-accion-texto { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.dai-fx .dai-fx-acciones .dai-fx-accion-principal { flex-basis: 100%; }

/* Panorama */
.dai-fx[data-dai-ficha="panorama"] .dai-fx-foto { margin-bottom: 16px; }
.dai-fx[data-dai-ficha="panorama"] .dai-fx-foto .dai-carousel-slide img,
.dai-fx[data-dai-ficha="panorama"] .dai-fx-foto .dai-carousel-single,
.dai-fx[data-dai-ficha="panorama"] .dai-fx-foto > img,
.dai-fx[data-dai-ficha="panorama"] .dai-fx-foto > :is(p, figure) > img {
    aspect-ratio: auto !important;
    height: clamp(230px, 52vw, 380px) !important;
    width: 100% !important;
    max-height: none !important;
    object-fit: cover;
}
.dai-fx[data-dai-ficha="panorama"] .dai-fx-datos {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--dai-fx-linea);
}

/* Anclada, Revista y Secciones: la ubicación y la nota encima de las fotos */
.dai-fx:is([data-dai-ficha="anclada"], [data-dai-ficha="revista"], [data-dai-ficha="secciones"], [data-dai-ficha="clasica"]) .dai-fx-hero {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.dai-fx:is([data-dai-ficha="anclada"], [data-dai-ficha="revista"], [data-dai-ficha="secciones"], [data-dai-ficha="clasica"]) .dai-fx-datos {
    order: -1;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 20px;
}

/* Revista */
.dai-fx[data-dai-ficha="revista"] { max-width: 760px; margin-left: auto; margin-right: auto; }
.directory-container .dai-fx[data-dai-ficha="revista"] .dai-fx-principal,
.directory-container .dai-fx[data-dai-ficha="revista"] .dai-fx-lateral { display: contents; }
.dai-fx[data-dai-ficha="revista"] .dai-fx-desc { order: 1; }
.dai-fx[data-dai-ficha="revista"] .dai-fx-panel { order: 2; }
.dai-fx[data-dai-ficha="revista"] .dai-fx-resenas { order: 3; }
.dai-fx[data-dai-ficha="revista"] .dai-fx-info { order: 4; }
.dai-fx[data-dai-ficha="revista"] .dai-fx-contacto { order: 5; }
.dai-fx[data-dai-ficha="revista"] .dai-fx-principal > div + div,
.dai-fx[data-dai-ficha="revista"] .dai-fx-lateral > div + div { margin-top: 0; }
.dai-fx[data-dai-ficha="revista"] .dai-fx-panel {
    border: 1px solid var(--dai-fx-linea);
    border-radius: var(--dai-fx-radio);
    background: var(--dai-fx-suave);
    padding: clamp(12px, 2vw, 20px);
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
    gap: 10px;
    align-items: stretch;
}
.dai-fx[data-dai-ficha="revista"] .dai-fx-panel > .su-gmap { grid-column: 1 / -1; margin: 0 0 6px !important; }
.directory-container .dai-fx[data-dai-ficha="revista"] .dai-fx-panel .su-gmap iframe { height: 300px !important; }
.dai-fx[data-dai-ficha="revista"] .dai-fx-panel > div[data-dai-id]:not(:has(a)) { display: none; }
.directory-container .dai-fx[data-dai-ficha="revista"] .dai-fx-panel .su-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 100%;
    min-height: 46px;
    margin: 0 !important;
    float: none !important;
}
.dai-fx[data-dai-ficha="revista"] .dai-fx-resto { max-width: 100%; }

/* Secciones */
.dai-fx[data-dai-ficha="secciones"] .dai-fx-indice {
    display: block;
    position: sticky;
    top: var(--dai-fx-top);
    z-index: 30;
    margin: 0 0 var(--dai-fx-gap);
    padding: 10px 0;
    background: var(--dai-fx-fondo);
    border-bottom: 1px solid var(--dai-fx-linea);
}
.dai-fx .dai-fx-indice-lista {
    display: flex;
    gap: 8px;
    margin: 0 !important;
    padding: 0 2px !important;
    list-style: none !important;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-behavior: smooth;
}
.dai-fx .dai-fx-indice-lista::-webkit-scrollbar { display: none; }
.dai-fx .dai-fx-indice-lista > li {
    flex: none;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.dai-fx .dai-fx-indice-lista > li::before,
.dai-fx .dai-fx-indice-lista > li::marker { content: none; display: none; }
.dai-fx .dai-fx-chip {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 16px;
    border: 1px solid var(--dai-fx-borde);
    border-radius: 999px;
    color: inherit !important;
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.dai-fx .dai-fx-chip:hover { border-color: currentColor; }
.dai-fx .dai-fx-chip[aria-current="true"] {
    background: var(--dai-fx-marca);
    border-color: var(--dai-fx-marca);
    color: var(--dai-fx-sobre-marca) !important;
}
.dai-fx[data-dai-ficha="secciones"] :is(h2, h3)[id],
.dai-fx[data-dai-ficha="secciones"] #dai-fx-fotos,
.dai-fx[data-dai-ficha="secciones"] #dai-fx-mapa { scroll-margin-top: calc(var(--dai-fx-top) + 84px); }

/* Anclada: la barra del móvil */
@media (max-width: 899.98px) {
    .dai-fx .dai-fx-chip { min-height: 44px; }
    .dai-fx[data-dai-ficha="anclada"] .dai-fx-barra {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: minmax(0, 1fr);
        position: fixed;
        left: 0;
        right: 0;
        bottom: var(--dai-fx-abajo, 0px);
        z-index: 9990;
        margin: 0;
        padding: 6px 6px calc(6px + env(safe-area-inset-bottom, 0px));
        gap: 6px;
        background: var(--dai-fx-fondo);
        border-top: 1px solid var(--dai-fx-linea);
        box-shadow: 0 -6px 20px rgba(0, 0, 0, .12);
        transition: transform .25s ease;
    }
    .dai-fx[data-dai-ficha="anclada"].dai-fx-barra-fuera .dai-fx-barra { transform: translateY(110%); }
    body:has(.dai-fx[data-dai-ficha="anclada"] .dai-fx-barra) {
        padding-bottom: calc(66px + env(safe-area-inset-bottom, 0px) + var(--dai-fx-abajo-body, 0px));
    }
    .dai-fx .dai-fx-barra-a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        min-height: 52px;
        padding: 6px 4px;
        border-radius: 10px;
        color: inherit !important;
        font-size: .75rem;
        font-weight: 600;
        line-height: 1.15;
        text-align: center;
    }
    .dai-fx .dai-fx-barra-a:first-child {
        background: var(--dai-fx-marca);
        color: var(--dai-fx-sobre-marca) !important;
    }
    .dai-fx .dai-fx-barra-a .dai-fx-ico { width: 20px; height: 20px; }
    .dai-fx .dai-fx-barra-a .dai-fx-accion-texto {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (min-width: 900px) {
    .dai-fx[data-dai-ficha="perfil"] .dai-fx-hero {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
        align-items: center;
    }
    .dai-fx[data-dai-ficha="perfil"] .dai-fx-hero.dai-fx-sin-foto { grid-template-columns: minmax(0, 1fr); }
    .dai-fx .dai-fx-accion-dato { display: inline; }

    .dai-fx[data-dai-ficha="panorama"] .dai-fx-foto .dai-carousel-slide img,
    .dai-fx[data-dai-ficha="panorama"] .dai-fx-foto .dai-carousel-single,
    .dai-fx[data-dai-ficha="panorama"] .dai-fx-foto > img,
    .dai-fx[data-dai-ficha="panorama"] .dai-fx-foto > :is(p, figure) > img { height: clamp(320px, 36vw, 460px) !important; }

    .directory-container .dai-fx:is([data-dai-ficha="perfil"], [data-dai-ficha="panorama"]) .dai-fx-cuerpo {
        display: grid;
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
        align-items: start;
    }

    .dai-fx:is([data-dai-ficha="anclada"], [data-dai-ficha="secciones"], [data-dai-ficha="clasica"]) {
        display: grid;
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
        column-gap: var(--dai-fx-gap);
        align-items: start;
    }
    .directory-container .dai-fx:is([data-dai-ficha="anclada"], [data-dai-ficha="secciones"], [data-dai-ficha="clasica"]) .dai-fx-cuerpo { display: contents; }
    .dai-fx:is([data-dai-ficha="anclada"], [data-dai-ficha="secciones"], [data-dai-ficha="clasica"]) .dai-fx-indice,
    .dai-fx:is([data-dai-ficha="anclada"], [data-dai-ficha="secciones"], [data-dai-ficha="clasica"]) .dai-fx-resto { grid-column: 1 / -1; }
    .dai-fx:is([data-dai-ficha="anclada"], [data-dai-ficha="secciones"], [data-dai-ficha="clasica"]) .dai-fx-hero { grid-column: 1; grid-row: 2; }
    .dai-fx:is([data-dai-ficha="anclada"], [data-dai-ficha="secciones"]) .dai-fx-principal { grid-column: 1; grid-row: 3; }
    .dai-fx[data-dai-ficha="secciones"] .dai-fx-lateral { grid-column: 2; grid-row: 2 / span 2; }

    .directory-container .dai-fx[data-dai-ficha="anclada"] .dai-fx-lateral { display: contents; }
    .dai-fx[data-dai-ficha="anclada"] .dai-fx-panel {
        grid-column: 2;
        grid-row: 2 / span 3;
        align-self: start;
        position: sticky;
        top: calc(var(--dai-fx-top) + 16px);
        max-height: calc(100vh - var(--dai-fx-top) - 32px);
        overflow: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
        padding: 16px;
        border: 1px solid var(--dai-fx-linea);
        border-radius: var(--dai-fx-radio);
        background: var(--dai-fx-fondo);
    }
    .directory-container .dai-fx[data-dai-ficha="anclada"] .dai-fx-panel .su-gmap iframe { height: 240px !important; }
    .directory-container .dai-fx[data-dai-ficha="anclada"] .dai-fx-panel .su-gmap { margin-bottom: 12px !important; }
    .dai-fx[data-dai-ficha="anclada"] .dai-fx-contacto { grid-column: 1; grid-row: 4; margin-top: var(--dai-fx-gap) !important; }
    .dai-fx[data-dai-ficha="anclada"] .dai-fx-resto,
    .dai-fx[data-dai-ficha="secciones"] .dai-fx-resto { grid-row: 5; margin-top: var(--dai-fx-gap); }
    .dai-fx[data-dai-ficha="anclada"] .dai-fx-hero,
    .dai-fx[data-dai-ficha="secciones"] .dai-fx-hero { margin-bottom: var(--dai-fx-gap); }

    .directory-container .dai-fx[data-dai-ficha="clasica"] .dai-fx-principal,
    .directory-container .dai-fx[data-dai-ficha="clasica"] .dai-fx-lateral { display: contents; }
    .dai-fx[data-dai-ficha="clasica"] .dai-fx-desc { grid-column: 1; grid-row: 3; }
    .dai-fx[data-dai-ficha="clasica"] .dai-fx-panel { grid-column: 2; grid-row: 2 / span 2; }
    .dai-fx[data-dai-ficha="clasica"] .dai-fx-resenas { grid-column: 1; grid-row: 4; }
    .dai-fx[data-dai-ficha="clasica"] .dai-fx-info { grid-column: 1; grid-row: 5; }
    .dai-fx[data-dai-ficha="clasica"] .dai-fx-contacto { grid-column: 2; grid-row: 4 / span 2; }
    .dai-fx[data-dai-ficha="clasica"] .dai-fx-resto { grid-row: 6; }
    .dai-fx[data-dai-ficha="clasica"] :is(.dai-fx-desc, .dai-fx-resenas, .dai-fx-info, .dai-fx-contacto) { margin: 0 0 var(--dai-fx-gap) !important; }
}

@media (prefers-reduced-motion: reduce) {
    .dai-fx .dai-fx-accion,
    .dai-fx .dai-fx-chip,
    .dai-fx .dai-fx-barra { transition: none !important; }
    .dai-fx .dai-fx-accion:hover { transform: none; }
    .dai-fx .dai-fx-indice-lista { scroll-behavior: auto; }
}
