/* One visual language for native Directorist cards and dClassified Elementor widgets. */
.txl-directory, .txl-card {
    --txl-orange: #ff5c00; --txl-text: #f5f5f5; --txl-muted: #a7a7a7;
    --txl-border: #303030; --txl-surface: #111; font-family: Manrope, sans-serif;
    color: var(--txl-text);
}
.txl-directory *, .txl-card * { box-sizing: border-box; }
.txl-directory a, .txl-card a { text-decoration: none; }
.txl-directory a:focus-visible, .txl-directory button:focus-visible, .txl-directory input:focus-visible,
.txl-directory select:focus-visible, .txl-directory summary:focus-visible,
.txl-card a:focus-visible, .txl-card button:focus-visible { outline: 2px solid var(--txl-orange); outline-offset: 4px; }
.txl-card.directorist-listing-single {
    position: relative; display: flex; flex-direction: column; overflow: hidden;
    height: 100%; margin: 0; padding: 0; border: 1px solid #252525; border-radius: 14px;
    background: #111; color: #f5f5f5; box-shadow: none; isolation: isolate;
}
.txl-card .txl-card-visual { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #161616; }
.txl-card .txl-card-photo { display: block; width: 100%; height: 100%; overflow: hidden; background: #161616; }
.txl-card .txl-card-photo::after { content: ''; position: absolute; pointer-events: none; inset: 50% 0 0; background: linear-gradient(transparent, #111); }
.txl-card .txl-card-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; margin: 0; }
.txl-card .txl-card-no-photo { display: grid; width: 100%; height: 100%; place-items: center; color: #a7a7a7; font-size: 13px; }
.txl-card .txl-card-badges { position: absolute; display: flex; flex-wrap: wrap; gap: 5px; top: 12px; left: 12px; right: 52px; pointer-events: none; }
.txl-card .txl-card-badges .directorist-badge { padding: 4px 8px; border-radius: 5px; font-size: 9px; font-weight: 700; line-height: 1.25; }
.txl-card .txl-card-favorite { position: absolute; top: 10px; right: 10px; }
.txl-card .directorist-mark-as-favorite__btn { display: flex; justify-content: center; align-items: center; width: 32px; height: 32px; padding: 0; border: 1px solid #ffffff40; border-radius: 50%; background: #070707b3; color: #fff; }
.txl-card .directorist-mark-as-favorite__btn:hover { border-color: var(--txl-orange); }
.txl-card .directorist-mark-as-favorite__btn.directorist-added-to-favorite { color: var(--txl-orange); }
.txl-card .txl-card-content { position: relative; display: flex; flex: 1; flex-direction: column; padding: 0 14px 15px; margin-top: -43px; z-index: 1; pointer-events: none; }
.txl-card .txl-card-content a, .txl-card .txl-card-content button { pointer-events: auto; }
.txl-card .txl-card-title { margin: 0 0 8px; color: #fff; font-family: var(--heading-font, 'Arial Narrow', sans-serif); font-size: 21px; font-weight: 800; line-height: 1.15; letter-spacing: -.5px; text-transform: uppercase; overflow-wrap: anywhere; text-shadow: 0 1px 5px #000; }
.txl-card .txl-card-title a { color: inherit; }
.txl-card .txl-card-title a:hover { color: var(--txl-orange); }
.txl-card .txl-card-taxonomies { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-height: 22px; font-size: 10px; }
.txl-card .txl-card-tribe { display: inline-block; padding: 2px 7px; border: 1px solid #90471f; border-radius: 5px; background: #2b160ce6; color: #ffae77; line-height: 1.4; }
.txl-card .txl-card-location { color: #dedede; line-height: 1.5; }
.txl-card .txl-card-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: #a7a7a7; font-size: 11px; line-height: 1.6; margin: 12px 0 16px; }
.txl-card .txl-card-actions { display: flex; gap: 8px; margin-top: auto; padding-top: 14px; }
.txl-card .txl-card-button { display: flex; align-items: center; justify-content: center; min-height: 37px; flex: 1; padding: 8px 7px; border: 1px solid #6c6c6c; border-radius: 7px; color: #fff; background: #111; font-size: 10px; line-height: 1.4; font-weight: 600; text-align: center; }
.txl-card .txl-card-button:hover { border-color: var(--txl-orange); color: #fff; }
.txl-card .txl-card-button--primary { flex: 1.45; background: var(--txl-orange); border-color: var(--txl-orange); box-shadow: 0 3px 13px #ff5c0038; }
.txl-card .txl-card-button--primary:hover { background: #e85200; }
.txl-card.txl-card--list { flex-direction: row; min-height: 230px; }
.txl-card--list .txl-card-visual { flex: 0 0 180px; aspect-ratio: auto; }
.txl-card--list .txl-card-photo::after { display: none; }
.txl-card--list .txl-card-content { flex: 1; margin-top: 0; padding: 24px; justify-content: center; }
.txl-card--list .txl-card-title { font-size: 26px; text-shadow: none; }
.txl-card--list .txl-card-taxonomies { font-size: 12px; }
.txl-card--list .txl-card-excerpt { font-size: 13px; }
.txl-card--list .txl-card-actions { max-width: 330px; margin-top: 0; }
.txl-card--list .txl-card-button { min-height: 40px; font-size: 12px; }
.txl-directory .directorist-archive-grid-view > .directorist-container-fluid > .directorist-row { align-items: stretch; row-gap: 24px; }
.txl-directory .directorist-archive-list-view .directorist-row > [class*='col-'] { margin-bottom: 20px; }
.txl-full-listing .directorist-archive-grid-view > .directorist-container-fluid > .directorist-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; margin: 0; }
.txl-full-listing .directorist-archive-grid-view > .directorist-container-fluid > .directorist-row > [class*='col-'] { width: 100%; max-width: 100%; flex: none; padding: 0; margin: 0; }
.txl-full-listing { max-width: 1200px; margin-inline: auto; padding-bottom: 54px; }
.txl-full-listing .txl-top-layout.listing-with-sidebar { display: block; background: transparent; padding: 30px 0; border: 0; }
.txl-archive-heading { padding: 0 0 24px; }
.txl-eyebrow { display: inline-block; border: 1px solid #703717; border-radius: 20px; color: #ff9a58; padding: 4px 10px; font-size: 10px; letter-spacing: .8px; margin-bottom: 15px; }
.txl-archive-heading h1 { color: #fff; font-family: var(--heading-font, 'Arial Narrow', sans-serif); font-size: clamp(30px, 4vw, 44px); font-weight: 800; line-height: 1.15; text-transform: uppercase; margin: 0; letter-spacing: -.7px; }
.txl-archive-heading h1 span { color: var(--txl-orange); }
.txl-tribe-links { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 16px; }
.txl-tribe-links a { padding: 5px 11px; border: 1px solid #3b3b3b; border-radius: 20px; color: #b8b8b8; background: #111; font-size: 10px; line-height: 1.5; }
.txl-tribe-links a:hover { color: #fff; border-color: #ba5b23; }
.txl-tribe-links a.is-active { color: #fff; background: var(--txl-orange); border-color: var(--txl-orange); }
.txl-filter-panel { border: 1px solid #2b2b2b; border-radius: 12px; background: #111; padding: 18px; }
.txl-filter-panel .directorist-search-form { padding: 0; margin: 0; border: 0; box-shadow: none; border-radius: 0; background: transparent; }
.txl-filter-fields { display: grid; grid-template-columns: 1.3fr 1fr 1fr auto; align-items: end; gap: 14px; }
.txl-filter-field { min-width: 0; }
.txl-filter-panel .directorist-search-field, .txl-filter-panel .directorist-form-group { margin: 0; padding: 0; background: transparent; border: 0; border-radius: 0; }
.txl-filter-panel label, .txl-filter-panel .directorist-search-field__label { display: block; color: #c7c7c7; font-size: 11px; line-height: 1.5; margin-bottom: 6px; font-weight: 500; }
.txl-filter-panel .directorist-form-element, .txl-filter-panel select { width: 100%; height: 42px; border: 1px solid #373737; border-radius: 7px; color: #eee; padding: 9px 12px; background: #1a1a1a; font: inherit; font-size: 12px; box-shadow: none; }
.txl-filter-panel input::placeholder { color: #a7a7a7; opacity: 1; }
.txl-filter-panel .directorist-select2 .select2-selection--single, .txl-filter-panel .select2-container--default .select2-selection--single { background: #1a1a1a; border: 1px solid #373737; border-radius: 7px; min-height: 42px; height: 42px; }
.txl-filter-panel .select2-container--default .select2-selection--single .select2-selection__rendered { color: #eee; padding: 8px 30px 8px 12px; font-size: 12px; line-height: 24px; }
.txl-filter-panel .select2-selection__placeholder { color: #aaa !important; }
.txl-filter-panel .select2-container { width: 100% !important; min-width: 0; }
.txl-filter-panel .directorist-search-field__btn { color: #aaa; }
.txl-filter-panel .txl-search-button { display: block; min-height: 42px; padding: 10px 20px; border: 1px solid var(--txl-orange); border-radius: 7px; background: var(--txl-orange); color: #fff; font-size: 12px; font-weight: 700; }
.txl-more-filters { border-top: 1px solid #303030; padding-top: 12px; margin-top: 16px; }
.txl-more-filters summary { color: #ddd; cursor: pointer; font-size: 12px; }
.txl-more-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding: 18px 0 6px; }
.txl-directory .txl-toolbar.directorist-header-bar { margin: 16px 0 0; padding: 15px 0 0; border: 0; border-top: 1px solid #303030; background: transparent; }
.txl-directory .txl-toolbar .directorist-listings-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 0; border: 0; background: transparent; }
.txl-directory .txl-toolbar .directorist-listings-header__right { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.txl-directory .txl-results-toolbar.directorist-header-bar {
    margin: 0 0 24px; padding: 0; border: 0; background: transparent;
}
.txl-directory .txl-results-toolbar .directorist-listings-header__right {
    flex-direction: row; width: auto; margin-left: auto;
}
.txl-directory .txl-toolbar .directorist-header-found-title { color: #aaa; font-size: 12px; }
.txl-directory .txl-toolbar .directorist-btn, .txl-directory .txl-toolbar .directorist-viewas__item { color: #ddd; background: #1c1c1c; border: 1px solid #353535; border-radius: 6px; font-size: 12px; }
.txl-directory .txl-toolbar .directorist-viewas__item.active { color: var(--txl-orange); border-color: #8a411b; background: #2c160c; }
.txl-directory .directorist-dropdown__links { background: #171717; border-color: #333; }
.txl-directory .directorist-dropdown__links a { color: #eee; }
.txl-directory .directorist-dropdown__links a:hover { color: var(--txl-orange); background: #232323; }
.txl-directory .directorist-pagination { margin-top: 35px; }
.txl-directory .directorist-pagination .page-numbers { border-color: #333; background: #151515; color: #eee; }
.txl-directory .directorist-pagination .current { background: var(--txl-orange); border-color: var(--txl-orange); color: #fff; }
.txl-directory .directorist-archive-notfound { padding: 38px 20px; border: 1px solid #303030; border-radius: 12px; background: #111; color: #ccc; }
body.txl-directory-page { background: #070707; }
body.txl-directory-page .theme-banner-breadcrumb { display: none; }
body.txl-directory-page #primary.content-area { padding-top: 18px; background: #070707; }
body.txl-directory-page #primary > .theme-container { max-width: 1248px; }
/* Archive search hero. The supplied image is bundled in the child theme.
   Only the decorative layer extends across the page: dropdowns remain unclipped. */
body.txl-directory-page .txl-full-listing .txl-top-layout.listing-with-sidebar {
    position: relative; isolation: isolate; padding: 40px 0 34px; margin-bottom: 32px;
}
body.txl-directory-page .txl-full-listing .txl-top-layout::before {
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: #0e0e0e url('../images/triplex-explorar-perfiles.jpg') center center / auto 100% no-repeat;
    box-shadow: 0 0 0 100vmax #0e0e0e;
    clip-path: inset(0 -100vmax);
}
/* Explicit exclusion also covers native Elementor widgets lacking is_elementor. */
body.txl-directory-page .elementor-widget .txl-full-listing .txl-top-layout::before {
    content: none; display: none;
}
@media (max-width: 1100px) {
    .txl-full-listing .directorist-archive-grid-view > .directorist-container-fluid > .directorist-row { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
    .txl-filter-fields { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 850px) {
    .txl-full-listing .directorist-archive-grid-view > .directorist-container-fluid > .directorist-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .txl-more-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .txl-card--list .txl-card-visual { flex-basis: 150px; }
    .txl-card--list .txl-card-content { padding: 18px; }
}
@media (max-width: 599px) {
    .txl-full-listing .directorist-archive-grid-view > .directorist-container-fluid > .directorist-row { grid-template-columns: 1fr; }
    .txl-full-listing .txl-top-layout.listing-with-sidebar { padding: 16px 0 24px; }
    body.txl-directory-page .txl-full-listing .txl-top-layout.listing-with-sidebar { padding: 28px 0; margin-bottom: 24px; }
    body.txl-directory-page .txl-full-listing .txl-top-layout::before { background-position: 58% center; }
    .txl-filter-panel { padding: 15px; }
    .txl-filter-fields { grid-template-columns: 1fr; }
    .txl-more-fields { grid-template-columns: 1fr; }
    .txl-card .txl-card-visual { aspect-ratio: 4 / 4.5; }
    .txl-card .txl-card-title { font-size: 24px; }
    .txl-card .txl-card-taxonomies { font-size: 12px; }
    .txl-card .txl-card-excerpt { font-size: 12px; }
    .txl-card .txl-card-button { font-size: 12px; min-height: 42px; }
    .txl-card.txl-card--list { flex-direction: column; }
    .txl-card--list .txl-card-visual { flex: none; }
    .txl-card--list .txl-card-content { padding: 0 14px 15px; margin-top: -43px; }
    .txl-card--list .txl-card-photo::after { display: block; }
    .txl-card--list .txl-card-actions { max-width: none; }
}
