/* ============================================================
   Justicia Transparente — Main CSS v2.1
   Brand: #1a3a6e (navy) · #2563eb (blue) · #f8fafc (bg)
   ============================================================ */

/* ── Variables ─────────────────────────────────────────────── */
:root {
  --jt-navy:        #1a3a6e;
  --jt-blue:        #2563eb;
  --jt-blue-lt:     #3b82f6;
  --jt-blue-muted:  #dbeafe;
  --jt-gray-50:     #f8fafc;
  --jt-gray-100:    #f1f5f9;
  --jt-gray-200:    #e2e8f0;
  --jt-gray-400:    #94a3b8;
  --jt-gray-500:    #64748b;
  --jt-gray-600:    #475569;
  --jt-gray-800:    #1e293b;
  --jt-white:       #ffffff;
  --jt-green:       #16a34a;
  --jt-red:         #dc2626;
  --jt-yellow:      #d97706;
  --jt-radius:      12px;
  --jt-radius-sm:   8px;
  --jt-shadow:      0 1px 8px rgba(0,0,0,.07);
  --jt-shadow-md:   0 4px 24px rgba(0,0,0,.12);
  --jt-transition:  .16s ease;
}

/* ── Reset ─────────────────────────────────────────────────── */
.jt-directorio-wrapper *,
.jt-registro-wrapper *,
.jt-panel-wrapper *,
.jt-single-abogado *,
.jt-caso-page * { box-sizing: border-box; }

/* ============================================================
   BUTTONS
   ============================================================ */
