:root {
  --dv-blue:#0751a6;
  --dv-blue-dark:#07376f;
  --dv-blue-deep:#052c5c;
  --dv-blue-soft:#eaf3ff;
  --dv-green:#2e9b37;
  --dv-green-dark:#24782b;
  --dv-green-soft:#edf8ef;
  --dv-orange:#f59e0b;
  --dv-orange-soft:#fff7e6;
  --dv-red:#dc2626;
  --dv-red-soft:#fff1f2;
  --dv-purple:#7c3aed;
  --dv-gray:#f4f7fb;
  --dv-text:#14233f;
  --dv-muted:#64748b;
  --dv-border:#dce6f2;
  --dv-shadow:0 12px 30px rgba(11,43,91,.09);
  --dv-shadow-strong:0 24px 70px rgba(7,55,111,.25);
  --dv-radius:20px;
  --dv-max:1380px;
}

* {
  box-sizing:border-box;
}

html,
body {
  min-height:100%;
}

body.directorio-page {
  margin:0;
  color:var(--dv-text);
  background:
    radial-gradient(
      circle at top right,
      rgba(7,81,166,.08),
      transparent 30%
    ),
    radial-gradient(
      circle at bottom left,
      rgba(46,155,55,.07),
      transparent 30%
    ),
    var(--dv-gray);
}

body.dv-modal-open {
  overflow:hidden;
}

.dv-topbar {
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--dv-border);
  box-shadow:0 2px 12px rgba(0,0,0,.04);
}

.dv-topbar-inner {
  max-width:var(--dv-max);
  margin:auto;
  min-height:80px;
  padding:10px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.dv-brand {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  color:inherit;
  text-decoration:none;
}

.dv-brand:hover {
  text-decoration:none;
}

.dv-brand img {
  width:58px;
  height:58px;
  object-fit:contain;
  flex:0 0 58px;
}

.dv-brand strong {
  display:block;
  color:var(--dv-blue-dark);
  font-size:20px;
  line-height:1.1;
}

.dv-brand small {
  display:block;
  color:var(--dv-green);
  font-weight:800;
  margin-top:4px;
}

.dv-user {
  display:flex;
  align-items:center;
  gap:12px;
}

.dv-user-copy {
  text-align:right;
}

.dv-user-copy strong {
  display:block;
  color:var(--dv-blue-dark);
}

.dv-user-copy span {
  display:block;
  color:var(--dv-muted);
  font-size:12px;
}

.dv-avatar {
  width:46px;
  height:46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--dv-blue-soft);
  color:var(--dv-blue);
  font-weight:900;
  font-size:18px;
}

.dv-main {
  max-width:var(--dv-max);
  margin:auto;
  padding:24px 22px 42px;
}

.dv-hero {
  position:relative;
  overflow:hidden;
  border-radius:26px;
  color:#fff;
  padding:30px;
  margin-bottom:18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  background:
    radial-gradient(
      circle at 88% 20%,
      rgba(255,255,255,.15),
      transparent 19%
    ),
    radial-gradient(
      circle at 70% 90%,
      rgba(46,155,55,.28),
      transparent 28%
    ),
    linear-gradient(
      135deg,
      var(--dv-blue-deep),
      var(--dv-blue)
    );
  box-shadow:var(--dv-shadow-strong);
}

.dv-eyebrow,
.dv-modal-kicker {
  display:block;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  font-weight:900;
  opacity:.85;
  margin-bottom:8px;
}

.dv-hero h1 {
  color:#fff;
  margin:0 0 10px;
  font-size:34px;
  letter-spacing:-.025em;
}

.dv-hero p {
  max-width:790px;
  margin:0;
  color:#eaf3ff;
  font-size:16px;
  line-height:1.5;
}

