/* Nexo Extranjería Directorio v1.2.2. Solo estilos comerciales; las fichas
   gratuitas y la paginacion se mantienen con los estilos originales. */

/* Listado: jerarquia visual de las empresas destacadas. */
.nxe-directory-browser .nxe-directory-card-featured {
    position: relative;
    border: 1.5px solid #d6a44b;
    background: linear-gradient(145deg, #fffdf7 0%, #fff8e9 100%);
    box-shadow: 0 7px 24px rgba(113, 78, 13, .10);
}
.nxe-directory-browser .nxe-directory-card-featured::after {
    content: '';
    position: absolute;
    top: 0;
    left: 15px;
    right: 15px;
    height: 3px;
    border-radius: 0 0 4px 4px;
    background: linear-gradient(90deg, #c48a24, #e8c46a);
    pointer-events: none;
}
.nxe-directory-browser .nxe-directory-card-featured .nxe-directory-badge-featured,
.nxe-directory-browser.nxe-directory-detail .nxe-directory-badge-featured {
    background: #ae791b;
    color: #fff;
    font-weight: 800;
    padding: 5px 10px;
}
.nxe-directory-browser .nxe-directory-badge-featured::before {
    content: '\2605';
    margin-right: 4px;
    font-size: 13px;
}
.nxe-directory-browser .nxe-directory-card-featured h2 a:not(.nxe-company-logo-link) {
    color: #855810;
}
.nxe-directory-browser .nxe-directory-card-featured h2 a:hover {
    text-decoration: underline;
}
.nxe-directory-browser .nxe-directory-card-featured .nxe-directory-badges {
    margin-bottom: 13px;
}
.nxe-directory-browser .nxe-directory-card-featured .nxe-directory-service {
    margin-top: 9px;
}

/* Logotipo: marco grande, nitido, sin estirar la imagen original.
   El zoom controlado por la empresa compensa logos con margenes internos. */
.nxe-directory-browser .nxe-company-logo-link,
.nxe-directory-browser .nxe-company-logo-frame {
    box-sizing: border-box;
    position: relative;
    width: 76px;
    height: 76px;
    flex: 0 0 76px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 4px;
    background: #fff;
    border: 1px solid #d6e2ee;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(18, 40, 68, .07);
    text-decoration: none;
}
.nxe-directory-browser .nxe-company-logo {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    border: 0;
    padding: 0;
    margin: 0;
    border-radius: 0;
    background: transparent;
    transform: scale(var(--nxe-logo-zoom, 1.2));
    transform-origin: center;
}
.nxe-directory-browser .nxe-directory-card-featured .nxe-company-logo-link {
    border-color: #d7b874;
}
.nxe-directory-browser .nxe-company-heading-with-logo {
    display: flex;
    gap: 14px;
    align-items: center;
    margin: 0 0 12px;
    min-width: 0;
}
.nxe-directory-browser .nxe-company-heading-with-logo > a:not(.nxe-company-logo-link) {
    flex: 1 1 0;
    min-width: 0;
    overflow-wrap: anywhere;
    font-weight: 800;
    font-size: 1.08rem;
    line-height: 1.3;
}
.nxe-directory-browser .nxe-premium-teaser {
    color: #394d64;
    font-size: .91rem;
    line-height: 1.5;
    margin-top: 10px;
    margin-bottom: 11px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.nxe-directory-browser .nxe-premium-card-footer {
    display: flex;
    flex-direction: column;
    gap: 5px;
    border-top: 1px solid rgba(177, 136, 65, .25);
    padding-top: 11px;
    margin-top: 13px;
}
.nxe-directory-browser .nxe-premium-card-footer .nxe-premium-card-contact-line {
    margin: 0;
    font-size: .89rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}
.nxe-directory-browser .nxe-premium-card-footer a {
    color: #1455ad;
    text-decoration: none;
}
.nxe-directory-browser .nxe-premium-card-footer a:hover { text-decoration: underline; }

/* Logotipos panorámicos: usan el ancho útil de la ficha; los cuadrados no cambian.
   La orientación se determina a partir de las dimensiones reales del archivo. */
.nxe-directory-browser .nxe-company-heading-with-logo.nxe-heading-wide-logo {
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
}
.nxe-directory-browser .nxe-directory-card-featured .nxe-company-logo-link.nxe-logo-wide,
.nxe-directory-browser .nxe-directory-card-preferred .nxe-company-logo-link.nxe-logo-wide {
    width: min(100%, 205px);
    height: 86px;
    flex-basis: auto;
    border-radius: 11px;
    padding: 5px;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-hero .nxe-company-logo-frame.nxe-logo-wide {
    width: 240px;
    height: 112px;
    flex: 0 0 240px;
    padding: 7px;
}
.nxe-directory-browser .nxe-premium-card-address::before {
    content: 'Dirección: ';
    font-weight: 750;
    color: #475569;
}

/* Encabezado premium de la ficha individual: distintivos, identidad y ubicacion. */
.nxe-directory-browser.nxe-directory-detail .nxe-premium-hero {
    box-sizing: border-box;
    margin: 16px 0 20px;
    border: 1px solid #e6dfcf;
    border-radius: 18px;
    background: linear-gradient(130deg, #fffdfa 0%, #fff8ee 100%);
    box-shadow: 0 7px 25px rgba(19, 36, 57, .05);
    padding: clamp(18px, 3vw, 30px);
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-hero .nxe-directory-badges {
    margin-bottom: 19px;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-hero-identity {
    display: flex;
    align-items: center;
    gap: clamp(17px, 3vw, 26px);
    min-width: 0;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-hero .nxe-company-logo-frame {
    width: 124px;
    height: 124px;
    flex: 0 0 124px;
    border-radius: 16px;
    border-color: #e0c48e;
    padding: 7px;
    box-shadow: 0 4px 14px rgba(64, 49, 18, .08);
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-hero-copy {
    min-width: 0;
    flex: 1 1 auto;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-hero-copy h1 {
    margin: 0 0 12px;
    font-size: clamp(1.9rem, 3.7vw, 3.0rem);
    line-height: 1.11;
    overflow-wrap: anywhere;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-hero-copy .nxe-directory-service {
    font-weight: 800;
    margin: 0 0 6px;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-hero-copy .nxe-directory-location {
    margin: 0;
    font-size: .97rem;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-intro {
    box-sizing: border-box;
    padding: 17px 21px;
    border-left: 4px solid #d0a356;
    border-radius: 0 11px 11px 0;
    background: #f7f9fc;
    color: #314560;
    font-size: 1.05rem;
    line-height: 1.6;
    margin: 0 0 24px;
}
.nxe-directory-browser.nxe-directory-detail.nxe-premium-detail-enhanced .nxe-directory-content {
    box-sizing: border-box;
    margin: 21px 0;
    padding: 20px 23px;
    border: 1px solid #dbe5ee;
    border-radius: 14px;
    background: #fff;
}
.nxe-directory-browser.nxe-directory-detail .nxe-directory-content h2:first-child {
    margin-top: 0;
}

/* Contacto directo premium: solo lee enlaces previamente publicados en ficha. */
.nxe-directory-browser.nxe-directory-detail .nxe-premium-direct-contact {
    box-sizing: border-box;
    margin: 22px 0;
    padding: 20px 23px 23px;
    border: 1px solid #cddded;
    border-radius: 15px;
    background: #f5f9fe;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-direct-contact h2 {
    margin: 0 0 15px;
    color: #0d2b4f;
    font-size: 1.24rem;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-contact-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 11px;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-channel {
    box-sizing: border-box;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 13px 15px;
    border: 1px solid #d9e5ef;
    border-radius: 11px;
    background: white;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-channel:hover,
.nxe-directory-browser.nxe-directory-detail .nxe-premium-channel:focus-visible {
    border-color: #1c64bb;
    box-shadow: 0 0 0 2px #dbeafc;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-channel-address {
    cursor: default;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-channel-address .nxe-premium-channel-value {
    color: #17365b;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-channel-label {
    color: #556b86;
    font-size: .78rem;
    font-weight: 750;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-channel-value {
    font-size: 1.01rem;
    font-weight: 750;
    color: #0b53b7;
    overflow-wrap: anywhere;
}
.nxe-directory-browser.nxe-directory-detail .nxe-premium-contact-relocated { display: none; }
.nxe-directory-browser.nxe-directory-detail .nxe-directory-profile { margin-top: 22px; }

/* Resto de los servicios, idiomas, horarios, galeria y redes premium. */
.nxe-directory-browser .nxe-premium-extras {
    margin: 20px 0;
    display: grid;
    gap: 15px;
}
.nxe-directory-browser .nxe-premium-section {
    padding: 19px 22px;
    border: 1px solid #dae5ed;
    background: #fafcfe;
    border-radius: 13px;
}
.nxe-directory-browser .nxe-premium-section h2 { margin: 0 0 11px; font-size: 1.15rem; }
.nxe-directory-browser .nxe-premium-section p { margin: 7px 0; }
.nxe-directory-browser .nxe-premium-links { display: flex; flex-wrap: wrap; gap: 9px; }
.nxe-directory-browser .nxe-premium-contact {
    display: inline-block;
    text-decoration: none;
    border: 1px solid #afc4d8;
    padding: 8px 12px;
    border-radius: 9px;
    background: #fff;
}
.nxe-directory-browser .nxe-premium-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(125px,1fr));
    gap: 11px;
}
.nxe-directory-browser .nxe-premium-photo {
    display: block;
    aspect-ratio: 4/3;
    overflow: hidden;
    border-radius: 10px;
    border: 1px solid #d9e4ea;
}
.nxe-directory-browser .nxe-premium-photo img { width: 100%; height: 100%; object-fit: cover; }

/* Shortcode nativo alternativo: se conserva la paginacion y el destacado. */
.nxe-directory .nxe-dir-row-featured {
    border: 2px solid #d6ad51;
    background: #fffaf0;
    border-radius: 14px;
    padding: 22px;
    margin: 10px 0;
}
.nxe-directory .nxe-badge { background:#b8811f; color:#fff; font-weight:800; }
.nxe-directory .nxe-badge::before { content:'\2605  '; }
.nxe-directory .nxe-dir-pagination {
    margin-top: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.nxe-directory .nxe-dir-pagination .page-numbers {
    border: 1px solid #d4dfec;
    border-radius: 8px;
    padding: 8px 12px;
    text-decoration: none;
}
.nxe-directory .nxe-dir-pagination .current {
    background: #0757db;
    border-color: #0757db;
    color: #fff;
}

/* Estilo gratuito, sin modificacion de la visibilidad ni los enlaces. */
.nxe-directory-browser .nxe-free-coverage {
    font-size: .9rem;
    font-weight: 600;
    color: #334e6a;
    margin: 8px 0 0;
}
.nxe-directory-browser .nxe-free-specialty {
    font-size: .9rem;
    color: #64748b;
    margin: 4px 0;
}

@media (max-width: 620px) {
    .nxe-directory-browser .nxe-company-logo-link,
    .nxe-directory-browser .nxe-company-logo-frame { width:70px; height:70px; flex-basis:70px; }
    .nxe-directory-browser .nxe-company-heading-with-logo { gap: 12px; }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-hero { padding: 18px; }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-hero .nxe-company-logo-frame {
        width: 96px; height: 96px; flex-basis: 96px;
    }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-hero-identity { gap: 13px; }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-hero-identity.nxe-identity-wide-logo {
        flex-wrap: wrap;
    }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-hero .nxe-company-logo-frame.nxe-logo-wide {
        width: min(100%, 235px); height: 102px; flex-basis: 235px;
    }
    .nxe-directory-browser .nxe-directory-card-featured .nxe-company-logo-link.nxe-logo-wide,
    .nxe-directory-browser .nxe-directory-card-preferred .nxe-company-logo-link.nxe-logo-wide {
        width: min(100%, 205px); height: 86px; flex-basis: auto;
    }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-hero-copy h1 { font-size: clamp(1.65rem,6vw,2.3rem); }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-contact-grid { grid-template-columns: 1fr; }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-direct-contact { padding: 17px; }
}
@media (max-width: 380px) {
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-hero-identity { align-items: flex-start; }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-hero .nxe-company-logo-frame { width:78px; height:78px; flex-basis:78px; }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-hero .nxe-company-logo-frame.nxe-logo-wide {
        width: min(100%, 215px); height: 100px; flex-basis: auto;
    }
    .nxe-directory-browser.nxe-directory-detail .nxe-premium-hero-copy h1 { font-size: 1.55rem; }
}