.jt-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 6px; padding: 10px 20px; border-radius: var(--jt-radius-sm);
  font-size: 14px; font-weight: 600; cursor: pointer;
  transition: background var(--jt-transition), border-color var(--jt-transition), color var(--jt-transition);
  text-decoration: none; border: 2px solid transparent; white-space: nowrap;
}
.jt-btn--primary   { background: var(--jt-blue); color: #fff; border-color: var(--jt-blue); }
.jt-btn--primary:hover { background: var(--jt-navy); border-color: var(--jt-navy); color: #fff; }
.jt-btn--secondary { background: transparent; color: var(--jt-blue); border-color: var(--jt-blue); }
.jt-btn--secondary:hover { background: var(--jt-blue-muted); }
.jt-btn--ghost     { background: transparent; color: var(--jt-gray-600); border-color: var(--jt-gray-200); }
.jt-btn--ghost:hover { background: var(--jt-gray-100); color: var(--jt-gray-800); }
.jt-btn--whatsapp  { background: #25d366; color: #fff; border-color: #25d366; }
.jt-btn--whatsapp:hover { background: #1cb957; }
.jt-btn--consult   { background: var(--jt-navy); color: #fff; border-color: var(--jt-navy); width: 100%; }
.jt-btn--consult:hover { background: var(--jt-blue); border-color: var(--jt-blue); }
.jt-btn--full  { width: 100%; }
.jt-btn--lg    { padding: 14px 28px; font-size: 16px; }
.jt-btn--sm    { padding: 6px 14px; font-size: 12px; }
.jt-btn:disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }

/* ============================================================
   INPUTS / SELECTS
   ============================================================ */
.jt-input, .jt-select, .jt-textarea {
  width: 100%; padding: 10px 14px; border: 1.5px solid var(--jt-gray-200);
  border-radius: var(--jt-radius-sm); font-size: 14px; color: var(--jt-gray-800);
  background: #fff; transition: border-color var(--jt-transition), box-shadow var(--jt-transition);
  appearance: none; -webkit-appearance: none;
}
.jt-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 34px;
}
.jt-input:focus, .jt-select:focus, .jt-textarea:focus {
  outline: none; border-color: var(--jt-blue); box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.jt-textarea { resize: vertical; min-height: 90px; }

/* ============================================================
   FORMS
   ============================================================ */
.jt-form-group { margin-bottom: 18px; }
.jt-form-group label { display: block; font-size: 13px; font-weight: 600; color: var(--jt-gray-600); margin-bottom: 6px; }
.jt-form-group .req { color: var(--jt-red); margin-left: 2px; }
.jt-form-row { display: grid; gap: 16px; }
.jt-form-row--2 { grid-template-columns: 1fr 1fr; }
.jt-form-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.jt-form-submit { margin-top: 24px; }
.jt-form-note { font-size: 12px; color: var(--jt-gray-400); margin-top: 8px; line-height: 1.5; }

/* Checkboxes */
.jt-checkboxes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 8px 16px;
  padding: 4px 0;
}
.jt-checkboxes-grid--specialties {
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.jt-checkboxes-grid--inline {
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px;
}
.jt-checkbox-label {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--jt-gray-800); cursor: pointer;
  padding: 5px 8px; border-radius: var(--jt-radius-sm);
  transition: background var(--jt-transition);
}
.jt-checkbox-label:hover { background: var(--jt-gray-50); }
.jt-checkbox-label input[type="checkbox"] {
  accent-color: var(--jt-blue); width: 15px; height: 15px; flex-shrink: 0;
}
/* Checkbox estilo tarjeta */
.jt-checkbox-label--card {
  border: 1.5px solid var(--jt-gray-200); border-radius: var(--jt-radius-sm);
  padding: 10px 14px; background: #fff; gap: 10px;
  transition: border-color var(--jt-transition), background var(--jt-transition);
}
.jt-checkbox-label--card:hover {
  border-color: var(--jt-blue); background: var(--jt-blue-muted);
}
.jt-checkbox-label--card:has(input:checked) {
  border-color: var(--jt-blue); background: var(--jt-blue-muted);
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}
.jt-cb-icon { font-size: 16px; line-height: 1; flex-shrink: 0; }

/* ============================================================
   NOTICES
   ============================================================ */
.jt-notice {
  padding: 12px 16px; border-radius: var(--jt-radius-sm);
  font-size: 14px; margin-bottom: 16px; line-height: 1.5;
}
.jt-notice--info    { background: var(--jt-blue-muted); color: var(--jt-navy); border-left: 4px solid var(--jt-blue); }
.jt-notice--success { background: #dcfce7; color: #166534; border-left: 4px solid var(--jt-green); }
.jt-notice--error   { background: #fee2e2; color: #991b1b; border-left: 4px solid var(--jt-red); }
.jt-notice--warning { background: #fef3c7; color: #92400e; border-left: 4px solid var(--jt-yellow); }

/* ============================================================
   BADGES & TAGS
   ============================================================ */
.jt-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 700;
  letter-spacing: .02em;
}
.jt-badge--verified { background: #dcfce7; color: #166534; }
.jt-badge--featured { background: #fef9c3; color: #713f12; }
.jt-badge--active   { background: #dcfce7; color: #166534; }
.jt-badge--closed   { background: var(--jt-gray-100); color: var(--jt-gray-500); }
.jt-badge--pending  { background: #fef3c7; color: #92400e; }
.jt-badge--public   { background: #e0f2fe; color: #0369a1; }
.jt-badge--xs { padding: 2px 7px; font-size: 10px; }

.jt-tag {
  display: inline-block; padding: 3px 10px; border-radius: 20px;
  background: var(--jt-blue-muted); color: var(--jt-navy);
  font-size: 12px; font-weight: 500;
}
.jt-tag--lg { padding: 5px 14px; font-size: 13px; }
.jt-tags-wrap { display: flex; flex-wrap: wrap; gap: 6px; }

/* ============================================================
   LOADING / EMPTY
   ============================================================ */
.jt-loading { display: flex; justify-content: center; align-items: center; padding: 60px 0; }
.jt-spinner {
  width: 40px; height: 40px; border: 4px solid var(--jt-gray-200);
  border-top-color: var(--jt-blue); border-radius: 50%;
  animation: jt-spin .7s linear infinite;
}
@keyframes jt-spin { to { transform: rotate(360deg); } }
.jt-empty { color: var(--jt-gray-400); text-align: center; padding: 48px 24px; font-size: 14px; }

/* ============================================================
   STARS
   ============================================================ */
.jt-star         { color: var(--jt-gray-200); font-size: 16px; line-height: 1; }
.jt-star.filled  { color: #f59e0b; }
.jt-rating-num   { font-weight: 700; color: var(--jt-gray-800); font-size: 13px; margin-left: 4px; }
.jt-rating-count { color: var(--jt-gray-400); font-size: 12px; }

/* ============================================================
   DIRECTORIO — Nueva vista sidebar + mapa
   ============================================================ */

/* ── Wrapper del directorio ─────────────────────────────────────
   Desktop: sin padding (hero ocupa el viewport completo).
   Mobile: 10px lateral (hero queda con margen y border-radius).
   ──────────────────────────────────────────────────────────────── */
.jt-dir-page {
  padding: 0;
  box-sizing: border-box;
  width: 100%;
  overflow-x: clip;
}
.jt-dir-page,
.jt-dir-hero,
.jt-dir-main,
.jt-dir-sidebar,
.jt-dir-results-bar,
.jt-cards-grid,
.jt-mapa-container,
#jt-mapa,
.jt-card { box-sizing: border-box; }

/* ── Hero navy ──────────────────────────────────────────────────
   Desktop: full-width, sin border-radius.
   Mobile: con 10px de margen (del .jt-dir-page) y border-radius.
   ───────────────────────────────────────────────────────────────── */
.jt-dir-hero {
  background: linear-gradient(135deg, #0f2548 0%, var(--jt-navy) 40%, #1e4fa3 100%) !important;
  padding: 52px 32px 44px !important;
  text-align: center;
  position: relative;
  width: 100%;
  box-sizing: border-box;
  /* overflow: visible para que el dropdown del autocomplete no se recorte */
}
.jt-dir-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
  border-radius: inherit;
  overflow: hidden;
  z-index: 0;
}
/* Contenido del hero queda por encima del patrón */
.jt-dir-hero > * { position: relative; z-index: 1; }
/* Excepto el searchbar wrap, que también necesita el dropdown por encima */
.jt-dir-hero .jt-dir-searchbar-wrap { z-index: 100; }
.jt-dir-hero__badge {
  display: inline-block;
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.85);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 20px; padding: 4px 14px;
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; margin-bottom: 18px;
}
.jt-dir-hero__title {
  color: #fff !important; font-size: 36px !important; font-weight: 800 !important;
  margin: 0 0 12px !important; letter-spacing: -.5px; line-height: 1.15;
  text-shadow: 0 2px 16px rgba(0,0,0,.18);
}
.jt-dir-hero__sub {
  color: rgba(255,255,255,.8) !important; font-size: 16px; margin: 0 0 32px; max-width: 540px; margin-left: auto; margin-right: auto;
}

/* Barra de búsqueda del hero */
.jt-dir-searchbar {
  display: flex; align-items: center;
  background: #fff; border-radius: 12px;
  padding: 8px 8px 8px 20px; gap: 12px;
  box-shadow: 0 8px 40px rgba(0,0,0,.25);
  max-width: 680px; margin: 0 auto;
  position: relative;
}
.jt-dir-searchbar__icon { color: var(--jt-gray-400); flex-shrink: 0; }
.jt-dir-searchbar__input {
  flex: 1; border: none !important; outline: none !important; box-shadow: none !important;
  font-size: 16px; color: var(--jt-gray-800);
  background: transparent; padding: 8px 0;
}
.jt-dir-searchbar__input::placeholder { color: var(--jt-gray-400); }
.jt-dir-searchbar__btn,
button.jt-dir-searchbar__btn {
  background: var(--jt-blue) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 9px !important;
  padding: 12px 26px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  font-family: inherit !important;
  line-height: 1.2 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
  box-shadow: none !important;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--jt-transition);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: auto;
  min-height: 0;
  appearance: none;
  -webkit-appearance: none;
}
.jt-dir-searchbar__btn:hover,
button.jt-dir-searchbar__btn:hover {
  background: var(--jt-navy) !important;
}
.jt-dir-searchbar__btn:focus,
button.jt-dir-searchbar__btn:focus {
  outline: 2px solid rgba(255,255,255,.4) !important;
  outline-offset: 1px;
}

/* ── Autocompletado del directorio ─────────────────────────────── */
.jt-dir-searchbar-wrap {
  position: relative;
  max-width: 680px;
  margin: 0 auto;
}
.jt-autocomplete {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0;
  background: #fff; border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0,0,0,.18);
  border: 1px solid var(--jt-gray-200);
  max-height: 380px; overflow-y: auto;
  z-index: 99999;
  text-align: left;
}
.jt-ac-group {
  padding: 10px 16px 6px;
  font-size: 11px; font-weight: 800; letter-spacing: .08em;
  color: var(--jt-gray-400); text-transform: uppercase;
  background: var(--jt-gray-50);
  border-top: 1px solid var(--jt-gray-100);
}
.jt-ac-group:first-child { border-top: none; }
.jt-ac-item {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 16px; cursor: pointer;
  transition: background .12s;
  border-top: 1px solid var(--jt-gray-100);
}
.jt-ac-item:first-of-type { border-top: none; }
.jt-ac-item:hover,
.jt-ac-item.is-active { background: var(--jt-blue-muted); }
.jt-ac-icon {
  font-size: 18px; flex-shrink: 0;
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  background: var(--jt-gray-100); border-radius: 8px;
}
.jt-ac-item:hover .jt-ac-icon,
.jt-ac-item.is-active .jt-ac-icon { background: #fff; }
.jt-ac-text {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; line-height: 1.3;
}
.jt-ac-text strong {
  font-size: 14px; color: var(--jt-navy); font-weight: 700;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.jt-ac-text span {
  font-size: 12px; color: var(--jt-gray-500);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.jt-ac-count {
  font-size: 11px; font-weight: 700;
  background: var(--jt-blue-muted); color: var(--jt-blue);
  padding: 2px 8px; border-radius: 10px;
  flex-shrink: 0;
}

@media (max-width: 720px) {
  .jt-autocomplete { max-height: 320px; }
  .jt-ac-item { padding: 12px 14px; }
  .jt-ac-text strong { font-size: 13px; }
  .jt-ac-text span { font-size: 11.5px; }
}

/* ── Layout: sidebar + main ─────────────────────────────────── */
.jt-dir-layout {
  display: flex !important;
  gap: 24px;
  padding: 28px 10px 60px;
  max-width: 1280px !important;
  width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
  align-items: flex-start;
  box-sizing: border-box;
}

/* ── Sidebar ────────────────────────────────────────────────── */
.jt-dir-sidebar {
  width: 270px; flex-shrink: 0;
  position: sticky; top: 90px;
}
.jt-dir-filters-card {
  background: #fff; border: 1.5px solid var(--jt-gray-200);
  border-radius: var(--jt-radius); overflow: hidden;
  box-shadow: var(--jt-shadow);
}
.jt-dir-filters-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px;
  background: var(--jt-navy);
}
.jt-dir-filters-head__title {
  display: flex; align-items: center; gap: 7px;
  font-size: 13px; font-weight: 700; color: #fff;
  text-transform: uppercase; letter-spacing: .06em;
}
.jt-dir-filters-head__title svg { color: rgba(255,255,255,.7); }
.jt-dir-filters-head__clear {
  display: inline-flex; align-items: center; gap: 4px;
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.8);
  border: 1px solid rgba(255,255,255,.2); border-radius: 6px;
  padding: 4px 10px; font-size: 11px; font-weight: 600;
  cursor: pointer; transition: var(--jt-transition);
}
.jt-dir-filters-head__clear:hover { background: rgba(255,255,255,.22); color: #fff; }

.jt-dir-filters-body { padding: 16px; }
.jt-dir-filter-group { margin-bottom: 14px; }
.jt-dir-filter-group:last-child { margin-bottom: 0; }
.jt-dir-filter-label {
  display: block; font-size: 11px; font-weight: 700;
  color: var(--jt-gray-500); text-transform: uppercase;
  letter-spacing: .05em; margin-bottom: 5px;
}
.jt-dir-price-wrap { position: relative; }
.jt-dir-price-prefix {
  position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
  font-size: 13px; font-weight: 600; color: var(--jt-gray-500); pointer-events: none;
}
.jt-input--price { padding-left: 22px; }

.jt-dir-filters-foot {
  padding: 14px 16px 16px;
  border-top: 1px solid var(--jt-gray-100);
}

/* ── Main area ──────────────────────────────────────────────── */
.jt-dir-main { flex: 1; min-width: 0; }

/* Barra de resultados */
.jt-dir-results-bar {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 16px; flex-wrap: wrap; gap: 10px;
  min-height: 36px;
}
.jt-dir-results-count {
  font-size: 13px; color: var(--jt-gray-500); font-weight: 600;
}

/* View toggle */
.jt-view-toggle { display: flex; gap: 4px; }
.jt-view-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px; border: 1.5px solid var(--jt-gray-200);
  border-radius: var(--jt-radius-sm); cursor: pointer; font-size: 13px;
  font-weight: 600; color: var(--jt-gray-600); background: #fff;
  transition: var(--jt-transition);
}
.jt-view-btn:hover { background: var(--jt-gray-100); color: var(--jt-gray-800); }
.jt-view-btn.jt-active { background: var(--jt-navy); color: #fff; border-color: var(--jt-navy); }

/* Mapa */
.jt-mapa-container {
  margin-bottom: 24px; border-radius: var(--jt-radius);
  overflow: hidden; box-shadow: var(--jt-shadow-md);
  border: 1.5px solid var(--jt-gray-200);
}
#jt-mapa { border-radius: var(--jt-radius); }

/* Cards grid */
.jt-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}

/* Pagination */
.jt-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 36px; flex-wrap: wrap; }
.jt-page-btn {
  padding: 8px 16px; border: 1.5px solid var(--jt-gray-200);
  border-radius: var(--jt-radius-sm); cursor: pointer; font-size: 14px;
  font-weight: 600; background: #fff; color: var(--jt-gray-600);
  transition: var(--jt-transition);
}
.jt-page-btn:hover, .jt-page-btn.jt-active {
  background: var(--jt-blue); color: #fff; border-color: var(--jt-blue);
}

/* ── Card de abogado ──────────────────────────────────────── */
.jt-card {
  background: #fff; border: 1.5px solid var(--jt-gray-200);
  border-radius: var(--jt-radius); overflow: hidden;
  transition: box-shadow var(--jt-transition), transform var(--jt-transition), border-color var(--jt-transition);
  display: flex; flex-direction: column;
}
.jt-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.14);
  transform: translateY(-4px);
  border-color: var(--jt-blue);
}
.jt-card--destacado {
  border-color: #f59e0b;
  box-shadow: 0 0 0 3px rgba(245,158,11,.12);
}
.jt-card--destacado:hover { border-color: #f59e0b; }

/* El <a> cubre toda la card */
.jt-card__link {
  display: flex; flex-direction: column;
  text-decoration: none; color: inherit; height: 100%;
  flex: 1;
}
.jt-card__link:hover { color: inherit; text-decoration: none; }

/* Foto: ratio 3:4 (vertical, ideal para headshots), centrada */
.jt-card__photo {
  position: relative;
  aspect-ratio: 3 / 4 !important;
  height: auto !important;
  overflow: hidden;
  background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.jt-card__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;  /* prioriza cara/cabeza */
  transition: transform .4s ease;
}
.jt-card:hover .jt-card__photo img { transform: scale(1.04); }
.jt-card__photo-placeholder {
  width: 100%; height: 100%; display: flex; align-items: center;
  justify-content: center; color: var(--jt-gray-400);
}
.jt-card__badges {
  position: absolute; top: 10px; left: 10px;
  display: flex; flex-direction: column; gap: 4px;
}
.jt-card__badges .jt-badge { box-shadow: 0 1px 6px rgba(0,0,0,.2); }

/* Cuerpo */
.jt-card__body {
  padding: 18px 20px 16px; flex: 1;
  display: flex; flex-direction: column; gap: 8px;
}
.jt-card__name {
  font-size: 16px; font-weight: 700; color: var(--jt-navy);
  margin: 0; line-height: 1.3;
}
.jt-card:hover .jt-card__name { color: var(--jt-blue); }
.jt-card__location {
  font-size: 12px; color: var(--jt-gray-400);
  display: flex; align-items: center; gap: 4px; margin: 0;
}
.jt-card__rating {
  display: flex; align-items: center; gap: 3px; flex-wrap: wrap;
}
.jt-card__reviews { font-size: 12px; color: var(--jt-gray-400); margin-left: 2px; }
.jt-card__tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.jt-tag--more { background: var(--jt-gray-100); color: var(--jt-gray-500); }

/* Footer de la card */
.jt-card__footer {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: auto; padding: 12px 20px 16px;
  border-top: 1px solid var(--jt-gray-100);
  gap: 8px;
}
.jt-card__footer-meta { display: flex; flex-direction: column; gap: 4px; }
.jt-card__price {
  font-size: 15px; font-weight: 700; color: var(--jt-navy);
}
.jt-card__price small { font-size: 11px; font-weight: 400; color: var(--jt-gray-400); }

/* Disponibilidad badge inline */
.jt-card__disponib {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 700; padding: 3px 10px;
  border-radius: 20px;
}
.jt-disponib--inmediata { background: #dcfce7; color: #166534; }
.jt-disponib--cita      { background: var(--jt-blue-muted); color: var(--jt-navy); }
.jt-disponib--urgencias { background: #fee2e2; color: #991b1b; }

/* CTA button dentro de la card */
.jt-card__cta {
  display: inline-flex; align-items: center;
  padding: 8px 14px; border-radius: var(--jt-radius-sm);
  background: var(--jt-blue-muted); color: var(--jt-blue);
  font-size: 13px; font-weight: 700; white-space: nowrap;
  transition: background var(--jt-transition), color var(--jt-transition);
  flex-shrink: 0;
}
.jt-card:hover .jt-card__cta {
  background: var(--jt-blue); color: #fff;
}

/* ============================================================
   REGISTRO
   ============================================================ */
.jt-registro-wrapper {
  max-width: 820px; margin: 0 auto; padding: 0 0 60px;
}

/* Hero del registro — navy gradient */
.jt-reg-hero {
  text-align: center !important;
  background: linear-gradient(135deg, #0f2548 0%, var(--jt-navy) 50%, #1e4fa3 100%) !important;
  border-radius: var(--jt-radius) !important;
  padding: 48px 32px 40px !important;
  margin-bottom: 28px !important;
  position: relative !important;
  overflow: hidden !important;
}
.jt-reg-hero::before {
  content: '' !important;
  position: absolute !important; inset: 0 !important;
  background: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M20 20.5V18H0v5h5v5H0v5h20v-4.5h5v.5h5V25H25v-4.5h-5zM15 30H5V20h10v10zm15 0H20V20h10v10zM15 10H5V0h10v10zm15 0H20V0h10v10z'/%3E%3C/g%3E%3C/svg%3E") !important;
  pointer-events: none !important;
}
.jt-reg-hero__icon {
  font-size: 44px !important; margin-bottom: 14px !important;
  display: block !important; position: relative !important;
}
.jt-reg-hero__title {
  color: #fff !important; font-size: 28px !important;
  font-weight: 800 !important; margin: 0 0 10px !important;
  line-height: 1.2 !important; position: relative !important;
}
.jt-reg-hero__sub {
  color: rgba(255,255,255,.82) !important; margin: 0 0 30px !important;
  font-size: 15px !important; position: relative !important;
}

/* Pasos indicadores */
.jt-reg-hero__steps {
  display: flex !important; align-items: center !important;
  justify-content: center !important;
  position: relative !important;
}
.jt-reg-step {
  display: flex !important; flex-direction: column !important;
  align-items: center !important; gap: 6px !important;
}
.jt-reg-step__num {
  width: 34px !important; height: 34px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.18) !important;
  border: 2px solid rgba(255,255,255,.5) !important;
  color: #fff !important; font-size: 14px !important; font-weight: 700 !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}
.jt-reg-step__label {
  font-size: 11px !important; color: rgba(255,255,255,.75) !important;
  font-weight: 600 !important; text-transform: uppercase !important;
  letter-spacing: .04em !important; white-space: nowrap !important;
}
.jt-reg-step__divider {
  width: 56px !important; height: 2px !important;
  background: rgba(255,255,255,.25) !important;
  margin: 0 6px 18px !important; align-self: flex-start !important;
  margin-top: 16px !important;
  flex-shrink: 0 !important;
}

/* Secciones del formulario */
.jt-form-section {
  background: #fff !important; border: 1.5px solid var(--jt-gray-200) !important;
  border-radius: var(--jt-radius) !important; margin-bottom: 18px !important;
  overflow: hidden !important; box-shadow: var(--jt-shadow) !important;
}
.jt-form-section__head {
  display: flex !important; align-items: flex-start !important; gap: 14px !important;
  padding: 20px 24px !important; background: var(--jt-gray-50) !important;
  border-bottom: 1px solid var(--jt-gray-200) !important;
}
.jt-form-section__icon {
  width: 42px !important; height: 42px !important; border-radius: 10px !important;
  background: var(--jt-blue-muted) !important; color: var(--jt-blue) !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important; flex-shrink: 0 !important;
}
.jt-form-section__title {
  font-size: 15px !important; font-weight: 700 !important;
  color: var(--jt-navy) !important; margin: 0 0 4px !important;
  display: block !important;
}
.jt-form-section__desc {
  font-size: 13px !important; color: var(--jt-gray-500) !important; margin: 0 !important;
}
.jt-form-section__body { padding: 24px !important; }

/* Fila de 3 columnas */
.jt-form-row--3 { grid-template-columns: 1fr 1fr 1fr; }

/* Textarea grande */
.jt-textarea--lg { min-height: 140px; }

/* Área de submit */
.jt-form-submit-area {
  text-align: center; padding-top: 8px;
}
.jt-form-submit-area .jt-btn--full { max-width: 420px; margin: 0 auto; }

/* Success */
.jt-reg-success { text-align: center; padding: 48px 32px; }
.jt-reg-success__icon { font-size: 56px; margin-bottom: 16px; }
.jt-reg-success h3 { color: var(--jt-navy); font-size: 24px; margin-bottom: 12px; }

/* ============================================================
   FOTO UPLOAD (registro)
   ============================================================ */
.jt-photo-upload-wrap {
  position: relative; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 12px;
  padding: 32px 20px; border: 2px dashed var(--jt-gray-200);
  border-radius: var(--jt-radius); background: var(--jt-gray-50);
  text-align: center; cursor: pointer;
  transition: border-color var(--jt-transition), background var(--jt-transition);
  min-height: 180px;
}
.jt-photo-upload-wrap:hover,
.jt-photo-upload-wrap--drag { border-color: var(--jt-blue); background: var(--jt-blue-muted); }
.jt-photo-upload-wrap--has-photo { border-style: solid; border-color: var(--jt-blue); }
.jt-photo-preview {
  width: 120px; height: 120px; border-radius: 50%;
  object-fit: cover; border: 3px solid var(--jt-blue);
  box-shadow: 0 4px 16px rgba(37,99,235,.2);
  display: none;
}
.jt-photo-upload-placeholder { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.jt-photo-upload-label { font-size: 14px; color: var(--jt-gray-600); margin: 0; }
.jt-photo-upload-label small { display: block; font-size: 12px; color: var(--jt-gray-400); margin-top: 4px; }
.jt-photo-input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }

/* Input con icono */
.jt-input-icon-wrap { position: relative; }
.jt-input-icon-wrap svg {
  position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
  color: var(--jt-gray-400); pointer-events: none;
}
.jt-input--icon { padding-left: 34px; }

/* ============================================================
   RESEÑAS
   ============================================================ */
.jt-reviews-list { display: flex; flex-direction: column; gap: 12px; }
.jt-review-item {
  display: block; padding: 18px 20px; background: var(--jt-gray-50);
  border-radius: var(--jt-radius-sm); border: 1px solid var(--jt-gray-100);
  transition: box-shadow var(--jt-transition), border-color var(--jt-transition), transform var(--jt-transition);
  text-decoration: none; color: inherit;
}
.jt-review-item--link { cursor: pointer; }
.jt-review-item--link:hover {
  box-shadow: var(--jt-shadow-md); border-color: var(--jt-blue);
  transform: translateY(-2px); text-decoration: none; color: inherit;
}
.jt-review-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 10px; flex-wrap: wrap; gap: 8px;
}
.jt-review-stars { display: flex; align-items: center; gap: 3px; flex-shrink: 0; }
.jt-review-score { font-size: 12px; font-weight: 700; color: var(--jt-navy); margin-left: 6px; }
.jt-review-meta { display: flex; align-items: center; gap: 4px; }
.jt-review-author { font-size: 13px; font-weight: 600; color: var(--jt-gray-700); }
.jt-review-date { font-size: 12px; color: var(--jt-gray-400); }
.jt-review-arrow { color: var(--jt-gray-300); transition: color var(--jt-transition); }
.jt-review-item--link:hover .jt-review-arrow { color: var(--jt-blue); }
.jt-review-comment {
  font-size: 14px; color: var(--jt-gray-600); line-height: 1.65;
  margin: 0; font-style: italic;
}
.jt-reviews-empty {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: 32px 0; gap: 8px;
  color: var(--jt-gray-400); font-size: 14px;
}

/* ── Formulario de reseña pública ─────────────────────────── */
.jt-review-form-wrap {
  margin-top: 24px; border-top: 1px solid var(--jt-gray-100); padding-top: 20px;
}
.jt-review-form-toggle {
  display: inline-flex; align-items: center; gap: 7px;
  background: none; border: 1.5px solid var(--jt-blue); color: var(--jt-blue);
  padding: 9px 20px; border-radius: var(--jt-radius-sm);
  font-size: 14px; font-weight: 600; cursor: pointer;
  transition: background var(--jt-transition), color var(--jt-transition);
}
.jt-review-form-toggle:hover { background: var(--jt-blue); color: #fff; }
.jt-review-form-box {
  margin-top: 20px; background: var(--jt-gray-50);
  border: 1px solid var(--jt-gray-100); border-radius: var(--jt-radius);
  padding: 24px;
}
.jt-review-form-footer {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-top: 16px; flex-wrap: wrap;
}
.jt-review-form-note {
  display: flex; align-items: center; gap: 5px;
  font-size: 12px; color: var(--jt-gray-400); margin: 0;
}
/* Estrellas del formulario público (más pequeñas que las del expediente) */
#jt-pub-star-picker { font-size: 28px; }
#jt-pub-star-picker .jt-star-pick { color: var(--jt-gray-200); transition: color .1s; cursor: pointer; }
#jt-pub-star-picker .jt-star-pick.active,
#jt-pub-star-picker .jt-star-pick.hover { color: #f59e0b; }
.jt-required { color: #ef4444; }

/* ============================================================
   PERFIL PÚBLICO DE ABOGADO  (.jt-profile-*)
   ============================================================ */
.jt-profile {
  max-width: 1160px; margin: 0 auto; padding: 28px 20px 64px;
}

/* Breadcrumb */
.jt-profile-breadcrumb {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  font-size: 13px; color: var(--jt-gray-400); margin-bottom: 24px;
}
.jt-profile-breadcrumb a { color: var(--jt-blue); text-decoration: none; }
.jt-profile-breadcrumb a:hover { text-decoration: underline; }
.jt-profile-breadcrumb svg { flex-shrink: 0; }

/* ── Hero card ─────────────────────────────────────────────── */
.jt-profile-hero {
  background: #fff; border-radius: var(--jt-radius);
  border: 1.5px solid var(--jt-gray-200);
  box-shadow: var(--jt-shadow-md);
  margin-bottom: 24px; overflow: hidden;
  border-top: 4px solid var(--jt-navy);
}
.jt-profile-hero__main {
  display: flex; gap: 28px; align-items: flex-start;
  padding: 28px 32px 24px;
}

/* Foto */
.jt-profile-hero__photo { flex-shrink: 0; }
.jt-profile-photo {
  width: 160px; height: 213px;  /* 3:4 ratio (160 * 4/3 ≈ 213) */
  aspect-ratio: 3 / 4;
  border-radius: 14px;
  object-fit: cover;
  object-position: center top;
  box-shadow: 0 4px 20px rgba(0,0,0,.14);
  display: block;
}
.jt-profile-photo-placeholder {
  width: 160px; height: 213px;
  aspect-ratio: 3 / 4;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--jt-gray-100), var(--jt-gray-200));
  display: flex; align-items: center; justify-content: center;
  color: var(--jt-gray-400);
}

/* Info */
.jt-profile-hero__info { flex: 1; min-width: 0; }
.jt-profile-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }

/* Disponibilidad inline badge */
.jt-profile-disp {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 10px; border-radius: 20px; font-size: 12px; font-weight: 700;
}
.jt-profile-disp__dot {
  width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0;
}
.jt-profile-disp--inmediata { background: #dcfce7; color: #166534; }
.jt-profile-disp--inmediata .jt-profile-disp__dot { background: #16a34a; }
.jt-profile-disp--cita      { background: var(--jt-blue-muted); color: var(--jt-navy); }
.jt-profile-disp--cita .jt-profile-disp__dot { background: var(--jt-blue); }
.jt-profile-disp--urgencias { background: #fee2e2; color: #991b1b; }
.jt-profile-disp--urgencias .jt-profile-disp__dot { background: var(--jt-red); }

.jt-profile-name {
  font-size: 26px; font-weight: 800; color: var(--jt-navy);
  margin: 0 0 10px; line-height: 1.2;
}
.jt-profile-meta-row {
  display: flex; align-items: center; gap: 6px;
  font-size: 14px; color: var(--jt-gray-600); margin: 5px 0;
}
.jt-profile-meta-row svg { flex-shrink: 0; color: var(--jt-gray-400); }
.jt-profile-rating {
  display: flex; align-items: center; gap: 4px;
  margin-top: 14px; flex-wrap: wrap;
}
.jt-profile-reviews-link {
  font-size: 12px; color: var(--jt-blue); text-decoration: none; margin-left: 4px;
}
.jt-profile-reviews-link:hover { text-decoration: underline; }

/* Stats bar */
.jt-profile-stats {
  display: flex; align-items: stretch;
  background: var(--jt-gray-50);
  border-top: 1px solid var(--jt-gray-200);
}
.jt-profile-stat {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 18px 20px; flex: 1;
  border-right: 1px solid var(--jt-gray-200); text-align: center;
}
.jt-profile-stat:last-child { border-right: none; }
.jt-profile-stat__val {
  font-size: 20px; font-weight: 800; color: var(--jt-navy); line-height: 1.1;
}
.jt-profile-stat__key {
  font-size: 11px; color: var(--jt-gray-400);
  text-transform: uppercase; letter-spacing: .05em; margin-top: 4px;
}

/* ── Body layout ───────────────────────────────────────────── */
.jt-profile-body {
  display: grid; grid-template-columns: 1fr 340px;
  gap: 24px; align-items: start;
}

/* ── Secciones de contenido ────────────────────────────────── */
.jt-profile-section {
  background: #fff; border-radius: var(--jt-radius);
  border: 1.5px solid var(--jt-gray-200);
  box-shadow: var(--jt-shadow); margin-bottom: 20px; overflow: hidden;
}
.jt-profile-section__head {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 24px; background: var(--jt-gray-50);
  border-bottom: 1px solid var(--jt-gray-100);
}
.jt-profile-section__icon {
  width: 34px; height: 34px; border-radius: 8px;
  background: var(--jt-blue-muted); color: var(--jt-blue);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.jt-profile-section__title {
  font-size: 15px; font-weight: 700; color: var(--jt-navy); margin: 0;
}
.jt-profile-section__body { padding: 24px; }
.jt-profile-nota { font-size: 14px; color: var(--jt-gray-500); margin: 0 0 16px; }

/* Tags como links */
.jt-tag--link {
  text-decoration: none; transition: background var(--jt-transition), color var(--jt-transition);
}
.jt-tag--link:hover { background: var(--jt-blue); color: #fff; }

/* Attrs grid */
.jt-profile-attrs { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }

/* ── Sidebar ───────────────────────────────────────────────── */
.jt-profile-sidebar { position: sticky; top: 24px; }

/* CTA de contacto */
.jt-profile-cta {
  background: #fff; border-radius: var(--jt-radius);
  border: 1.5px solid var(--jt-gray-200);
  box-shadow: var(--jt-shadow-md); overflow: hidden; margin-bottom: 16px;
}
.jt-profile-cta__header {
  background: linear-gradient(135deg, var(--jt-navy) 0%, #1e4fa3 100%);
  padding: 20px 24px;
}
.jt-profile-cta__price-label {
  display: block; font-size: 11px; font-weight: 700; color: rgba(255,255,255,.65);
  text-transform: uppercase; letter-spacing: .08em; margin-bottom: 4px;
}
.jt-profile-cta__price {
  font-size: 28px; font-weight: 800; color: #fff; margin: 0; line-height: 1;
}
.jt-profile-cta__price small {
  font-size: 13px; font-weight: 400; opacity: .75; margin-left: 4px;
}
.jt-profile-cta__body {
  padding: 20px 24px; display: flex; flex-direction: column; gap: 10px;
}
.jt-profile-cta__note {
  display: flex; align-items: center; gap: 5px;
  font-size: 12px; color: var(--jt-gray-500); margin: 0;
}
.jt-profile-cta__note svg { color: var(--jt-gray-400); flex-shrink: 0; }
/* Botón CTA principal — más grande y llamativo */
.jt-btn--cta {
  background: var(--jt-blue) !important; border-color: var(--jt-blue) !important;
  font-size: 15px !important; padding: 15px 20px !important;
  letter-spacing: .01em; border-radius: 10px !important;
  box-shadow: 0 4px 18px rgba(37,99,235,.35);
  transition: background .18s, transform .15s, box-shadow .15s !important;
}
.jt-btn--cta:hover {
  background: #1d4ed8 !important; border-color: #1d4ed8 !important;
  transform: translateY(-2px); box-shadow: 0 6px 24px rgba(37,99,235,.45);
}

/* Info rows en sidebar */
.jt-profile-info-row {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 13px; color: var(--jt-gray-600); margin-bottom: 10px; line-height: 1.5;
}
.jt-profile-info-row:last-child { margin-bottom: 0; }
.jt-profile-info-row svg { color: var(--jt-gray-400); flex-shrink: 0; margin-top: 2px; }

/* Sello de plataforma en sidebar */
.jt-profile-badge-card { text-align: center; background: var(--jt-navy) !important; border-color: var(--jt-navy) !important; }
.jt-profile-badge-label { font-size: 10px; font-weight: 700; color: rgba(255,255,255,.6); text-transform: uppercase; letter-spacing: .1em; margin: 0 0 4px; }
.jt-profile-badge-brand { font-size: 16px; color: #fff; display: block; margin-bottom: 4px; }
.jt-profile-badge-sub { font-size: 11px; color: rgba(255,255,255,.6); margin: 0; }

/* Tarjetas sidebar */
.jt-profile-card {
  background: #fff; border-radius: var(--jt-radius);
  border: 1.5px solid var(--jt-gray-200);
  padding: 20px 24px; box-shadow: var(--jt-shadow); margin-bottom: 16px;
}
.jt-profile-card h4 {
  font-size: 11px; font-weight: 700; color: var(--jt-gray-400);
  text-transform: uppercase; letter-spacing: .07em; margin: 0 0 14px;
}

/* Links sidebar */
.jt-profile-links { display: flex; flex-direction: column; gap: 10px; }
.jt-profile-link {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; color: var(--jt-blue); text-decoration: none;
  padding: 8px 10px; border-radius: var(--jt-radius-sm);
  transition: background var(--jt-transition);
}
.jt-profile-link:hover { background: var(--jt-blue-muted); }

/* Dirección */
.jt-profile-address {
  display: flex; align-items: flex-start; gap: 6px;
  font-size: 14px; color: var(--jt-gray-600); margin: 0; line-height: 1.5;
}
.jt-profile-address svg { flex-shrink: 0; margin-top: 2px; color: var(--jt-gray-400); }

/* ============================================================
   PANEL (DASHBOARD)
   ============================================================ */
.jt-panel-wrapper { max-width: 1000px; margin: 0 auto; padding: 0 20px 60px; }

.jt-panel-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 24px 0; border-bottom: 2px solid var(--jt-gray-200); margin-bottom: 28px;
}
.jt-panel-header__info { display: flex; align-items: center; gap: 16px; }
.jt-panel-avatar img {
  width: 56px; height: 56px; border-radius: 50%;
  object-fit: cover; border: 2px solid var(--jt-gray-200);
}
.jt-panel-header h2 { font-size: 20px; color: var(--jt-navy); margin: 0 0 4px; }

/* Tabs */
.jt-panel-tabs { display: flex; gap: 4px; border-bottom: 2px solid var(--jt-gray-200); margin-bottom: 28px; }
.jt-tab-btn {
  padding: 10px 24px; border: none; background: transparent; cursor: pointer;
  font-size: 14px; font-weight: 600; color: var(--jt-gray-600);
  border-bottom: 3px solid transparent; margin-bottom: -2px; transition: var(--jt-transition);
}
.jt-tab-btn.jt-active { color: var(--jt-blue); border-bottom-color: var(--jt-blue); }
.jt-tab-panel { display: none; }
.jt-tab-panel.jt-active { display: block; }

/* Panel cards */
.jt-panel-card {
  background: #fff; border: 1.5px solid var(--jt-gray-200);
  border-radius: var(--jt-radius); padding: 24px; margin-bottom: 20px;
  box-shadow: var(--jt-shadow);
}
.jt-panel-card h4 { font-size: 15px; color: var(--jt-navy); margin: 0 0 18px; font-weight: 700; }
.jt-panel-card h2 { font-size: 18px; color: var(--jt-navy); margin: 0 0 14px; }
.jt-panel-section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.jt-panel-section-header h3 { font-size: 18px; color: var(--jt-navy); margin: 0; }

/* Expedientes */
.jt-exp-list { display: flex; flex-direction: column; gap: 12px; }
.jt-exp-item {
  background: #fff; border: 1.5px solid var(--jt-gray-200);
  border-radius: var(--jt-radius); padding: 16px 20px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; transition: box-shadow var(--jt-transition);
}
.jt-exp-item:hover { box-shadow: var(--jt-shadow); }
.jt-exp-item--closed { opacity: .65; }
.jt-exp-item__info { flex: 1; min-width: 200px; }
.jt-exp-item__name { font-weight: 700; color: var(--jt-navy); font-size: 15px; margin-bottom: 4px; }
.jt-exp-item__meta { font-size: 12px; color: var(--jt-gray-400); line-height: 1.6; }
.jt-exp-item__actions { display: flex; gap: 8px; flex-shrink: 0; }

/* Modal */
.jt-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.jt-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.55); backdrop-filter: blur(2px); }
.jt-modal__box {
  position: relative; background: #fff; border-radius: var(--jt-radius);
  width: 100%; max-width: 700px; max-height: 90vh; overflow-y: auto;
  box-shadow: var(--jt-shadow-md);
}
.jt-modal__header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 24px; border-bottom: 1px solid var(--jt-gray-200);
  position: sticky; top: 0; background: #fff; z-index: 1;
}
.jt-modal__header h3 { margin: 0; font-size: 18px; color: var(--jt-navy); }
.jt-modal__close {
  background: none; border: none; font-size: 20px; cursor: pointer;
  color: var(--jt-gray-400); line-height: 1; padding: 6px 8px;
  border-radius: var(--jt-radius-sm); transition: var(--jt-transition);
}
.jt-modal__close:hover { background: var(--jt-gray-100); color: var(--jt-gray-800); }
.jt-modal__body { padding: 24px; }

/* Files */
.jt-files-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.jt-file-item {
  display: flex; align-items: center; gap: 12px; padding: 12px 16px;
  border: 1px solid var(--jt-gray-200); border-radius: var(--jt-radius-sm);
  background: var(--jt-gray-50); transition: var(--jt-transition);
}
.jt-file-item:hover { background: #fff; box-shadow: var(--jt-shadow); }
.jt-file-icon { font-size: 22px; flex-shrink: 0; }
.jt-file-info { flex: 1; min-width: 0; }
.jt-file-name {
  font-size: 14px; font-weight: 600; color: var(--jt-navy);
  text-decoration: none; white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; display: block;
}
.jt-file-name:hover { color: var(--jt-blue); }
.jt-file-meta { font-size: 11px; color: var(--jt-gray-400); }

/* ============================================================
   SINGLE ABOGADO
   ============================================================ */
.jt-single-abogado { max-width: 1160px; margin: 0 auto; padding: 0 20px 60px; }

.jt-breadcrumb {
  font-size: 13px; color: var(--jt-gray-400); margin-bottom: 20px;
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.jt-breadcrumb a { color: var(--jt-blue); text-decoration: none; }
.jt-breadcrumb a:hover { text-decoration: underline; }

.jt-single-layout { display: grid; grid-template-columns: 1fr 320px; gap: 32px; align-items: start; }

/* Hero card */
.jt-single-hero { display: flex; gap: 28px; align-items: flex-start; }
.jt-single-hero__photo { flex-shrink: 0; }
.jt-single-photo {
  width: 180px; height: 180px; object-fit: cover;
  border-radius: 14px; box-shadow: var(--jt-shadow-md);
}
.jt-photo-placeholder {
  width: 180px; height: 180px;
  background: linear-gradient(135deg, #f1f5f9, #e2e8f0);
  border-radius: 14px; display: flex; align-items: center;
  justify-content: center; color: var(--jt-gray-400);
}
.jt-single-hero__info { flex: 1; }
.jt-single-hero__badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.jt-single-hero__info h1 { font-size: 26px; color: var(--jt-navy); margin: 0 0 8px; line-height: 1.2; }
.jt-single-despacho,
.jt-single-location,
.jt-single-exp,
.jt-single-cedula { font-size: 14px; color: var(--jt-gray-600); margin: 5px 0; display: flex; align-items: center; gap: 6px; }
.jt-single-rating { display: flex; align-items: center; gap: 4px; margin: 12px 0; }

/* Prose */
.jt-prose { font-size: 15px; line-height: 1.75; color: var(--jt-gray-600); }
.jt-single-nota { font-size: 14px; color: var(--jt-gray-500); margin: 0 0 14px; }

/* Attrs (modalidades + idiomas) */
.jt-single-attrs { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.jt-attr-block h3 { font-size: 14px; font-weight: 700; color: var(--jt-navy); margin: 0 0 10px; }
.jt-attr-block ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.jt-attr-block li { font-size: 14px; color: var(--jt-gray-600); display: flex; align-items: center; gap: 6px; }

/* Video */
.jt-video-wrap { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: var(--jt-radius-sm); }
.jt-video-wrap iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

/* Sidebar */
.jt-single-sidebar { position: sticky; top: 24px; }
.jt-sidebar-card {
  background: #fff; border: 1.5px solid var(--jt-gray-200);
  border-radius: var(--jt-radius); padding: 20px; margin-bottom: 16px;
  box-shadow: var(--jt-shadow);
}
.jt-sidebar-card h4 { font-size: 14px; font-weight: 700; color: var(--jt-navy); margin: 0 0 14px; }
.jt-sidebar-card--cta { border-color: var(--jt-blue); background: var(--jt-gray-50); }
.jt-sidebar-price { font-size: 28px; font-weight: 800; color: var(--jt-navy); margin-bottom: 6px; }
.jt-sidebar-price small { font-size: 13px; font-weight: 400; color: var(--jt-gray-400); }
.jt-sidebar-schedule { font-size: 13px; color: var(--jt-gray-600); margin-bottom: 14px; }
.jt-sidebar-card .jt-btn { margin-bottom: 8px; }
.jt-sidebar-links { display: flex; flex-direction: column; gap: 10px; }
.jt-sidebar-link { font-size: 14px; color: var(--jt-blue); text-decoration: none; display: flex; align-items: center; gap: 8px; }
.jt-sidebar-link:hover { text-decoration: underline; }

/* Consultoría */
.jt-consultoria-box { display: flex; flex-direction: column; gap: 8px; }
.jt-consultoria-note { font-size: 12px; color: var(--jt-gray-400); margin: 0; line-height: 1.5; }

/* ============================================================
   CASO CLIENTE
   ============================================================ */
.jt-caso-page { min-height: 100vh; background: linear-gradient(180deg, #f4f6fb 0%, #eef2f8 100%); }

/* ── Brand header ─────────────────────────────────────────────── */
.jt-caso-brand {
  background: var(--jt-navy);
  background-image: linear-gradient(135deg, #1a3a6e 0%, #2e5594 100%);
  box-shadow: 0 2px 12px rgba(0,0,0,.15);
}
.jt-caso-brand__inner {
  max-width: 1100px; margin: 0 auto; padding: 16px 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.jt-caso-brand__logo {
  display: flex; align-items: center; gap: 10px;
  color: #fff; text-decoration: none; font-size: 16px; font-weight: 800;
  letter-spacing: .2px;
}
.jt-caso-brand__logo svg { color: #93c5fd; }
.jt-caso-brand__user {
  display: flex; align-items: center; gap: 10px;
  color: #fff; font-size: 13px;
}
.jt-caso-brand__user-name { opacity: .92; }
.jt-caso-brand__logout {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 8px;
  background: rgba(255,255,255,.12); color: #fff;
  transition: background .15s;
}
.jt-caso-brand__logout:hover { background: rgba(255,255,255,.22); }

/* ════════════════════════════════════════════════════════════════
   LOGIN: tarjeta de contraseña
   ════════════════════════════════════════════════════════════════ */
.jt-caso-login-wrap {
  min-height: calc(100vh - 200px);
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 48px 16px;
}
.jt-caso-login-card {
  background: #fff;
  border-radius: 16px;
  padding: 40px 36px 32px;
  max-width: 460px; width: 100%; text-align: center;
  box-shadow: 0 20px 60px -20px rgba(26,58,110,.25), 0 4px 16px rgba(0,0,0,.06);
  position: relative;
  border-top: 4px solid var(--jt-navy);
}
.jt-caso-login-shield {
  width: 76px; height: 76px; margin: 0 auto 18px;
  border-radius: 50%;
  background: linear-gradient(135deg, #dbeafe, #bfdbfe);
  display: flex; align-items: center; justify-content: center;
  color: var(--jt-navy);
  box-shadow: 0 8px 24px -8px rgba(26,58,110,.4);
}
.jt-caso-login-title {
  font-size: 22px; color: var(--jt-navy); margin: 0 0 6px;
  font-weight: 800;
}
.jt-caso-login-sub {
  color: var(--jt-gray-500); font-size: 14px; line-height: 1.55;
  margin: 0 0 22px;
}

.jt-caso-login-lawyer {
  display: flex; align-items: center; gap: 12px;
  background: var(--jt-gray-50);
  border: 1px solid var(--jt-gray-200);
  border-radius: 10px;
  padding: 10px 14px;
  margin-bottom: 22px;
  text-align: left;
}
.jt-caso-login-lawyer img,
.jt-caso-login-lawyer__avatar {
  width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex-shrink: 0;
}
.jt-caso-login-lawyer__avatar {
  background: var(--jt-blue-muted); color: var(--jt-blue);
  display: flex; align-items: center; justify-content: center;
}
.jt-caso-login-lawyer__info { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.jt-caso-login-lawyer__info small { font-size: 11px; color: var(--jt-gray-400); text-transform: uppercase; letter-spacing: .04em; }
.jt-caso-login-lawyer__info strong { font-size: 14px; color: var(--jt-navy); }

.jt-caso-login-form { text-align: left; }
.jt-input-wrap { position: relative; }
.jt-input-icon {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  color: var(--jt-gray-400); pointer-events: none;
}
.jt-input--icon { padding-left: 40px; padding-right: 42px; }
.jt-input-toggle {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  background: none; border: 0; padding: 6px; cursor: pointer;
  color: var(--jt-gray-400); transition: color .15s;
}
.jt-input-toggle:hover { color: var(--jt-navy); }
.jt-input-toggle.is-active { color: var(--jt-blue); }
.jt-input--lg { padding: 13px 14px; font-size: 15px; }

.jt-caso-login-help {
  margin-top: 18px; padding-top: 16px;
  border-top: 1px solid var(--jt-gray-100);
  display: flex; align-items: flex-start; gap: 8px;
  color: var(--jt-gray-500); font-size: 12.5px; line-height: 1.5;
  text-align: left;
}
.jt-caso-login-help svg { flex-shrink: 0; margin-top: 2px; color: var(--jt-blue); }

.jt-caso-login-secure {
  margin-top: 20px;
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--jt-gray-400); font-size: 12px;
}
.jt-caso-login-secure svg { color: #16a34a; }

/* Shake animation cuando falla el password */
@keyframes jt-shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-8px); }
  40%, 80% { transform: translateX(8px); }
}
.jt-caso-login-card.jt-shake { animation: jt-shake .45s ease; }

/* ════════════════════════════════════════════════════════════════
   LANGUAGE SWITCHER: [jt_lang_switcher]
   ════════════════════════════════════════════════════════════════ */
.jt-lang-switcher {
  display: inline-flex; align-items: center; gap: 4px;
  font-family: inherit;
}
.jt-lang-link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 10px;
  border-radius: 8px;
  text-decoration: none !important;
  font-size: 13px;
  font-weight: 600;
  color: var(--jt-gray-600);
  background: transparent;
  border: 1.5px solid transparent;
  transition: all .15s ease;
  line-height: 1;
}
.jt-lang-link:hover {
  background: var(--jt-gray-100);
  color: var(--jt-navy);
}
.jt-lang-link--active {
  background: var(--jt-blue-muted);
  color: var(--jt-navy) !important;
  border-color: var(--jt-blue);
  font-weight: 700;
}
.jt-lang-flag {
  font-size: 16px;
  line-height: 1;
  display: inline-block;
}
.jt-lang-label {
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: 12px;
}

/* Variant: header oscuro (sobre fondo navy) */
.jt-dir-hero .jt-lang-switcher .jt-lang-link,
header.elementor-element .jt-lang-switcher .jt-lang-link {
  color: rgba(255,255,255,.8);
}
.jt-dir-hero .jt-lang-switcher .jt-lang-link:hover,
header.elementor-element .jt-lang-switcher .jt-lang-link:hover {
  background: rgba(255,255,255,.12);
  color: #fff;
}
.jt-dir-hero .jt-lang-switcher .jt-lang-link--active,
header.elementor-element .jt-lang-switcher .jt-lang-link--active {
  background: rgba(255,255,255,.22);
  color: #fff !important;
  border-color: rgba(255,255,255,.4);
}

@media (max-width: 520px) {
  .jt-lang-link { padding: 5px 8px; gap: 4px; }
  .jt-lang-label { font-size: 11px; }
  .jt-lang-flag { font-size: 14px; }
}

/* ════════════════════════════════════════════════════════════════
   BLOG — Single post + Archive
   ════════════════════════════════════════════════════════════════ */
.jt-blog-page,
.jt-blog-archive-page { width: 100%; box-sizing: border-box; }
.jt-blog-page *,
.jt-blog-archive-page * { box-sizing: border-box; }

/* ── Single post hero ─────────────────────────────────────────── */
.jt-blog-hero {
  background: linear-gradient(135deg, #0f2548 0%, var(--jt-navy) 50%, #1e4fa3 100%);
  color: #fff !important;
  padding: 72px 24px 56px;
  position: relative; overflow: hidden;
}
.jt-blog-hero__inner {
  max-width: 860px; margin: 0 auto; position: relative; z-index: 1;
}
.jt-blog-breadcrumb {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  font-size: 13px; color: rgba(255,255,255,.7); margin-bottom: 20px;
}
.jt-blog-breadcrumb a { color: rgba(255,255,255,.85); text-decoration: none; }
.jt-blog-breadcrumb a:hover { color: #fff; text-decoration: underline; }
.jt-blog-hero__cat {
  display: inline-block;
  background: rgba(255,255,255,.15);
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 20px; padding: 5px 16px;
  font-size: 12px; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  text-decoration: none !important;
  margin-bottom: 18px;
  transition: background .15s;
}
.jt-blog-hero__cat:hover { background: rgba(255,255,255,.25); }
.jt-blog-hero__title {
  color: #fff !important; font-size: 42px; font-weight: 800;
  line-height: 1.18; margin: 0 0 18px;
  letter-spacing: -.3px;
  text-shadow: 0 2px 18px rgba(0,0,0,.2);
}
.jt-blog-hero__excerpt {
  color: rgba(255,255,255,.85) !important; font-size: 18px;
  line-height: 1.65; margin: 0 0 24px;
}
.jt-blog-meta {
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
  margin-top: 8px;
}
.jt-blog-meta__author {
  display: flex; align-items: center; gap: 10px;
}
.jt-blog-meta__author img {
  width: 36px; height: 36px; border-radius: 50%; border: 2px solid rgba(255,255,255,.3);
}
.jt-blog-meta__author strong {
  display: block; color: #fff; font-size: 14px; font-weight: 700;
}
.jt-blog-meta__author span {
  display: block; color: rgba(255,255,255,.65); font-size: 12px;
}
.jt-blog-meta__time {
  font-size: 13px; color: rgba(255,255,255,.7);
  padding-left: 20px; border-left: 1px solid rgba(255,255,255,.2);
}
.jt-blog-hero__image {
  margin-top: 36px; border-radius: 14px; overflow: hidden;
  box-shadow: 0 30px 60px -20px rgba(0,0,0,.5);
}
.jt-blog-hero__image img {
  width: 100%; height: auto; display: block;
  max-height: 460px; object-fit: cover;
}

/* ── Article body ─────────────────────────────────────────────── */
.jt-blog-article { padding: 50px 24px 30px; background: #fff; }
.jt-blog-article__inner { max-width: 740px; margin: 0 auto; }
.jt-blog-article .jt-prose {
  color: var(--jt-gray-700); font-size: 17px; line-height: 1.8;
}
.jt-blog-article .jt-prose h2 {
  font-size: 28px; color: var(--jt-navy); font-weight: 800;
  margin: 40px 0 16px; line-height: 1.3;
}
.jt-blog-article .jt-prose h3 {
  font-size: 22px; color: var(--jt-navy); font-weight: 700;
  margin: 32px 0 12px; line-height: 1.35;
}
.jt-blog-article .jt-prose p { margin: 0 0 18px; }
.jt-blog-article .jt-prose a {
  color: var(--jt-blue); text-decoration: underline; text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.jt-blog-article .jt-prose ul,
.jt-blog-article .jt-prose ol { margin: 0 0 24px 24px; }
.jt-blog-article .jt-prose li { margin-bottom: 8px; }
.jt-blog-article .jt-prose blockquote {
  border-left: 4px solid var(--jt-blue);
  background: var(--jt-gray-50);
  padding: 18px 24px; margin: 24px 0;
  font-style: italic; color: var(--jt-gray-700);
  border-radius: 0 10px 10px 0;
}
.jt-blog-article .jt-prose img {
  max-width: 100%; height: auto;
  border-radius: 12px; margin: 24px 0;
}

.jt-blog-tags {
  margin-top: 32px; padding-top: 24px;
  border-top: 1px solid var(--jt-gray-200);
  font-size: 14px; color: var(--jt-gray-500);
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.jt-blog-tags strong { margin-right: 4px; color: var(--jt-navy); }

/* ── Author box ───────────────────────────────────────────────── */
.jt-blog-author-box { background: var(--jt-gray-50); padding: 40px 24px; }
.jt-blog-author-box__inner {
  max-width: 740px; margin: 0 auto;
  background: #fff; border-radius: 14px;
  border: 1.5px solid var(--jt-gray-200);
  padding: 28px;
  display: flex; gap: 24px; align-items: flex-start;
}
.jt-blog-author-box img {
  width: 90px; height: 90px; border-radius: 50%; flex-shrink: 0;
  border: 3px solid #fff; box-shadow: 0 4px 14px rgba(0,0,0,.08);
}
.jt-blog-author-box small {
  font-size: 11px; color: var(--jt-gray-400);
  text-transform: uppercase; letter-spacing: .08em; font-weight: 700;
}
.jt-blog-author-box h3 {
  font-size: 20px; color: var(--jt-navy); margin: 4px 0 10px; font-weight: 800;
}
.jt-blog-author-box p {
  font-size: 14.5px; color: var(--jt-gray-600);
  line-height: 1.6; margin: 0 0 12px;
}
.jt-author-more {
  display: inline-block; font-size: 13px; font-weight: 700;
  color: var(--jt-blue); text-decoration: none;
}
.jt-author-more:hover { text-decoration: underline; }

/* ── Related posts ────────────────────────────────────────────── */
.jt-blog-related { padding: 50px 24px; background: #fff; }
.jt-blog-related__inner { max-width: 1100px; margin: 0 auto; }
.jt-blog-related h2 {
  font-size: 26px; color: var(--jt-navy); font-weight: 800;
  margin: 0 0 28px; text-align: center;
}

/* ── Blog cards grid ──────────────────────────────────────────── */
.jt-blog-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 24px;
}
.jt-blog-card {
  background: #fff; border-radius: 14px;
  border: 1.5px solid var(--jt-gray-200);
  overflow: hidden;
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.jt-blog-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px -12px rgba(0,0,0,.15);
  border-color: var(--jt-blue);
}
.jt-blog-card__link { text-decoration: none; color: inherit; display: block; }
.jt-blog-card__image {
  position: relative; aspect-ratio: 16 / 10; overflow: hidden;
  background: linear-gradient(135deg, #f1f5f9, #e2e8f0);
}
.jt-blog-card__image img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .4s;
}
.jt-blog-card:hover .jt-blog-card__image img { transform: scale(1.05); }
.jt-blog-card__placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 48px; color: var(--jt-gray-300);
}
.jt-blog-card__cat {
  position: absolute; top: 12px; left: 12px;
  background: rgba(26,58,110,.92); color: #fff;
  font-size: 11px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase;
  padding: 4px 10px; border-radius: 6px;
}
.jt-blog-card__body { padding: 20px 22px 22px; }
.jt-blog-card__body h3 {
  font-size: 17px; color: var(--jt-navy); font-weight: 800;
  margin: 0 0 8px; line-height: 1.35;
}
.jt-blog-card__body p {
  font-size: 13.5px; color: var(--jt-gray-500);
  line-height: 1.6; margin: 0 0 14px;
}
.jt-blog-card__meta {
  display: flex; gap: 8px; align-items: center;
  font-size: 12px; color: var(--jt-gray-400);
}
.jt-blog-card--lg .jt-blog-card__body h3 { font-size: 19px; }

/* ── CTA del blog ─────────────────────────────────────────────── */
.jt-blog-cta {
  background: var(--jt-navy);
  padding: 60px 24px 72px;
  text-align: center; color: #fff;
}
.jt-blog-cta__inner { max-width: 720px; margin: 0 auto; }
.jt-blog-cta h2 { color: #fff !important; font-size: 26px; margin: 0 0 12px; font-weight: 800; }
.jt-blog-cta p { color: rgba(255,255,255,.8) !important; font-size: 15px; margin: 0 0 24px; line-height: 1.6; }
.jt-blog-cta__btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ── Archive page ─────────────────────────────────────────────── */
.jt-blog-archive-hero {
  background: linear-gradient(135deg, #0f2548 0%, var(--jt-navy) 50%, #1e4fa3 100%);
  color: #fff; padding: 70px 24px 60px; text-align: center;
}
.jt-blog-archive-hero__badge {
  display: inline-block;
  background: rgba(255,255,255,.15);
  color: rgba(255,255,255,.95);
  border: 1px solid rgba(255,255,255,.22);
  padding: 5px 16px; border-radius: 20px;
  font-size: 12px; font-weight: 700; letter-spacing: .1em;
  margin-bottom: 18px;
}
.jt-blog-archive-hero h1 {
  color: #fff !important; font-size: 40px; font-weight: 800;
  margin: 0 0 14px;
}
.jt-blog-archive-hero p {
  color: rgba(255,255,255,.82) !important; font-size: 16px;
  max-width: 640px; margin: 0 auto;
}
.jt-blog-archive-body { padding: 50px 24px; background: #fff; }
.jt-blog-archive-body__inner { max-width: 1200px; margin: 0 auto; }
.jt-blog-pagination {
  margin-top: 40px; text-align: center;
  display: flex; justify-content: center; gap: 8px; flex-wrap: wrap;
}
.jt-blog-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 12px;
  border-radius: 8px; background: #fff;
  border: 1.5px solid var(--jt-gray-200);
  color: var(--jt-navy); font-weight: 700; font-size: 14px;
  text-decoration: none;
  transition: all .15s;
}
.jt-blog-pagination .page-numbers:hover {
  background: var(--jt-blue-muted); border-color: var(--jt-blue);
}
.jt-blog-pagination .current {
  background: var(--jt-navy); color: #fff !important;
  border-color: var(--jt-navy);
}

/* Responsive */
@media (max-width: 900px) {
  .jt-blog-hero { padding: 56px 22px 42px; }
  .jt-blog-hero__title { font-size: 32px; }
  .jt-blog-hero__excerpt { font-size: 16px; }
  .jt-blog-archive-hero h1 { font-size: 30px; }
  .jt-blog-article { padding: 40px 20px 24px; }
  .jt-blog-article .jt-prose { font-size: 16px; }
  .jt-blog-article .jt-prose h2 { font-size: 24px; }
}
@media (max-width: 720px) {
  .jt-blog-hero { padding: 44px 18px 36px; }
  .jt-blog-hero__title { font-size: 26px; }
  .jt-blog-meta { gap: 12px; }
  .jt-blog-meta__time { padding-left: 0; border-left: 0; }
  .jt-blog-author-box__inner { flex-direction: column; align-items: center; text-align: center; }
  .jt-blog-author-box img { width: 72px; height: 72px; }
  .jt-blog-archive-hero { padding: 52px 18px 42px; }
  .jt-blog-archive-hero h1 { font-size: 24px; }
  .jt-blog-cta { padding: 48px 22px 56px; }
  .jt-blog-cta__btns { flex-direction: column; }
  .jt-blog-cta__btns .jt-btn { width: 100%; }
}

/* ════════════════════════════════════════════════════════════════
   LANDINGS DE CIUDAD: /abogados-en-{ciudad}/
   ════════════════════════════════════════════════════════════════ */
.jt-city-landing { width: 100%; box-sizing: border-box; }
.jt-city-landing * { box-sizing: border-box; }
.jt-city-landing section { padding: 56px 24px; }
.jt-city-landing > section > div { max-width: 1100px; margin: 0 auto; }

.jt-city-hero {
  background: linear-gradient(135deg, #0f2548 0%, var(--jt-navy) 40%, #1e4fa3 100%);
  color: #fff !important;
  padding: 64px 24px 56px !important;
  position: relative; overflow: hidden;
}
.jt-city-hero::before {
  content: ''; position: absolute; inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}
.jt-city-hero__inner { position: relative; z-index: 1; }
.jt-city-breadcrumb {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  font-size: 13px; color: rgba(255,255,255,.7); margin-bottom: 24px;
}
.jt-city-breadcrumb a { color: rgba(255,255,255,.85); text-decoration: none; }
.jt-city-breadcrumb a:hover { text-decoration: underline; }
.jt-city-breadcrumb .jt-current { color: #fff; font-weight: 600; }
.jt-city-hero__badge {
  display: inline-block;
  background: rgba(255,255,255,.15);
  color: #fff; font-size: 12px; font-weight: 700;
  letter-spacing: .1em; padding: 5px 16px;
  border-radius: 20px; margin-bottom: 16px;
}
.jt-city-hero__title {
  color: #fff !important;
  font-size: 42px; font-weight: 800;
  margin: 0 0 16px; line-height: 1.15;
  text-shadow: 0 2px 16px rgba(0,0,0,.18);
}
.jt-city-hero__sub {
  color: rgba(255,255,255,.85) !important;
  font-size: 17px; line-height: 1.65;
  max-width: 720px; margin: 0 0 28px;
}
.jt-city-hero__stats {
  display: flex; gap: 28px; flex-wrap: wrap;
}
.jt-city-stat {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px; padding: 14px 22px;
  min-width: 130px; text-align: center;
}
.jt-city-stat strong {
  display: block; font-size: 28px; color: #fff; line-height: 1;
}
.jt-city-stat span {
  display: block; font-size: 12px;
  color: rgba(255,255,255,.7); margin-top: 4px;
  text-transform: uppercase; letter-spacing: .06em;
}

/* Intro SEO */
.jt-city-intro { background: #fff; }
.jt-city-intro h2 {
  font-size: 28px; color: var(--jt-navy);
  margin: 0 0 18px; font-weight: 800;
}
.jt-city-intro p {
  color: var(--jt-gray-600); font-size: 15.5px;
  line-height: 1.75; margin: 0 0 14px;
}
.jt-city-intro strong { color: var(--jt-navy); }
.jt-city-specialties { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--jt-gray-100); }
.jt-city-specialties h3 {
  font-size: 15px; color: var(--jt-navy); margin: 0 0 14px; font-weight: 700;
}
.jt-city-specialties__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.jt-city-specialties__tags .jt-tag small { opacity: .7; margin-left: 4px; }

/* Lista de abogados */
.jt-city-lawyers { background: var(--jt-gray-50); }
.jt-city-lawyers h2 {
  font-size: 26px; color: var(--jt-navy);
  margin: 0 0 6px; font-weight: 800;
}
.jt-city-lawyers__sub { color: var(--jt-gray-500); font-size: 14px; margin: 0 0 28px; }

/* FAQ */
.jt-city-faq { background: #fff; }
.jt-city-faq h2 {
  font-size: 26px; color: var(--jt-navy);
  margin: 0 0 24px; font-weight: 800;
}
.jt-faq-item {
  border: 1.5px solid var(--jt-gray-200); border-radius: 10px;
  padding: 16px 22px; margin-bottom: 10px;
  transition: border-color .15s, box-shadow .15s;
  background: #fff;
}
.jt-faq-item[open] { border-color: var(--jt-blue); box-shadow: 0 4px 16px rgba(37,99,235,.08); }
.jt-faq-item summary {
  font-weight: 700; color: var(--jt-navy);
  font-size: 15px; cursor: pointer; list-style: none;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.jt-faq-item summary::-webkit-details-marker { display: none; }
.jt-faq-item summary::after {
  content: '+'; font-size: 24px; color: var(--jt-blue); font-weight: 300;
  transition: transform .2s;
}
.jt-faq-item[open] summary::after { transform: rotate(45deg); }
.jt-faq-item p {
  color: var(--jt-gray-600); font-size: 14.5px; line-height: 1.7;
  margin: 14px 0 4px;
}

/* Ciudades cercanas */
.jt-city-nearby { background: var(--jt-gray-50); }
.jt-city-nearby h2 {
  font-size: 24px; color: var(--jt-navy);
  margin: 0 0 24px; font-weight: 800; text-align: center;
}
.jt-nearby-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
}
.jt-nearby-card {
  background: #fff; border: 1.5px solid var(--jt-gray-200);
  border-radius: 12px; padding: 18px 16px;
  text-decoration: none !important;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  transition: all .2s;
}
.jt-nearby-card:hover {
  border-color: var(--jt-blue); transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(37,99,235,.12);
}
.jt-nearby-card__icon { font-size: 20px; }
.jt-nearby-card__name { font-weight: 700; color: var(--jt-navy); font-size: 14px; text-align: center; }
.jt-nearby-card__count { font-size: 12px; color: var(--jt-gray-500); }

/* CTA final */
.jt-city-cta {
  background: var(--jt-navy);
  text-align: center; color: #fff;
  padding: 64px 24px 72px !important;
  border-radius: 16px;
  margin: 40px auto 60px;
  max-width: 1100px;
  box-shadow: 0 18px 50px -20px rgba(26,58,110,.55);
}
.jt-city-cta__inner {
  max-width: 720px; margin: 0 auto;
}
.jt-city-cta h2 {
  color: #fff !important; font-size: 28px;
  margin: 0 0 14px; font-weight: 800;
}
.jt-city-cta p {
  color: rgba(255,255,255,.85) !important; font-size: 15px;
  margin: 0 0 28px; line-height: 1.6;
}
.jt-city-cta__btns {
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
}
@media (max-width: 720px) {
  .jt-city-cta {
    padding: 48px 22px 56px !important;
    margin: 28px 14px 40px;
    border-radius: 14px;
  }
  .jt-city-cta h2 { font-size: 22px; }
}

@media (max-width: 900px) {
  .jt-city-landing section { padding: 44px 20px; }
  .jt-city-hero { padding: 52px 22px 44px !important; }
  .jt-city-hero__title { font-size: 32px; }
  .jt-city-hero__sub { font-size: 15px; }
  .jt-city-stat { min-width: 110px; padding: 10px 16px; }
  .jt-city-stat strong { font-size: 22px; }
  .jt-city-intro h2,
  .jt-city-lawyers h2,
  .jt-city-faq h2 { font-size: 22px; }
}
@media (max-width: 520px) {
  .jt-city-landing section { padding: 36px 16px; }
  .jt-city-hero__title { font-size: 26px; }
  .jt-city-hero__stats { gap: 10px; }
  .jt-city-stat { min-width: 95px; padding: 8px 12px; flex: 1; }
  .jt-city-cta__btns { flex-direction: column; }
  .jt-city-cta__btns .jt-btn { width: 100%; }
}

/* ════════════════════════════════════════════════════════════════
   PÁGINA CONSULTORÍA: [jt_consultoria_page]
   ════════════════════════════════════════════════════════════════ */
.jt-consult-page { width: 100%; box-sizing: border-box; }
.jt-consult-page * { box-sizing: border-box; }

/* ── Hero ─────────────────────────────────────────────────────── */
.jt-consult-hero {
  background: linear-gradient(135deg, #0f2548 0%, var(--jt-navy) 40%, #1e4fa3 100%);
  color: #fff;
  padding: 80px 32px 70px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.jt-consult-hero::before {
  content: ''; position: absolute; inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}
.jt-consult-hero__inner {
  max-width: 820px; margin: 0 auto; position: relative; z-index: 1;
}
.jt-consult-hero__badge {
  display: inline-block;
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.95);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 24px; padding: 6px 18px;
  font-size: 12px; font-weight: 700; letter-spacing: .1em;
  margin-bottom: 22px;
}
.jt-consult-hero__title {
  font-size: 42px; font-weight: 800;
  margin: 0 0 16px; line-height: 1.15;
  color: #fff !important;
  text-shadow: 0 2px 16px rgba(0,0,0,.2);
}
.jt-consult-hero__sub {
  color: rgba(255,255,255,.82) !important;
  font-size: 17px; line-height: 1.6;
  max-width: 640px; margin: 0 auto 28px;
}
.jt-consult-hero__features {
  display: flex; justify-content: center; flex-wrap: wrap;
  gap: 10px; margin: 0 0 32px;
}
.jt-consult-feature {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 30px; padding: 8px 16px;
  font-size: 13px; color: #fff; font-weight: 600;
}
.jt-consult-feature span { font-size: 16px; }
.jt-consult-hero__cta { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.jt-consult-cta-main {
  display: inline-flex !important; align-items: center !important; gap: 10px !important;
  padding: 16px 36px !important; font-size: 17px !important; font-weight: 800 !important;
  background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%) !important;
  color: #fff !important; border-radius: 12px !important; border: none !important;
  box-shadow: 0 10px 30px rgba(37,99,235,.45) !important;
  text-decoration: none !important; transition: transform .15s, box-shadow .15s !important;
}
.jt-consult-cta-main:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(37,99,235,.55) !important;
}
.jt-consult-hero__price-note {
  color: rgba(255,255,255,.72) !important;
  font-size: 13.5px; margin: 4px 0 0;
}
.jt-consult-hero__price-note strong { color: #fff; font-weight: 800; }

/* ── Banner urgente ───────────────────────────────────────────── */
.jt-consult-urgent {
  background: linear-gradient(135deg, #fef3c7 0%, #fee2e2 100%);
  border-top: 3px solid #f59e0b;
  border-bottom: 3px solid #dc2626;
  padding: 28px 24px;
}
.jt-consult-urgent__inner {
  max-width: 1100px; margin: 0 auto;
  display: flex; align-items: center; gap: 22px;
  flex-wrap: wrap;
}
.jt-consult-urgent__icon {
  width: 64px; height: 64px; flex-shrink: 0;
  background: #fff; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #dc2626;
  box-shadow: 0 4px 14px rgba(220,38,38,.25);
}
.jt-consult-urgent__text { flex: 1; min-width: 240px; }
.jt-consult-urgent__text h2 {
  font-size: 22px; color: #7c2d12; margin: 0 0 4px; font-weight: 800;
}
.jt-consult-urgent__text p {
  color: #92400e; margin: 0; font-size: 14px; line-height: 1.5;
}
.jt-consult-urgent__btn {
  background: #25d366 !important; color: #fff !important;
  border: none !important; border-radius: 10px !important;
  padding: 14px 22px !important; font-size: 15px !important; font-weight: 700 !important;
  display: inline-flex !important; align-items: center !important; gap: 8px !important;
  text-decoration: none !important;
  box-shadow: 0 6px 20px rgba(37,211,102,.45) !important;
  transition: transform .15s, box-shadow .15s !important;
  flex-shrink: 0;
}
.jt-consult-urgent__btn:hover {
  background: #1ebe57 !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(37,211,102,.55) !important;
}

/* ── Sección libros ───────────────────────────────────────────── */
.jt-consult-books {
  background: #f9fafb;
  padding: 70px 24px 60px;
}
.jt-consult-books__inner { max-width: 1100px; margin: 0 auto; }
.jt-consult-books__head { text-align: center; margin-bottom: 40px; }
.jt-consult-books__eyebrow {
  display: inline-block;
  color: var(--jt-blue); font-size: 12px; font-weight: 800;
  letter-spacing: .12em; margin-bottom: 10px;
}
.jt-consult-books__head h2 {
  font-size: 30px; color: var(--jt-navy);
  margin: 0 0 12px; font-weight: 800;
}
.jt-consult-books__head p {
  color: var(--jt-gray-500); font-size: 15px;
  max-width: 640px; margin: 0 auto; line-height: 1.6;
}
.jt-consult-books__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px; margin-bottom: 36px;
}
.jt-book-card {
  background: #fff; border-radius: 14px;
  border: 1.5px solid var(--jt-gray-200);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .2s, box-shadow .2s;
}
.jt-book-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,.1);
}
.jt-book-card__cover {
  height: 180px; display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.85); font-size: 64px;
  position: relative;
}
.jt-book-card__cover::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.2));
}
.jt-book-card__body { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.jt-book-card__body h3 {
  font-size: 17px; color: var(--jt-navy);
  margin: 0 0 8px; font-weight: 800;
}
.jt-book-card__body p {
  color: var(--jt-gray-600); font-size: 13.5px;
  margin: 0 0 16px; flex: 1; line-height: 1.55;
}
.jt-btn--amazon {
  background: #ff9900 !important; color: #fff !important;
  border: none !important; border-radius: 8px !important;
  padding: 9px 16px !important; font-size: 13px !important; font-weight: 700 !important;
  display: inline-flex !important; align-items: center !important; gap: 6px !important;
  text-decoration: none !important; align-self: flex-start;
  transition: background .15s, transform .15s !important;
}
.jt-btn--amazon:hover { background: #e88600 !important; transform: translateY(-1px); }
.jt-consult-books__foot { text-align: center; }

/* ── CTA Final ────────────────────────────────────────────────── */
.jt-consult-final {
  background: var(--jt-navy);
  padding: 56px 24px;
  text-align: center;
  color: #fff;
}
.jt-consult-final__inner { max-width: 720px; margin: 0 auto; }
.jt-consult-final h2 {
  font-size: 28px; color: #fff !important;
  margin: 0 0 10px; font-weight: 800;
}
.jt-consult-final p {
  color: rgba(255,255,255,.78) !important;
  font-size: 15px; margin: 0 0 26px;
}
.jt-consult-final__actions {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
}
.jt-btn--whatsapp {
  background: #25d366 !important; color: #fff !important;
  border: none !important; border-radius: 10px !important;
  font-weight: 700 !important;
  box-shadow: 0 6px 20px rgba(37,211,102,.45) !important;
  text-decoration: none !important;
}
.jt-btn--whatsapp:hover { background: #1ebe57 !important; }

/* Responsive */
@media (max-width: 900px) {
  .jt-consult-hero { padding: 60px 22px 50px; }
  .jt-consult-hero__title { font-size: 32px; }
  .jt-consult-books { padding: 50px 18px; }
  .jt-consult-books__grid { grid-template-columns: repeat(2, 1fr); }
  .jt-consult-books__head h2 { font-size: 24px; }
}
@media (max-width: 720px) {
  .jt-consult-hero { padding: 48px 18px 40px; }
  .jt-consult-hero__title { font-size: 26px; }
  .jt-consult-hero__sub { font-size: 14.5px; }
  .jt-consult-hero__features { gap: 6px; }
  .jt-consult-feature { font-size: 12px; padding: 6px 12px; }
  .jt-consult-cta-main { padding: 14px 22px !important; font-size: 15px !important; width: 100%; justify-content: center !important; }
  .jt-consult-urgent { padding: 22px 18px; }
  .jt-consult-urgent__inner { gap: 16px; }
  .jt-consult-urgent__icon { width: 52px; height: 52px; }
  .jt-consult-urgent__text h2 { font-size: 18px; }
  .jt-consult-urgent__btn { width: 100%; justify-content: center !important; }
  .jt-consult-books__grid { grid-template-columns: 1fr; gap: 18px; }
  .jt-book-card__cover { height: 150px; font-size: 50px; }
  .jt-consult-final h2 { font-size: 22px; }
  .jt-consult-final__actions { flex-direction: column; }
  .jt-consult-final__actions .jt-btn { width: 100%; }
}

/* ════════════════════════════════════════════════════════════════
   LOGIN INLINE (en /mi-panel/ sin sesión)
   ════════════════════════════════════════════════════════════════ */
.jt-login-wrap {
  display: flex; justify-content: center; align-items: center;
  padding: 40px 16px;
  min-height: 60vh;
}
.jt-login-card {
  background: #fff;
  border-radius: 16px;
  padding: 40px 36px 32px;
  max-width: 460px; width: 100%; text-align: center;
  box-shadow: 0 20px 60px -20px rgba(26,58,110,.25), 0 4px 16px rgba(0,0,0,.06);
  border-top: 4px solid var(--jt-navy);
}
.jt-login-shield {
  width: 76px; height: 76px; margin: 0 auto 18px;
  border-radius: 50%;
  background: linear-gradient(135deg, #dbeafe, #bfdbfe);
  display: flex; align-items: center; justify-content: center;
  color: var(--jt-navy);
  box-shadow: 0 8px 24px -8px rgba(26,58,110,.4);
}
.jt-login-title {
  font-size: 22px; color: var(--jt-navy); margin: 0 0 6px;
  font-weight: 800;
}
.jt-login-sub {
  color: var(--jt-gray-500); font-size: 14px; line-height: 1.55;
  margin: 0 0 24px;
}
#jt-inline-login-form { text-align: left; }

.jt-login-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin: -4px 0 16px; flex-wrap: wrap;
}
.jt-login-remember {
  display: flex; align-items: center; gap: 7px;
  font-size: 13px; color: var(--jt-gray-600); cursor: pointer;
  user-select: none;
}
.jt-login-remember input { width: 15px; height: 15px; cursor: pointer; }
.jt-login-forgot {
  font-size: 13px; color: var(--jt-blue); text-decoration: none;
}
.jt-login-forgot:hover { text-decoration: underline; }

.jt-login-divider {
  margin: 24px 0 16px; position: relative; text-align: center;
  color: var(--jt-gray-400); font-size: 12px;
}
.jt-login-divider::before {
  content: ''; position: absolute; left: 0; right: 0; top: 50%;
  border-top: 1px solid var(--jt-gray-200);
}
.jt-login-divider span {
  background: #fff; position: relative; padding: 0 12px;
}

.jt-login-secure {
  margin-top: 20px;
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--jt-gray-400); font-size: 12px;
}
.jt-login-secure svg { color: #16a34a; }

.jt-login-card.jt-shake { animation: jt-shake .45s ease; }

@media (max-width: 520px) {
  .jt-login-card { padding: 32px 22px 26px; }
  .jt-login-shield { width: 64px; height: 64px; }
  .jt-login-title { font-size: 20px; }
  .jt-login-row { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* ── Tarjeta de acceso del cliente (en modal Mi Panel) ──────────── */
.jt-access-card {
  background: linear-gradient(135deg, #f4f6fb 0%, #eef2f8 100%);
  border: 1px solid #dbe3f0;
  border-left: 4px solid var(--jt-blue);
}
.jt-access-card h4 {
  font-size: 14px; color: var(--jt-navy); margin: 0 0 14px;
  display: flex; align-items: center; gap: 6px;
}
.jt-access-row { margin-bottom: 14px; }
.jt-access-label {
  display: block; font-size: 12px; font-weight: 700;
  color: var(--jt-gray-600); margin-bottom: 6px;
  text-transform: uppercase; letter-spacing: .04em;
}
.jt-access-input-wrap {
  display: flex; gap: 6px; align-items: stretch; flex-wrap: wrap;
}
.jt-access-input {
  flex: 1; min-width: 0; background: #fff !important;
  font-size: 13px !important; font-family: ui-monospace, monospace !important;
}
.jt-access-input[readonly] { color: var(--jt-gray-600); }
.jt-access-input-wrap .jt-btn--sm { white-space: nowrap; flex-shrink: 0; }
.jt-access-hint {
  display: block; font-size: 11.5px; color: var(--jt-gray-500);
  margin-top: 6px; line-height: 1.5;
}
.jt-access-checkbox {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--jt-gray-700);
  cursor: pointer; margin: 10px 0 0;
  user-select: none;
}
.jt-access-checkbox input { width: 16px; height: 16px; cursor: pointer; }
.jt-access-actions {
  margin-top: 14px; padding-top: 12px;
  border-top: 1px dashed #c7d2e3;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.jt-access-result { font-size: 12.5px; font-weight: 600; }
.jt-copied { background: #dcfce7 !important; color: #166534 !important; }

@media (max-width: 520px) {
  .jt-access-input-wrap { flex-direction: column; }
  .jt-access-input-wrap .jt-btn--sm { width: 100%; }
}

/* ════════════════════════════════════════════════════════════════
   VISTA AUTENTICADA: expediente
   ════════════════════════════════════════════════════════════════ */
.jt-caso-container { max-width: 880px; margin: 0 auto; padding: 32px 16px 80px; }

/* Hero del caso */
.jt-caso-hero {
  background: #fff; border-radius: 14px;
  border: 1.5px solid var(--jt-gray-200);
  box-shadow: 0 8px 24px -10px rgba(0,0,0,.1);
  padding: 28px 30px;
  margin-bottom: 24px;
  border-top: 4px solid var(--jt-navy);
}
.jt-caso-hero__top {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 8px;
  margin-bottom: 10px;
}
.jt-caso-hero__date { color: var(--jt-gray-400); font-size: 12.5px; }
.jt-caso-hero__title {
  font-size: 26px; color: var(--jt-navy); font-weight: 800;
  margin: 4px 0 18px; line-height: 1.25;
}

.jt-badge--active {
  background: #dcfce7; color: #166534;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 20px;
  font-size: 12px; font-weight: 700;
}
.jt-badge--closed {
  background: var(--jt-gray-200); color: var(--jt-gray-600);
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 20px;
  font-size: 12px; font-weight: 700;
}
.jt-badge__dot {
  width: 6px; height: 6px; border-radius: 50%; background: currentColor;
  animation: jt-pulse 2s infinite;
}
@keyframes jt-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .4; }
}
.jt-badge--closed .jt-badge__dot { animation: none; opacity: .6; }

.jt-caso-hero__lawyer {
  display: flex; align-items: center; gap: 14px;
  background: var(--jt-gray-50);
  border-radius: 10px;
  padding: 12px 16px;
}
.jt-caso-hero__lawyer img {
  width: 50px; height: 50px; border-radius: 50%; object-fit: cover; flex-shrink: 0;
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
}
.jt-caso-hero__lawyer-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.jt-caso-hero__lawyer-info small {
  font-size: 11px; text-transform: uppercase;
  letter-spacing: .05em; color: var(--jt-gray-400);
}
.jt-caso-hero__lawyer-info strong { font-size: 15px; color: var(--jt-navy); }
.jt-caso-hero__lawyer-actions {
  display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px;
}
.jt-link-pill {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 10px; border-radius: 14px;
  background: #fff; border: 1px solid var(--jt-gray-200);
  color: var(--jt-navy); font-size: 12px; font-weight: 600;
  text-decoration: none; transition: all .15s;
}
.jt-link-pill:hover { background: var(--jt-navy); color: #fff; border-color: var(--jt-navy); }

/* Sección reutilizable (idéntica a perfil de abogado) */
.jt-caso-section {
  background: #fff; border-radius: 12px;
  border: 1.5px solid var(--jt-gray-200);
  box-shadow: 0 4px 14px -8px rgba(0,0,0,.08);
  margin-bottom: 20px; overflow: hidden;
}
.jt-caso-section__head {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 22px;
  background: var(--jt-gray-50);
  border-bottom: 1px solid var(--jt-gray-100);
}
.jt-caso-section__icon {
  width: 34px; height: 34px; border-radius: 8px;
  background: var(--jt-blue-muted); color: var(--jt-blue);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.jt-caso-section__head h2 {
  font-size: 15px; font-weight: 700; color: var(--jt-navy);
  margin: 0; flex: 1;
}
.jt-caso-section__count {
  font-size: 12px; color: var(--jt-gray-400);
  background: #fff; padding: 4px 10px;
  border: 1px solid var(--jt-gray-200); border-radius: 12px;
}
.jt-caso-section__body { padding: 22px; }

/* Archivos */
.jt-empty-state {
  text-align: center; padding: 32px 16px;
  color: var(--jt-gray-500); font-size: 14px;
}
.jt-empty-state p { margin: 0 0 4px; font-weight: 600; color: var(--jt-gray-600); }
.jt-empty-state small { color: var(--jt-gray-400); }

.jt-file-icon {
  width: 42px; height: 42px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; flex-shrink: 0;
}
.jt-file-icon--pdf { background: #fee2e2; color: #dc2626; }
.jt-file-icon--img { background: #dbeafe; color: #2563eb; }
.jt-file-icon--doc { background: var(--jt-gray-100); color: var(--jt-gray-600); }
.jt-file-meta__type {
  font-weight: 700; color: var(--jt-navy);
  background: var(--jt-gray-100); padding: 1px 6px;
  border-radius: 4px; font-size: 10.5px;
}

/* Footer privado */
.jt-caso-footer-note {
  margin-top: 32px; text-align: center;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 16px; border-radius: 20px;
  background: rgba(255,255,255,.6);
  color: var(--jt-gray-500); font-size: 12.5px;
  width: 100%; justify-content: center;
}
.jt-caso-footer-note svg { color: #16a34a; }

/* Responsive */
@media (max-width: 720px) {
  .jt-caso-brand__inner { padding: 12px 16px; }
  .jt-caso-brand__logo { font-size: 14px; }
  .jt-caso-login-wrap { padding: 32px 14px; min-height: calc(100vh - 160px); }
  .jt-caso-login-card { padding: 32px 22px 26px; }
  .jt-caso-login-shield { width: 64px; height: 64px; }
  .jt-caso-login-title { font-size: 20px; }
  .jt-caso-hero { padding: 22px 20px; }
  .jt-caso-hero__title { font-size: 21px; }
  .jt-caso-hero__lawyer { flex-direction: column; align-items: flex-start; text-align: left; }
  .jt-caso-hero__lawyer img { width: 44px; height: 44px; }
  .jt-caso-section__head { padding: 14px 16px; }
  .jt-caso-section__body { padding: 16px; }
  .jt-file-item { flex-wrap: wrap; }
  .jt-file-info { flex: 1; min-width: 60%; }
}

/* Star rating */
.jt-star-picker { display: flex; gap: 6px; font-size: 34px; margin: 12px 0; cursor: pointer; }
.jt-star-pick { color: var(--jt-gray-200); transition: color .1s; }
.jt-star-pick.active { color: #f59e0b; }

/* Map markers */
.jt-map-pin {
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--jt-blue); border: 3px solid #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.jt-map-pin--verif { background: var(--jt-green); }
.jt-map-popup { font-size: 13px; line-height: 1.5; min-width: 160px; }
.jt-map-popup a { color: var(--jt-blue); font-weight: 700; text-decoration: none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .jt-dir-hero__title { font-size: 30px !important; }
  .jt-cards-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
}

/* Tablet: sidebar encima */
@media (max-width: 900px) {
  .jt-dir-layout { flex-direction: column; padding: 20px 16px 48px; gap: 20px; }
  .jt-dir-sidebar { width: 100%; position: static; }
  .jt-dir-filters-body {
    display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
    padding: 16px;
  }
  .jt-dir-filter-group { margin-bottom: 0; }
  .jt-dir-filters-foot { padding: 12px 16px 14px; }
  .jt-dir-hero { padding: 36px 20px 32px !important; }
  .jt-dir-hero__title { font-size: 26px !important; }

  .jt-single-layout { grid-template-columns: 1fr; }
  .jt-single-sidebar { position: static; }
  .jt-form-row--2 { grid-template-columns: 1fr; }
  .jt-form-row--3 { grid-template-columns: 1fr 1fr; }
  .jt-profile-body { grid-template-columns: 1fr; }
  .jt-profile-sidebar { position: static; }
  .jt-profile-hero__main { gap: 20px; }

  /* Reordenar: mapa/resultados ANTES que el sidebar de filtros en mobile */
  .jt-dir-main    { order: 1; }
  .jt-dir-sidebar { order: 2; }
}

@media (max-width: 720px) {
  /* Mobile: padding al wrapper para que el hero tenga margen visible */
  .jt-dir-page { padding: 10px !important; }

  /* Hero ocupa ~45% de la altura de pantalla, con esquinas redondeadas */
  .jt-dir-hero {
    min-height: 45vh !important;
    padding: 40px 22px 36px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    border-radius: 12px !important;
  }
  .jt-dir-hero__badge { font-size: 10.5px !important; padding: 5px 14px !important; margin-bottom: 16px !important; }
  .jt-dir-hero__title { font-size: 28px !important; line-height: 1.2 !important; margin-bottom: 14px !important; }
  .jt-dir-hero__sub { font-size: 15px !important; margin-bottom: 28px !important; padding: 0 8px; }
  .jt-dir-searchbar { padding: 7px 7px 7px 16px; gap: 8px; margin: 0 4px; }
  .jt-dir-searchbar__input { font-size: 15px; }
  .jt-dir-searchbar__btn { padding: 11px 18px; font-size: 14px; }
  /* Layout: respetar 10px del wrapper */
  .jt-dir-layout { padding: 20px 0 56px !important; gap: 18px !important; }

  /* Sidebar (filtros) con 10px laterales */
  .jt-dir-sidebar { padding: 0 10px !important; box-sizing: border-box; width: 100% !important; }
  .jt-dir-filters-body { grid-template-columns: 1fr 1fr; }

  /* Main: ocupa todo el ancho y centra contenido */
  .jt-dir-main {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 10px !important;
    box-sizing: border-box !important;
  }

  /* Resultados centrados */
  .jt-dir-results-bar {
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
    padding: 0;
  }
  .jt-dir-results-count { width: 100%; text-align: center; font-size: 14px; }
  .jt-view-toggle { justify-content: center; width: 100%; }

  /* Mapa: ancho completo, centrado */
  .jt-mapa-container {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  #jt-mapa { width: 100% !important; }

  /* Cards grid centrado, sin offset lateral */
  .jt-cards-grid {
    padding: 0 !important;
    width: 100% !important;
    justify-items: center;
  }
  .jt-card { width: 100%; max-width: 420px; }

  /* Paginación centrada */
  #jt-pagination { display: flex; justify-content: center; width: 100%; }

  /* Fotos 1:1 (cuadradas) */
  .jt-card__photo { height: auto !important; aspect-ratio: 3 / 4 !important; }

  .jt-reg-hero { padding: 32px 20px 28px !important; }
  .jt-reg-step__divider { width: 36px !important; }
  .jt-form-section__body { padding: 18px !important; }
}

@media (max-width: 520px) {
  /* Hero aún más respirado en móvil pequeño */
  .jt-dir-hero { padding: 48px 18px 42px !important; }
  .jt-dir-hero__title { font-size: 24px !important; }
  .jt-dir-hero__sub { font-size: 14px !important; }
  .jt-dir-layout { padding: 16px 0 48px !important; gap: 16px !important; }
  .jt-dir-filters-body { grid-template-columns: 1fr; }
  .jt-dir-hero__badge { display: inline-block !important; }
  /* Profile */
  .jt-profile-hero__main { flex-direction: column; align-items: center; text-align: center; padding: 20px; }
  .jt-profile-hero__photo { margin: 0 auto; }
  .jt-profile-meta-row { justify-content: center; }
  .jt-profile-rating { justify-content: center; }
  .jt-profile-badges { justify-content: center; }
  .jt-profile-stats { flex-wrap: wrap; }
  .jt-profile-stat { min-width: 50%; border-right: none; border-bottom: 1px solid var(--jt-gray-200); }
  .jt-profile-attrs { grid-template-columns: 1fr; }
  .jt-single-hero { flex-direction: column; align-items: center; text-align: center; }
  .jt-single-hero__badges { justify-content: center; }
  .jt-single-photo, .jt-photo-placeholder { width: 130px; height: 130px; }
  .jt-caso-login-card { padding: 32px 20px; }
  .jt-exp-item { flex-direction: column; align-items: flex-start; }
  .jt-single-attrs { grid-template-columns: 1fr; }
  .jt-checkboxes-grid { grid-template-columns: 1fr 1fr; }
  .jt-cards-grid { grid-template-columns: 1fr; }
  .jt-modal__box { max-height: 95vh; }
  .jt-form-row--3 { grid-template-columns: 1fr; }
  .jt-reg-hero__steps { display: none !important; }
  .jt-form-section__head { flex-direction: column !important; gap: 10px !important; }
  .jt-reg-hero { padding: 28px 16px !important; }
}

/* ════════════════════════════════════════════════════════════════════
   RESPONSIVE PERFIL DE ABOGADO – Optimizado para Elementor Theme Builder
   ════════════════════════════════════════════════════════════════════ */

/* Tablet horizontal */
@media (max-width: 1024px) {
  .jt-profile-photo,
  .jt-profile-photo-placeholder { width: 140px; height: 187px; aspect-ratio: 3/4; }
  .jt-profile-name { font-size: 24px; }
  .jt-profile-hero__main { padding: 24px 24px 20px; gap: 22px; }
  .jt-profile-stat { padding: 14px 12px; }
  .jt-profile-stat__val { font-size: 18px; }
  .jt-profile-section__body { padding: 20px; }
}

/* Tablet vertical: Elementor pone columnas 66/33 una sobre otra */
@media (max-width: 900px) {
  .jt-profile-hero__main { padding: 22px 22px 18px; gap: 18px; }
  .jt-profile-photo,
  .jt-profile-photo-placeholder { width: 120px; height: 160px; aspect-ratio: 3/4; }
  .jt-profile-name { font-size: 22px; }
  .jt-profile-cta__price { font-size: 28px; }
  .jt-profile-section__head { padding: 14px 18px; }
  .jt-profile-section__body { padding: 18px; }
  .jt-tag--lg { padding: 5px 12px; font-size: 12px; }
}

/* Móvil grande */
@media (max-width: 720px) {
  .jt-profile-hero__main {
    flex-direction: column; align-items: center; text-align: center;
    padding: 22px 18px 18px; gap: 14px;
  }
  .jt-profile-hero__photo { margin: 0 auto; }
  .jt-profile-photo,
  .jt-profile-photo-placeholder { width: 110px; height: 147px; aspect-ratio: 3/4; }
  .jt-profile-name { font-size: 20px; line-height: 1.25; }
  .jt-profile-meta-row,
  .jt-profile-rating,
  .jt-profile-badges { justify-content: center; }
  .jt-profile-meta-row { font-size: 13px; flex-wrap: wrap; }
  .jt-profile-breadcrumb { padding: 10px 4px; font-size: 12px; flex-wrap: wrap; }

  /* Stats: 5 columnas → 2 columnas */
  .jt-profile-stats { flex-wrap: wrap; }
  .jt-profile-stat {
    flex: 0 0 50%; min-width: 50%; padding: 12px 8px;
    border-right: 1px solid var(--jt-gray-200);
    border-bottom: 1px solid var(--jt-gray-200);
  }
  .jt-profile-stat:nth-child(2n) { border-right: none; }
  .jt-profile-stat__val { font-size: 17px; }
  .jt-profile-stat__key { font-size: 10px; }

  /* Section head/body más compactos */
  .jt-profile-section__head { padding: 12px 16px; gap: 10px; }
  .jt-profile-section__icon { width: 30px; height: 30px; }
  .jt-profile-section__title { font-size: 14px; }
  .jt-profile-section__body { padding: 16px; }

  /* Reseñas más compactas */
  .jt-review-item { padding: 14px; }
  .jt-review-header { flex-direction: column; align-items: flex-start; gap: 6px; }
  .jt-review-comment { font-size: 13px; }

  /* Sidebar */
  .jt-profile-cta { padding: 0; }
  .jt-profile-cta__header { padding: 16px 18px 12px; }
  .jt-profile-cta__price { font-size: 26px; }
  .jt-profile-cta__body { padding: 14px 18px 18px; }
  .jt-profile-card { padding: 16px 18px; }
  .jt-btn--lg { padding: 13px 18px; font-size: 14px; }

  /* Attrs grid: 2 cols → 1 col */
  .jt-profile-attrs { grid-template-columns: 1fr; gap: 16px; }
}

/* Móvil pequeño */
@media (max-width: 480px) {
  .jt-profile-hero__main { padding: 18px 14px 14px; }
  .jt-profile-name { font-size: 18px; }
  .jt-profile-stat { flex: 0 0 100%; min-width: 100%; border-right: none; }
  .jt-profile-stat__val { font-size: 16px; }
  .jt-profile-section__body { padding: 14px; }
  .jt-tags-wrap { gap: 6px; }
  .jt-tag--lg { padding: 4px 10px; font-size: 11px; }
  .jt-profile-cta__price { font-size: 22px; }
  .jt-review-form-toggle { font-size: 13px; padding: 10px 14px; }
}

/* ════════════════════════════════════════════════════════════════
   RESPONSIVE HOME — sobrescribir estilos inline de Elementor
   (las secciones home-w3/w4 usan grid-template-columns inline)
   ════════════════════════════════════════════════════════════════ */

/* Tablet: 3 cols → 2 cols, 2 cols se queda */
@media (max-width: 900px) {
  .elementor-element-home-w3 > div > div[style*="grid-template-columns"],
  .elementor-element-home-w4 > div > div[style*="grid-template-columns"],
  .elementor-widget-text-editor div[style*="repeat(3,1fr)"],
  .elementor-widget-text-editor div[style*="repeat(3, 1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 18px !important;
  }
  /* Reducir paddings de cards en tablet */
  .elementor-widget-text-editor div[style*="padding:32px"] { padding: 24px 18px !important; }
  .elementor-widget-text-editor h2[style*="font-size:32px"] { font-size: 26px !important; }
  .elementor-widget-text-editor h2[style*="font-size:30px"] { font-size: 24px !important; }
}

/* Móvil: TODO a 1 columna, texto sin wrapping forzado */
@media (max-width: 720px) {
  /* Grids inline → 1 columna */
  .elementor-widget-text-editor div[style*="grid-template-columns"],
  .elementor-widget-text-editor div[style*="display:grid"],
  .elementor-widget-text-editor div[style*="display: grid"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  /* Headers de sección */
  .elementor-widget-text-editor h2[style*="font-size:32px"],
  .elementor-widget-text-editor h2[style*="font-size:30px"] {
    font-size: 22px !important;
    line-height: 1.25 !important;
  }
  .elementor-widget-text-editor h2 + p[style*="font-size:16px"],
  .elementor-widget-text-editor h2 + p[style*="font-size:15px"] {
    font-size: 14px !important;
  }

  /* Cards "¿Cómo funciona?" - texto centrado, padding razonable */
  .elementor-widget-text-editor div[style*="padding:32px 24px"] {
    padding: 22px 18px !important;
  }
  /* Cards "¿Por qué...?" - flex con icono lateral */
  .elementor-widget-text-editor div[style*="padding:26px"] {
    padding: 18px !important;
  }
  .elementor-widget-text-editor div[style*="display:flex"][style*="gap:18px"] {
    gap: 14px !important;
  }

  /* Iconos circulares más chicos */
  .elementor-widget-text-editor div[style*="width:56px;height:56px"] {
    width: 48px !important; height: 48px !important;
    font-size: 22px !important; margin-bottom: 12px !important;
  }
  .elementor-widget-text-editor div[style*="font-size:32px;flex-shrink:0"] {
    font-size: 26px !important;
  }

  /* Títulos de card */
  .elementor-widget-text-editor h3[style*="font-size:17px"] {
    font-size: 16px !important; margin-bottom: 6px !important;
  }
  .elementor-widget-text-editor p[style*="font-size:14px"] {
    font-size: 13.5px !important; line-height: 1.55 !important;
  }

  /* Section margin-bottom reducido */
  .elementor-widget-text-editor div[style*="margin-bottom:48px"] {
    margin-bottom: 28px !important;
  }
  .elementor-widget-text-editor div[style*="margin-bottom:36px"] {
    margin-bottom: 24px !important;
  }
}

/* Móvil pequeño: aún más compacto */
@media (max-width: 480px) {
  .elementor-widget-text-editor h2[style*="font-size:32px"],
  .elementor-widget-text-editor h2[style*="font-size:30px"] {
    font-size: 20px !important;
  }
  .elementor-widget-text-editor div[style*="padding:32px 24px"],
  .elementor-widget-text-editor div[style*="padding:26px"] {
    padding: 18px 14px !important;
  }
}

/* ════════════════════════════════════════════════════════════════
   RESPONSIVE MAPA — popup más compacto en mobile
   ════════════════════════════════════════════════════════════════ */
@media (max-width: 720px) {
  .leaflet-popup-content-wrapper {
    max-width: 220px !important;
  }
  .leaflet-popup-content { margin: 10px 12px !important; font-size: 13px !important; }
  .jt-map-popup img { max-height: 120px; object-fit: cover; }
  .jt-map-popup strong { font-size: 13px; }
  .jt-map-popup small { font-size: 11px; }
}

/* Imágenes/videos no desbordan el contenedor */
.jt-profile-section img,
.jt-profile-section iframe,
.jt-profile-section video { max-width: 100%; height: auto; }

/* Defensa: Elementor a veces fuerza overflow */
.jt-profile,
.jt-profile-hero,
.jt-profile-section,
.jt-profile-cta,
.jt-profile-card { max-width: 100%; box-sizing: border-box; }