.dv-hero-actions {
  flex:0 0 auto;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.dv-status {
  display:none;
  border-radius:14px;
  padding:13px 15px;
  margin-bottom:18px;
  border:1px solid #d8e7fb;
  background:var(--dv-blue-soft);
  color:var(--dv-blue-dark);
  font-weight:700;
}

.dv-status.show {
  display:block;
}

.dv-status.ok {
  background:#ecfdf5;
  border-color:#bbf7d0;
  color:#047857;
}

.dv-status.error {
  background:var(--dv-red-soft);
  border-color:#fecdd3;
  color:#be123c;
}

.dv-trust {
  display:grid;
  grid-template-columns:48px 1fr;
  gap:14px;
  align-items:start;
  background:linear-gradient(135deg,#f5fbf2,#f8fbff);
  border:1px solid #d5e9cf;
  border-radius:18px;
  padding:16px 18px;
  margin-bottom:18px;
}

.dv-trust-icon {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:var(--dv-green);
  color:#fff;
  font-weight:900;
  font-size:22px;
}

.dv-trust strong {
  display:block;
  color:var(--dv-green-dark);
  font-size:16px;
  margin-bottom:3px;
}

.dv-trust p {
  margin:0;
  color:#475569;
  line-height:1.45;
  font-size:13px;
}

.dv-stats {
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:14px;
  margin-bottom:18px;
}

.dv-stat {
  background:#fff;
  border:1px solid var(--dv-border);
  box-shadow:var(--dv-shadow);
  border-radius:18px;
  padding:15px;
  display:flex;
  align-items:center;
  gap:12px;
}

.dv-stat-icon {
  width:44px;
  height:44px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:var(--dv-blue);
  color:#fff;
  font-size:20px;
  font-weight:900;
}

.dv-stat-icon.draft {
  background:#64748b;
}

.dv-stat-icon.pending {
  background:var(--dv-orange);
}

.dv-stat-icon.published {
  background:var(--dv-green);
}

.dv-stat b {
  display:block;
  color:var(--dv-blue-dark);
  font-size:24px;
  line-height:1;
}

.dv-stat small {
  display:block;
  color:var(--dv-muted);
  margin-top:5px;
  font-weight:700;
}

.dv-toolbar {
  border-color:var(--dv-border);
  box-shadow:var(--dv-shadow);
  border-radius:18px;
  margin-bottom:18px;
}

.dv-toolbar-grid {
  display:grid;
  grid-template-columns:2fr minmax(220px,1fr) auto;
  gap:12px;
  align-items:end;
}

.dv-toolbar-action {
  display:flex;
}

.dv-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(330px,1fr));
  gap:18px;
}

.dv-card {
  background:#fff;
  border:1px solid var(--dv-border);
  border-radius:22px;
  box-shadow:var(--dv-shadow);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:350px;
}

.dv-card-top {
  padding:18px;
  border-bottom:1px solid #edf2f7;
  background:linear-gradient(135deg,#fff,#f8fbff);
}

.dv-badges {
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  margin-bottom:12px;
}

.dv-pill {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 9px;
  border-radius:999px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.03em;
  font-weight:900;
  color:#fff;
  background:#64748b;
}

.dv-pill.borrador {
  background:#64748b;
}

.dv-pill.pendiente_revision {
  background:var(--dv-orange);
  color:#3f2b00;
}

.dv-pill.publicado {
  background:var(--dv-green);
}

.dv-pill.observado {
  background:var(--dv-purple);
}

.dv-pill.rechazado,
.dv-pill.suspendido {
  background:var(--dv-red);
}

.dv-pill.archivado {
  background:#334155;
}

.dv-pill.taxonomy {
  background:var(--dv-blue);
}

.dv-card h2 {
  margin:0 0 7px;
  color:var(--dv-blue-dark);
  font-size:21px;
  line-height:1.2;
  word-break:break-word;
}

.dv-card-subtitle {
  margin:0;
  color:#475569;
  font-weight:700;
  line-height:1.35;
}

.dv-card-body {
  padding:17px 18px;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}

.dv-card-description {
  color:#526174;
  font-size:14px;
  line-height:1.48;
  margin:0 0 14px;
}

.dv-meta {
  display:grid;
  gap:8px;
  color:#475569;
  font-size:13px;
}

.dv-meta div {
  display:grid;
  grid-template-columns:22px 1fr;
  gap:6px;
  align-items:start;
}

.dv-observation {
  margin-top:14px;
  padding:11px 12px;
  border-radius:12px;
  border:1px solid #ddd6fe;
  background:#f5f3ff;
  color:#5b21b6;
  line-height:1.4;
  font-size:13px;
}

.dv-card-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  border-top:1px solid #edf2f7;
  padding-top:14px;
  margin-top:auto;
}

.dv-empty {
  grid-column:1 / -1;
  text-align:center;
  border-style:dashed;
  border-color:#bdd3ef;
  box-shadow:var(--dv-shadow);
  border-radius:22px;
}

.dv-empty .card-body {
  padding:42px 24px;
}

.dv-empty strong {
  display:block;
  color:var(--dv-blue-dark);
  font-size:20px;
  margin-bottom:8px;
}

.dv-empty span {
  color:var(--dv-muted);
}

.dv-modal-backdrop {
  position:fixed;
  inset:0;
  z-index:120;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(9,20,42,.60);
}

.dv-modal-backdrop.show {
  display:flex;
}

.dv-modal {
  width:min(97vw,1050px);
  max-height:94vh;
  overflow:auto;
  border-radius:24px;
  background:#fff;
  box-shadow:var(--dv-shadow-strong);
}

.dv-modal-images {
  width:min(97vw,980px);
}

.dv-modal-head {
  position:sticky;
  top:0;
  z-index:5;
  padding:21px 24px;
  color:#fff;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  background:linear-gradient(
    135deg,
    var(--dv-blue-dark),
    var(--dv-blue)
  );
}

.dv-modal-head h2 {
  margin:0;
  color:#fff;
  font-size:26px;
}

.dv-modal-head p {
  margin:6px 0 0;
  color:#eaf3ff;
  line-height:1.4;
}

.dv-close {
  border:0;
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(255,255,255,.16);
  color:#fff;
  font-size:29px;
  line-height:1;
  flex:0 0 auto;
}

.dv-modal-body {
  padding:22px 24px 26px;
}

.dv-privacy-note {
  display:grid;
  gap:4px;
  margin-bottom:20px;
  padding:14px 16px;
  border:1px solid #bfdbfe;
  border-radius:14px;
  background:#eff6ff;
}

.dv-privacy-note strong {
  color:var(--dv-blue-dark);
}

.dv-privacy-note span {
  color:#475569;
  line-height:1.45;
  font-size:13px;
}

.dv-form-section {
  border-top:1px solid #edf2f7;
  padding-top:20px;
  margin-top:20px;
}

.dv-form-section:first-of-type {
  margin-top:0;
}

.dv-form-section-head {
  display:grid;
  grid-template-columns:38px 1fr;
  gap:11px;
  align-items:start;
  margin-bottom:16px;
}

.dv-form-section-head > span {
  width:34px;
  height:34px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:var(--dv-blue);
  color:#fff;
  font-weight:900;
}

.dv-form-section-head h3 {
  margin:0 0 3px;
  color:var(--dv-blue-dark);
  font-size:18px;
}

.dv-form-section-head p {
  margin:0;
  color:var(--dv-muted);
  font-size:13px;
}

.dv-choice-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(150px,1fr));
  gap:10px;
}

.dv-choice {
  display:flex;
  gap:10px;
  align-items:flex-start;
  border:1px solid var(--dv-border);
  border-radius:14px;
  padding:12px;
  background:#fff;
  cursor:pointer;
}

.dv-choice:hover {
  border-color:#a9c8ed;
  background:#fbfdff;
}

.dv-choice input {
  margin-top:3px;
}

.dv-choice strong {
  display:block;
  color:var(--dv-blue-dark);
}

.dv-choice small {
  display:block;
  margin-top:3px;
  color:var(--dv-muted);
  line-height:1.35;
}

.dv-switch {
  display:flex;
  gap:11px;
  align-items:flex-start;
  padding:13px 14px;
  border-radius:14px;
  background:#fff8e8;
  border:1px solid #fde3a7;
  cursor:pointer;
}

.dv-switch input {
  margin-top:3px;
}

.dv-switch strong,
.dv-switch small {
  display:block;
}

.dv-switch strong {
  color:#854d0e;
}

.dv-switch small {
  color:#6b7280;
  margin-top:3px;
}

.dv-modal-actions {
  margin-top:24px;
  padding-top:17px;
  border-top:1px solid #edf2f7;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}

.dv-image-upload {
  padding:16px;
  border-radius:16px;
  border:1px dashed #a9c8ed;
  background:#f8fbff;
  margin-bottom:18px;
}

.dv-image-note {
  padding:13px 15px;
  background:#fff7e6;
  border:1px solid #f9d78f;
  color:#854d0e;
  border-radius:14px;
  margin-bottom:18px;
  font-weight:700;
}

.dv-image-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:12px;
}

.dv-image-card {
  border:1px solid var(--dv-border);
  border-radius:17px;
  background:#fff;
  overflow:hidden;
}

.dv-image-visual {
  min-height:115px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:18px;
  background:
    linear-gradient(135deg,#eef5ff,#f4faef);
  color:var(--dv-blue-dark);
}

.dv-image-visual span {
  display:block;
  font-size:34px;
  margin-bottom:5px;
}

.dv-image-card-body {
  padding:13px;
}

.dv-image-card-body strong {
  display:block;
  color:var(--dv-blue-dark);
  word-break:break-word;
}

.dv-image-card-body small {
  display:block;
  color:var(--dv-muted);
  margin-top:4px;
}

.dv-image-actions {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:11px;
}

.dv-empty-inline {
  grid-column:1 / -1;
  border:1px dashed #bdd3ef;
  border-radius:16px;
  padding:28px;
  text-align:center;
  color:var(--dv-muted);
  background:#fbfdff;
}

@media (max-width:900px) {
  .dv-hero {
    flex-direction:column;
    align-items:flex-start;
  }

  .dv-hero-actions {
    justify-content:flex-start;
  }

  .dv-stats {
    grid-template-columns:1fr 1fr;
  }

  .dv-toolbar-grid {
    grid-template-columns:1fr 1fr;
  }

  .dv-toolbar-action {
    grid-column:1 / -1;
  }

  .dv-choice-grid {
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:640px) {
  .dv-topbar-inner {
    padding:9px 13px;
  }

  .dv-brand img {
    width:48px;
    height:48px;
    flex-basis:48px;
  }

  .dv-brand strong {
    font-size:15px;
  }

  .dv-brand small {
    font-size:11px;
  }

  .dv-user-copy {
    display:none;
  }

  .dv-main {
    padding:15px 12px 28px;
  }

  .dv-hero {
    padding:22px;
    border-radius:21px;
  }

  .dv-hero h1 {
    font-size:27px;
  }

  .dv-hero-actions,
  .dv-hero-actions .btn {
    width:100%;
  }

  .dv-stats,
  .dv-toolbar-grid,
  .dv-choice-grid,
  .dv-grid {
    grid-template-columns:1fr;
  }

  .dv-modal-backdrop {
    padding:8px;
  }

  .dv-modal {
    width:100%;
    max-height:97vh;
    border-radius:19px;
  }

  .dv-modal-head {
    padding:18px;
  }

  .dv-modal-body {
    padding:18px;
  }

  .dv-modal-actions {
    flex-direction:column-reverse;
  }

  .dv-modal-actions .btn {
    width:100%;
  }

  .dv-image-actions .btn {
    flex:1 1 auto;
  }
}


/* =========================================================
   DIRECTORIO-F1-UX-A2
   Rediseño local. No modifica estilos de otros módulos.
   ========================================================= */

body.directorio-page {
  --dv-blue:#2563eb;
  --dv-blue-dark:#163b77;
  --dv-blue-deep:#102a52;
  --dv-green:#15966e;
  --dv-green-dark:#087453;
  --dv-gray:#f5f7fc;
  --dv-border:#e5eaf3;
  --dv-shadow:0 8px 28px rgba(30,52,94,.055);
  --dv-shadow-strong:0 20px 55px rgba(17,37,73,.13);
  --dv-radius:18px;
  color:#182b49;
  background:#f5f7fc;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}

.directorio-page .dv-topbar {
  background:rgba(255,255,255,.94);
  border-bottom:1px solid #e9edf5;
  box-shadow:none;
}

.directorio-page .dv-topbar-inner {
  min-height:72px;
}

.directorio-page .dv-main {
  max-width:1320px;
  padding-top:29px;
}

.directorio-page .dv-hero {
  border-radius:22px;
  padding:34px 38px;
  margin-bottom:24px;
  background:linear-gradient(115deg,#112c53,#1b4f98 72%,#246caa);
  box-shadow:0 14px 35px rgba(24,62,122,.13);
}

.directorio-page .dv-hero h1 {
  font-size:clamp(27px,3vw,38px);
  font-weight:800;
  letter-spacing:-.04em;
}

.directorio-page .dv-hero p {
  max-width:640px;
  font-size:15px;
  line-height:1.7;
}

.directorio-page .btn {
  border-radius:11px;
  font-weight:650;
  min-height:40px;
  transition:transform .15s ease,box-shadow .15s ease;
}

.directorio-page .btn:not(:disabled):hover {
  transform:translateY(-1px);
}

.directorio-page .dv-stats {
  gap:16px;
  margin-bottom:22px;
}

.directorio-page .dv-stat {
  min-height:102px;
  border-radius:18px;
  box-shadow:var(--dv-shadow);
  border:1px solid #e9edf5;
  padding:19px;
}

.directorio-page .dv-stat-icon {
  border-radius:13px;
  width:50px;
  height:50px;
}

.directorio-page .dv-stat b {
  font-size:29px;
  font-weight:800;
}

.directorio-page .dv-toolbar {
  border-radius:18px;
  box-shadow:var(--dv-shadow);
}

.directorio-page .form-label {
  font-weight:650;
  color:#334b6e;
  margin-bottom:8px;
}

.directorio-page .form-control,
.directorio-page .form-select {
  min-height:46px;
  padding:11px 14px;
  border:1px solid #dce4f0;
  border-radius:11px;
  background-color:#fff;
  font-size:14px;
  box-shadow:none;
}

.directorio-page textarea.form-control {
  min-height:130px;
}

.directorio-page .form-control:focus,
.directorio-page .form-select:focus {
  border-color:#5694ef;
  box-shadow:0 0 0 4px rgba(37,99,235,.10);
}

.directorio-page .dv-card {
  border-radius:19px;
  border-color:#e5eaf3;
  box-shadow:var(--dv-shadow);
  min-height:320px;
  transition:transform .16s ease,box-shadow .16s ease;
}

.directorio-page .dv-card:hover {
  transform:translateY(-3px);
  box-shadow:0 15px 38px rgba(20,50,90,.10);
}

.directorio-page .dv-card-top {
  background:#fff;
  padding:22px;
}

.directorio-page .dv-card-body {
  padding:20px 22px;
}

.directorio-page .dv-empty {
  border:1px dashed #bfd1e9;
  background:
    radial-gradient(circle at 50% 0,rgba(37,99,235,.045),transparent 65%),
    #fff;
  border-radius:22px;
}

.directorio-page .dv-empty .card-body {
  padding:65px 25px;
}

.directorio-page .dv-trust {
  border-radius:16px;
  background:#f0f8f4;
  border-color:#dbece2;
}

/* Editor de página completa, aislado del listado */
body.dv-editor-open .dv-main {
  display:none;
}

.directorio-page .dv-editor-screen {
  position:relative;
  inset:auto;
  z-index:auto;
  background:transparent;
  min-height:calc(100vh - 72px);
  padding:30px 20px 65px;
  align-items:initial;
  justify-content:initial;
}

.directorio-page .dv-editor-screen.show {
  display:block;
}

.directorio-page .dv-editor-screen .dv-modal {
  width:min(100%,1100px);
  max-height:none;
  overflow:visible;
  margin:0 auto;
  border:1px solid #e2e9f4;
  border-radius:22px;
  box-shadow:0 16px 48px rgba(27,49,84,.085);
}

.directorio-page .dv-editor-screen .dv-modal-head {
  position:static;
  padding:30px 34px;
  border-radius:21px 21px 0 0;
  background:linear-gradient(110deg,#102a52,#235b9e);
}

.directorio-page .dv-editor-screen .dv-modal-body {
  padding:30px 36px 40px;
}

.directorio-page .dv-wizard-eyebrow {
  display:block;
  font-size:11px;
  font-weight:800;
  letter-spacing:.13em;
  color:#2563eb;
  margin-bottom:8px;
}

.directorio-page .dv-wizard-intro h3 {
  font-size:23px;
  letter-spacing:-.025em;
  font-weight:750;
  margin:0 0 7px;
}

.directorio-page .dv-wizard-intro p {
  color:#64748b;
  margin-bottom:24px;
}

.directorio-page .dv-wizard-steps {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin-bottom:17px;
}

.directorio-page .dv-wizard-step {
  display:flex;
  align-items:center;
  text-align:left;
  gap:10px;
  padding:13px 10px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#f8fafc;
  color:#596b82;
  cursor:pointer;
}

.directorio-page .dv-wizard-step.active {
  color:#174684;
  border-color:#93b9ee;
  background:#eef5ff;
}

.directorio-page .dv-wizard-step.completed {
  border-color:#cfebdf;
  background:#f0faf5;
}

.directorio-page .dv-wizard-number {
  display:grid;
  place-items:center;
  flex:0 0 31px;
  width:31px;
  height:31px;
  border-radius:10px;
  background:#e2e8f0;
  font-size:13px;
  font-weight:800;
}

.directorio-page .dv-wizard-step.active .dv-wizard-number {
  color:#fff;
  background:#2563eb;
}

.directorio-page .dv-wizard-step.completed .dv-wizard-number {
  color:#087453;
  background:#d3f2e2;
}

.directorio-page .dv-wizard-step-text small,
.directorio-page .dv-wizard-step-text strong {
  display:block;
}

.directorio-page .dv-wizard-step-text small {
  font-size:10px;
  opacity:.8;
}

.directorio-page .dv-wizard-step-text strong {
  font-size:12px;
  line-height:1.3;
}

.directorio-page .dv-wizard-progress {
  height:5px;
  overflow:hidden;
  border-radius:20px;
  background:#e7edf6;
}

.directorio-page .dv-wizard-progress span {
  display:block;
  height:100%;
  width:20%;
  border-radius:20px;
  background:linear-gradient(90deg,#2563eb,#15966e);
  transition:width .2s ease;
}

.directorio-page .dv-wizard-position {
  color:#64748b;
  font-size:12px;
  font-weight:700;
  margin:10px 0 20px;
}

.directorio-page .dv-wizard-panel {
  display:none;
  border-top:0;
  margin-top:0;
}

.directorio-page .dv-wizard-panel.active {
  display:block;
}

.directorio-page .dv-wizard-navigation {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
  padding:22px 0;
  border-top:1px solid #e7edf5;
}

.directorio-page .dv-wizard-save-hint {
  color:#64748b;
  font-size:12px;
  text-align:center;
}

.directorio-page .dv-editor-screen .dv-modal-actions {
  margin-top:0;
  padding-top:20px;
}

.directorio-page .dv-privacy-note {
  border-radius:13px;
}

.directorio-page .dv-choice {
  border-radius:13px;
  min-height:82px;
  align-items:center;
}

.directorio-page .dv-choice:has(input:checked) {
  background:#eff6ff;
  border-color:#93b9ee;
  box-shadow:0 0 0 2px rgba(37,99,235,.08);
}

.directorio-page .dv-image-card {
  border-radius:16px;
  box-shadow:var(--dv-shadow);
}

.directorio-page .dv-image-visual {
  min-height:145px;
  background:linear-gradient(135deg,#eaf3ff,#edf8f4);
}

@media(max-width:920px) {
  .directorio-page .dv-wizard-steps {
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:5px;
  }
  .directorio-page .dv-wizard-step {
    justify-content:center;
    padding:9px 4px;
  }
  .directorio-page .dv-wizard-step-text {
    display:none;
  }
}

@media(max-width:640px) {
  .directorio-page .dv-hero {
    padding:25px 21px;
  }
  .directorio-page .dv-editor-screen {
    padding:12px 9px 35px;
  }
  .directorio-page .dv-editor-screen .dv-modal-head,
  .directorio-page .dv-editor-screen .dv-modal-body {
    padding:21px 18px;
  }
  .directorio-page .dv-wizard-intro h3 {
    font-size:20px;
  }
  .directorio-page .dv-wizard-navigation {
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .directorio-page .dv-wizard-save-hint {
    grid-column:1/-1;
    grid-row:1;
  }
  .directorio-page .dv-wizard-navigation .btn {
    width:100%;
  }
}


/* =========================================================
   DIRECTORIO-F1-UX-A3
   Correcciones de scroll y atributos hidden.
   Exclusivo del Directorio Vecinal.
   ========================================================= */

/* El editor se presenta como página desplazable. */
body.directorio-page.dv-editor-open.dv-modal-open {
  overflow-x: hidden;
  overflow-y: auto;
}

/* El atributo hidden prevalece sobre display:flex/block. */
.directorio-page .dv-wizard-panel[hidden],
.directorio-page .dv-wizard-navigation [hidden],
.directorio-page .dv-editor-screen .dv-modal-actions[hidden] {
  display: none !important;
}

/* Reducir movimientos para quienes lo solicitan. */
@media (prefers-reduced-motion: reduce) {
  .directorio-page .dv-wizard-progress span,
  .directorio-page .dv-card,
  .directorio-page .btn {
    transition: none;
  }
}


/* DIRECTORIO-F1-UX-A4: mensajes dentro del editor. */

.directorio-page .dv-wizard-message {
  padding:14px 17px;
  border-radius:13px;
  margin-bottom:22px;
  border:1px solid #bed6f4;
  color:#16427f;
  background:#eef6ff;
  font-size:14px;
  font-weight:650;
  line-height:1.5;
}

.directorio-page .dv-wizard-message.ok {
  background:#effbf5;
  color:#087453;
  border-color:#b8e8ce;
}

.directorio-page .dv-wizard-message.error {
  background:#fff1f2;
  color:#ae2340;
  border-color:#fecbd3;
}

.directorio-page .dv-wizard-message[hidden] {
  display:none !important;
}


/* =========================================================
   DIRECTORIO-F1-UX-GEO1
   Geolocalización y disposición responsive del formulario.
   Exclusivo de Mis negocios y servicios.
   ========================================================= */

/* Resolver disposición de columnas del formulario */
.directorio-page .dv-wizard-panel .row.g-3 {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:18px;
  margin:0;
}

.directorio-page .dv-wizard-panel .row.g-3 > * {
  min-width:0;
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}

.directorio-page .dv-wizard-panel .col-12 {
  grid-column:span 12;
}

.directorio-page .dv-wizard-panel .col-md-4 {
  grid-column:span 4;
}

.directorio-page .dv-wizard-panel .col-md-5 {
  grid-column:span 5;
}

.directorio-page .dv-wizard-panel .col-md-6 {
  grid-column:span 6;
}

.directorio-page .dv-wizard-panel .col-md-7 {
  grid-column:span 7;
}

.directorio-page .dv-wizard-panel .form-label {
  display:block;
  margin-bottom:8px;
  line-height:1.4;
}

.directorio-page .dv-wizard-panel .form-control,
.directorio-page .dv-wizard-panel .form-select {
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  margin:0;
  box-sizing:border-box;
}

.directorio-page .dv-wizard-panel textarea.form-control {
  min-height:170px;
  line-height:1.6;
  resize:vertical;
}

.directorio-page .dv-wizard-panel .form-hint {
  margin-top:7px;
  font-size:12px;
  color:#667892;
}

.directorio-page .dv-geolocation {
  border:1px solid #cbdffb;
  background:linear-gradient(135deg,#f0f6ff,#f7fbff);
  border-radius:16px;
  padding:20px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}

.directorio-page .dv-geolocation-copy strong {
  color:#123c7b;
  font-size:15px;
}

.directorio-page .dv-geolocation-copy p {
  color:#526881;
  font-size:13px;
  margin:6px 0 0;
  line-height:1.55;
}

.directorio-page .dv-geolocation-status {
  margin:0;
  font-size:13px;
  line-height:1.5;
  color:#526881;
}

.directorio-page .dv-geolocation-status.error {
  color:#b4233d;
}

.directorio-page .dv-geolocation-status.ok {
  color:#087453;
}

/* Botones con estilo consistente de Tabler */
.directorio-page .btn-primary {
  background-color:#2563eb;
  border-color:#2563eb;
  color:#fff;
}

.directorio-page .btn-success {
  background-color:#15966e;
  border-color:#15966e;
  color:#fff;
}

.directorio-page .btn-outline-primary {
  border:1px solid #93b9ee;
  color:#174684;
  background:#fff;
}

.directorio-page .btn-outline-secondary {
  border:1px solid #cbd5e1;
  color:#475569;
  background:#fff;
}

.directorio-page .dv-wizard-navigation .btn,
.directorio-page .dv-editor-screen .dv-modal-actions .btn {
  min-height:43px;
  padding:10px 18px;
}

@media(max-width:767px) {
  .directorio-page .dv-wizard-panel .row.g-3 {
    grid-template-columns:minmax(0,1fr);
    gap:17px;
  }

  .directorio-page .dv-wizard-panel .row.g-3 > * {
    grid-column:1/-1;
  }

  .directorio-page .dv-geolocation {
    padding:17px;
  }

  .directorio-page .dv-geolocation .btn {
    width:100%;
  }
}


/* DIRECTORIO-F1-UX-U2-C1-R1 */

.directorio-page .dv-legacy-coordinates {
  display:none !important;
}
.directorio-page .dv-combined-location {
  grid-column:1/-1;
}
.directorio-page #dvCoordenadas {
  font-variant-numeric:tabular-nums;
}
.directorio-page .dv-status,
.directorio-page .dv-wizard-message {
  display:none !important;
}

.directorio-page .dv-toast-host {
  position:fixed;
  z-index:4000;
  right:16px;
  top:88px;
  width:min(390px,calc(100vw - 24px));
  display:flex;
  flex-direction:column;
  gap:9px;
  pointer-events:none;
}

.directorio-page .dv-toast {
  display:grid;
  grid-template-columns:26px minmax(0,1fr) 28px;
  gap:11px;
  padding:14px;
  background:#fff;
  border:1px solid #dae5f3;
  border-left:4px solid #2563eb;
  border-radius:13px;
  box-shadow:0 15px 38px rgba(20,40,80,.18);
  pointer-events:auto;
  color:#173457;
}

.directorio-page .dv-toast.ok {
  border-left-color:#15966e;
}
.directorio-page .dv-toast.error {
  border-left-color:#dc3545;
}
.directorio-page .dv-toast-icon {
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#eaf2ff;
  color:#1d59bb;
  width:26px;
  height:26px;
  font-weight:800;
}
.directorio-page .dv-toast.ok .dv-toast-icon {
  background:#e7f8ee;
  color:#087453;
}
.directorio-page .dv-toast.error .dv-toast-icon {
  background:#ffedf0;
  color:#b4233d;
}
.directorio-page .dv-toast-content strong {
  display:block;
  font-size:13px;
  margin-bottom:4px;
}
.directorio-page .dv-toast-content p {
  margin:0;
  line-height:1.45;
  font-size:13px;
  overflow-wrap:anywhere;
}
.directorio-page .dv-toast-close {
  border:0;
  background:transparent;
  color:#65758c;
  font-size:21px;
  cursor:pointer;
}

.directorio-page .dv-editor-screen .dv-modal-head {
  padding:19px 24px;
}
.directorio-page .dv-editor-screen .dv-modal-head h2 {
  font-size:23px;
}
.directorio-page .dv-editor-screen .dv-modal-head p {
  font-size:13px;
}
.directorio-page .dv-editor-screen .dv-modal-body {
  padding-top:19px;
}
.directorio-page .dv-privacy-note {
  padding:10px 13px;
  margin-bottom:15px;
}
.directorio-page .dv-privacy-note span {
  font-size:12px;
}
.directorio-page .dv-editor-screen .dv-modal-actions {
  flex-direction:row;
  justify-content:flex-end;
}

@media(max-width:640px) {
  .directorio-page .dv-toast-host {
    top:76px;
    left:12px;
    right:12px;
    width:auto;
  }
  .directorio-page .dv-editor-screen .dv-modal-head {
    padding:15px 18px;
  }
  .directorio-page .dv-editor-screen .dv-modal-head h2 {
    font-size:21px;
  }
  .directorio-page .dv-editor-screen .dv-modal-body {
    padding:16px 18px 22px;
  }
  .directorio-page .dv-editor-screen .dv-modal-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .directorio-page .dv-editor-screen .dv-modal-actions[hidden] {
    display:none !important;
  }
  .directorio-page .dv-editor-screen .dv-modal-actions .btn {
    width:100%;
    min-width:0;
  }
}


/* DIRECTORIO-VECINO-ENCABEZADO-R1: navegación visible y encabezado compacto. */
.directorio-page .dv-main { padding-top:20px; }
.directorio-page .dv-hero {
  display:block;
  padding:24px 28px;
  margin-bottom:18px;
}
.directorio-page .dv-hero .dv-eyebrow {
  margin-bottom:6px;
  font-size:11px;
  line-height:1.3;
}
.directorio-page .dv-hero h1 {
  margin:0 0 7px;
  font-size:clamp(26px,2.7vw,34px);
  line-height:1.15;
}
.directorio-page .dv-hero p {
  max-width:860px;
  font-size:14px;
  line-height:1.45;
}
.directorio-page .dv-hero-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  margin-top:16px;
}
.directorio-page .dv-hero-nav {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  min-width:0;
}
.directorio-page .dv-hero-actions .btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:44px;
  padding:9px 13px;
  border:1px solid transparent;
  border-radius:9px;
  font-size:13px;
  line-height:1.3;
  white-space:normal;
  text-align:center;
  text-decoration:none;
}
.directorio-page .dv-hero-link,
.directorio-page .dv-hero-link:visited {
  color:#163b77;
  background:#fff;
  border-color:#fff;
}
.directorio-page .dv-hero-link:hover,
.directorio-page .dv-hero-link:active {
  color:#102a52;
  background:#eaf3ff;
  border-color:#cbdff8;
}
.directorio-page .dv-hero-actions .btn-success {
  color:#fff;
  background:#087453;
  border-color:#56c3a1;
}
.directorio-page .dv-hero-actions .btn:focus-visible {
  outline:3px solid #ffd76b;
  outline-offset:3px;
  box-shadow:none;
}
@media(max-width:640px) {
  .directorio-page .dv-main { padding-top:16px; }
  .directorio-page .dv-hero { padding:20px 18px; }
  .directorio-page .dv-hero-actions { margin-top:12px; }
  .directorio-page .dv-hero-nav { width:100%; }
  .directorio-page .dv-hero-nav .btn {
    flex:1 1 auto;
    padding:8px 10px;
    font-size:12px;
  }
  .directorio-page .dv-hero-actions > .btn { width:100%; }
}
