/* css/ficha.css
   Ficha Empresa — UX PRO
   Depende de: css/style.css + Bootstrap 5
*/

/* =========================
   Tokens / Base
   ========================= */
:root{
  --ce-card-radius: 16px;
  --ce-card-pad: 1.05rem;

  --ce-soft-bg: rgba(255,255,255,.86);
  --ce-soft-border: rgba(17,17,17,.08);
  --ce-soft-shadow: 0 10px 28px rgba(16,24,40,.08);

  --ce-muted: rgba(17,17,17,.70);
  --ce-muted-2: rgba(17,17,17,.55);

  --ce-accent: var(--brand-amber, #fbbf24);
  --ce-accent-ink: #111;
  --ce-success: var(--bs-success, #16A34A);

  --ce-chip-bg: rgba(251,191,36,.14);
  --ce-chip-br: rgba(251,191,36,.38);
}

/* Page background polish */
.ce-page-ficha{
  /*background: linear-gradient(180deg, rgba(251,191,36,.06) 0%, rgba(250,250,250,1) 34%, rgba(250,250,250,1) 100%);*/
}

/* Better anchor scroll with sticky navbar */
/*:where(.ce-page-ficha) section[id]{
  scroll-margin-top: 92px;
}*/


/* Subtle separators */
.ce-page-ficha hr{
  border-top-color: rgba(17,17,17,.10);
}

/* =========================
   Breadcrumbs (si tu partial ya usa .breadcrumb)
   ========================= */
.ce-page-ficha .breadcrumb{
  margin-bottom: .85rem;
  font-size: .92rem;
}
.ce-page-ficha .breadcrumb a{
  text-decoration: none;
}
.ce-page-ficha .breadcrumb a:hover{
  text-decoration: underline;
}

/* =========================
   HERO PRO (v4) — 1 columna / 3 filas (ceh4-*)
   ========================= */

.ce-page-ficha .ceh4-hero{ position:relative; }

/* HEAD */
.ce-page-ficha .ceh4-head{ margin-bottom: .65rem; }

.ce-page-ficha .ceh4-brand{
  display:flex;
  align-items:flex-start;
  gap: 1rem;
}

.ce-page-ficha .ceh4-media{ flex:0 0 auto; }

.ce-page-ficha .ceh4-logo{
  width: 86px;
  height: 86px;
  border-radius: 16px;
  border: 1px solid rgba(17,17,17,.10);
  background: #fff;
  box-shadow: 0 10px 22px rgba(16,24,40,.08);
  object-fit: contain;
  display:flex;
  align-items:center;
  justify-content:center;
}

.ce-page-ficha .ceh4-logo--fallback{
  color: rgba(17,17,17,.45);
  font-size: 1.5rem;
}

.ce-page-ficha .ceh4-info{ min-width:0; }

.ce-page-ficha .ceh4-title{
  margin: 0;
  letter-spacing: -.02em;
  line-height: 1.12;
  font-size: clamp(1.35rem, 2.1vw, 2.0rem);
  word-break: break-word;
  overflow-wrap:anywhere;
}

/* Badges más discretos */
.ce-page-ficha .ceh4-badges{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
  margin-top:.45rem;
}
.ce-page-ficha .ceh4-badges .badge{
  border-radius: 999px;
  padding: .26rem .52rem;
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .01em;
}

/* Soft chips — base (neutral) */
.ce-page-ficha .ceh4-badge-soft{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.24rem .55rem;
  border-radius:999px;
  font-weight:500;
  font-size:.80rem;
  line-height:1;

  background: rgba(17,17,17,.04) !important;
  border: 1px solid rgba(17,17,17,.10) !important;
  color: rgba(17,17,17,.76) !important;
}

/* INFO */
.ce-page-ficha .ceh4-badge-soft--info{
  background: rgba(13,110,253,.07) !important;
  border-color: rgba(13,110,253,.18) !important;
  color: rgba(13,110,253,.92) !important;
}

/* SUCCESS */
.ce-page-ficha .ceh4-badge-soft--success{
  background: rgba(22,163,74,.10) !important;
  border-color: rgba(22,163,74,.22) !important;
  color: rgba(22,163,74,.95) !important;
}

/* WARNING */
.ce-page-ficha .ceh4-badge-soft--warning{
  background: rgba(251,191,36,.16) !important;
  border-color: rgba(251,191,36,.30) !important;
  color: rgba(125, 88, 0, .95) !important; /* ámbar oscuro elegante */
}

/* DANGER */
.ce-page-ficha .ceh4-badge-soft--danger{
  background: rgba(220,53,69,.10) !important;
  border-color: rgba(220,53,69,.22) !important;
  color: rgba(220,53,69,.92) !important;
}


/* KV line */
.ce-page-ficha .ceh4-kv{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.45rem;
  margin-top:.45rem;
  color: rgba(17,17,17,.62);
  font-size:.90rem;
}
.ce-page-ficha .ceh4-kv strong{ color: rgba(17,17,17,.88); }
.ce-page-ficha .ceh4-dot{ color: rgba(17,17,17,.28); }
.ce-page-ficha .ceh4-muted{ color: rgba(17,17,17,.60); }

/* Sublines */
.ce-page-ficha .ceh4-subline{
 margin-top: .25rem;
 color: rgba(17,17,17,.72);
 font-size: .93rem;
 word-break: break-word;
 overflow-wrap: anywhere;
 border-top: 1px solid rgba(17,17,17,.08);
 padding-top: .65rem;
 margin-top: .55rem;
}


.ce-page-ficha .ceh4-subline-header{
 word-break: break-word;
 overflow-wrap: anywhere;
}

.ce-page-ficha .ceh4-subline--nomcom{
  display: inline-flex;          /* clave: deja de ser bloque full width */
  align-items: baseline;
  gap: .35rem;

  width: fit-content;            /* se ajusta al contenido */
  max-width: 100%;
  box-sizing: border-box;

  font-size: .92rem;
  color: rgba(17,17,17,.72);

  background: rgba(17,17,17,.03);
  border: 1px solid rgba(17,17,17,.06);
  padding: .12rem .45rem;
  border-radius: 12px;
}

/* Para que si el nombre comercial es largo no reviente el layout */
.ce-page-ficha .ceh4-subline--nomcom strong{
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.75rem;
}



.ce-page-ficha .ceh4-link{
  font-weight: 500;
  color: rgba(17,17,17,.78);
  /*color: var(--bs-link-color, #0D6EFD);*/
  text-decoration: none;
  text-underline-offset: 2px;
  font-size: 0.85rem;
}
.ce-page-ficha .ceh4-link:hover{
  color: rgba(17,17,17,.92);
  text-decoration-color: rgba(13,110,253,.55);
}

.ce-page-ficha .ceh4-hints{
  margin-top:.4rem;
  font-size:.85rem;
  color: rgba(17,17,17,.55);
}

/* DESC */
.ce-page-ficha .ceh4-desc{
  padding-top: .65rem;
  margin-top: .55rem;
  border-top: 1px solid rgba(17,17,17,.08);
}
.ce-page-ficha .ceh4-desc p{
  margin: 0 0 .3rem;
  line-height: 1.5;
  color: #111827;
  max-width: none; /* evita “vacío” a la derecha */
}
.ce-page-ficha .ceh4-desc p:last-child{ margin-bottom: 0; }
.ce-page-ficha .ceh4-desc .ceh4-desc-muted{
  color: rgba(17,17,17,.58);
  font-size: .93rem;
}

/* Si ce_str() mete <br>, evita saltos raros */
.ce-page-ficha .ceh4-desc br{ line-height: 1.25; }

/* ACTIONS PANEL (lo que te gustó) */
.ce-page-ficha .ceh4-actionsWrap{
  margin-top: .85rem;
  border: 1px solid rgba(17,17,17,.08);
  border-radius: 16px;
  background: rgba(255,255,255,.60);
  box-shadow: 0 10px 22px rgba(16,24,40,.05);
  padding: .85rem;
}

.ce-page-ficha .ceh4-actions{
  display:flex;
  flex-wrap:wrap;
  gap: .55rem;
}

.ce-page-ficha .ceh4-actions .btn{
  border-radius: 12px;
  height: 40px;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  white-space: nowrap;
}

.ce-page-ficha .ceh4-actions .btn-primary:hover{
  color:#111 !important;
  background: var(--brand-amber) !important;
  border-color: var(--brand-amber-600) !important;
  box-shadow: 0 0 0 .2rem rgba(251,191,36,.25) !important; /* halo suave */
}

.ce-page-ficha .ceh4-actions .btn-outline-secondary{
  border-color: rgba(17,17,17,.18);
}
.ce-page-ficha .ceh4-actions .btn-outline-secondary:hover{
  background: rgba(17,17,17,.04);
}

.ce-page-ficha .ceh4-kvTop{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.45rem;

  margin: 0 0 .55rem 0;
  padding: .2rem 0rem;
  border-radius: 12px;

  /*background: rgba(17,17,17,.03);
  border: 1px solid rgba(17,17,17,.06);*/

  color: rgba(17,17,17,.62);
  font-size: .75rem;
}
.ce-page-ficha .ceh4-kvTop strong{ color: var(--ce-muted); /*color: rgba(17,17,17,.88);*/ }



/* Mobile */
@media (max-width: 576px){
  .ce-page-ficha .ceh4-logo{
    width: 64px;
    height: 64px;
    border-radius: 14px;
  }

  /* Acciones en grid para que no se vea “apilado feo” */
  .ce-page-ficha .ceh4-actions{
    display:grid;
    grid-template-columns: 1fr 1fr;
  }
  .ce-page-ficha .ceh4-actions .btn{
    width: 100%;
    justify-content:center;
  }
  .ce-page-ficha .ceh4-btnMain{
    grid-column: 1 / -1; /* CTA principal full width */
  }
}

@media (max-width: 380px){
  .ce-page-ficha .ceh4-actions{
    grid-template-columns: 1fr;
  }
}



/* =========================
   TOC / Navegación de secciones
   ========================= */
.ce-page-ficha nav[aria-label="En esta página"] .btn{
  border-radius: 999px;
  padding: .35rem .70rem;
  font-weight: 600;
  font-size: .86rem;
}

/* Sticky TOC on desktop (sin tocar HTML) */
/*@media (min-width: 992px){
  .ce-page-ficha nav[aria-label="En esta página"]{
    position: sticky;
    top: 84px;
    z-index: 10;
  }
}*/

/* =========================
   Secciones / Títulos
   ========================= */
.ce-page-ficha section > h2{
  letter-spacing: -.01em;
}
.ce-page-ficha section > h2.h5{
  margin-bottom: .9rem !important;
}
.ce-page-ficha .text-muted{
  color: var(--ce-muted) !important;
}
.ce-page-ficha .small.text-muted{
  color: var(--ce-muted-2) !important;
}

/* =========================
   “Fields” (RUC, estado, etc.)
   ========================= */
.ce-page-ficha #registro .row .small.text-muted{
  text-transform: uppercase;
  letter-spacing: .05em;
  font-size: .72rem;
}
.ce-page-ficha #registro .fw-semibold{
  font-size: 1.02rem;
}

/* =========================
   Tables — look enterprise
   ========================= */
.ce-page-ficha .table{
  margin-bottom: .25rem;
}
.ce-page-ficha .table thead th{
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: rgba(17,17,17,.62);
  border-bottom-color: rgba(17,17,17,.12) !important;
  background: rgba(250,250,250,.92);
  position: sticky;
  top: 0;
  z-index: 1;
}
.ce-page-ficha .table tbody td{
  border-top-color: rgba(17,17,17,.08) !important;
  vertical-align: middle;
}
.ce-page-ficha .table tbody tr:nth-child(even){
  background: rgba(17,17,17,.015);
}
.ce-page-ficha .table-responsive{
  border: 1px solid rgba(17,17,17,.08);
  border-radius: 14px;
  overflow: hidden;
}

/* Prevent cramped tables on mobile */
@media (max-width: 576px){
  .ce-page-ficha .table thead th,
  .ce-page-ficha .table tbody td{
    white-space: nowrap;
  }
}

/* =========================
   Contact “masked reveal” links
   ========================= */
.ce-page-ficha a[onclick^="viewData"]{
  text-decoration: none;
}
.ce-page-ficha a[onclick^="viewData"]:hover{
  text-decoration: underline;
}

/* =========================
   Charts containers
   ========================= */
.ce-page-ficha #container,
.ce-page-ficha #container_com_ext{
  border-radius: 14px;
  border: 1px solid rgba(17,17,17,.08);
  background: rgba(250,250,250,.72);
}

/* =========================
   Map container
   ========================= */
.ce-page-ficha #map{
  border: 1px solid rgba(17,17,17,.10);
  box-shadow: 0 10px 22px rgba(16,24,40,.08);
}

/* =========================
   Aside refinements
   ========================= */
.ce-page-ficha .col-lg-4 .card-soft h2.h6{
  letter-spacing: -.01em;
}
.ce-page-ficha .col-lg-4 .list-unstyled li{
  padding-bottom: .75rem;
  border-bottom: 1px solid rgba(17,17,17,.07);
}
.ce-page-ficha .col-lg-4 .list-unstyled li:last-child{
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 0 !important;
}
.ce-page-ficha .col-lg-4 .list-unstyled a{
  text-decoration: none;
}
.ce-page-ficha .col-lg-4 .list-unstyled a:hover{
  text-decoration: underline;
}

/* Sticky aside blocks on desktop for “pro feel” (optional) */
/*@media (min-width: 992px){
  .ce-page-ficha .col-lg-4{
    position: relative;
  }
  .ce-page-ficha .col-lg-4 > .card-soft:first-child{
    position: sticky;
    top: 84px;
  }
}*/

/* =========================
   Focus states (accessibility)
   ========================= */
.ce-page-ficha :where(a, button, input, select, textarea):focus{
  outline: none;
}
.ce-page-ficha :where(a, button, input, select, textarea):focus-visible{
  box-shadow: 0 0 0 .25rem rgba(251,191,36,.28) !important;
  border-radius: 12px;
}

/* =========================
   Subtle “chip” style helper (si lo usas luego)
   ========================= */
.ce-chip{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .35rem .65rem;
  border-radius: 999px;
  background: var(--ce-chip-bg);
  border: 1px solid var(--ce-chip-br);
  font-weight: 700;
  font-size: .86rem;
}

/* =========================
   Print / PDF (window.print)
   ========================= */
@media print{
  .ce-page-ficha .navbar,
  .ce-page-ficha nav[aria-label="En esta página"],
  .ce-page-ficha .col-lg-4,
  .ce-page-ficha #btnCopyLink,
  .ce-page-ficha #btnPrint{
    display: none !important;
  }

  .ce-page-ficha .card-soft{
    box-shadow: none !important;
    border-color: rgba(0,0,0,.18) !important;
    background: #fff !important;
  }

  .ce-page-ficha .table thead th{
    position: static !important;
  }
}

/* =========================
   Trust Box chips — FIX colores (state + icon)
   ========================= */
.ce-page-ficha .ce-chip.ce-chip--icon{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.40rem .70rem;
  border-radius:999px;
  border:1px solid rgba(17,17,17,.12);
  background:rgba(17,17,17,.03);
  color:#111;                 /* texto por defecto */
  font-weight:500;
  font-size:.86rem;
  line-height:1;
}

/* icono: por defecto neutro */
.ce-page-ficha .ce-chip.ce-chip--icon i{
  font-size:.95rem;
  line-height:0;
  color: rgba(17,17,17,.70);
}

/* OK */
.ce-page-ficha .ce-chip.ce-chip--ok{
  background: rgba(22,163,74,.12) !important;
  border-color: rgba(22,163,74,.30) !important;
}
.ce-page-ficha .ce-chip.ce-chip--ok i{
  color: var(--bs-success, #16A34A) !important; /* icono verde */
}

/* WARN */
.ce-page-ficha .ce-chip.ce-chip--warn{
  background: rgba(251,191,36,.16) !important;
  border-color: rgba(251,191,36,.45) !important;
}
.ce-page-ficha .ce-chip.ce-chip--warn i{
  color: var(--brand-amber-600, #d39e00) !important; /* icono ámbar */
}

/* BAD */
.ce-page-ficha .ce-chip.ce-chip--bad{
  background: rgba(220,53,69,.10) !important;
  border-color: rgba(220,53,69,.30) !important;
}
.ce-page-ficha .ce-chip.ce-chip--bad i{
  color: var(--bs-danger, #DC3545) !important; /* icono rojo */
}

/* Neutral (si lo usas en otros lados) */
.ce-page-ficha .ce-chip.ce-chip--neutral{
  background: rgba(17,17,17,.03) !important;
  border-color: rgba(17,17,17,.12) !important;
}
.ce-page-ficha .ce-chip.ce-chip--neutral i{
  color: rgba(17,17,17,.65) !important;
}


.ce-page-ficha .p-3.border.rounded-3.bg-white{
  box-shadow: 0 10px 20px rgba(16,24,40,.06);
  transition: transform .12s ease, box-shadow .12s ease;
}
.ce-page-ficha .p-3.border.rounded-3.bg-white:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 28px rgba(16,24,40,.10);
}

/* =========================
   Registro tributario — KPI CLEAN (referencia imagen 1)
   Scope: .ce-page-ficha .ce-regpro
   ========================= */

.ce-page-ficha .ce-regpro{
  --kpi-bg: rgba(255,255,255,.70);
  --kpi-br: rgba(17,17,17,.08);
  --kpi-txt: #111;
  --kpi-muted: #6b7280;
  --kpi-muted2: #6b7280;
}

.ce-page-ficha .ce-regpro-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  padding-bottom:.25rem;
}

.ce-page-ficha .ce-regpro-title{
  display:flex;
  align-items:flex-start;
  gap:.6rem;
}

.ce-page-ficha .ce-regpro-title-ico{
  width:34px;height:34px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(17,17,17,.035);
  border:1px solid rgba(17,17,17,.07);
  color: rgba(17,17,17,.65);
}

.ce-page-ficha .ce-regpro-h{
  margin:0;
  font-size:1.05rem;  /* más discreto */
  font-weight:600;
  letter-spacing:-.01em;
}

.ce-page-ficha .ce-regpro-sub{
  margin-top:.12rem;
  font-size:.86rem;
  color: var(--kpi-muted);
}

.ce-page-ficha .ce-regpro-btn{
  padding:.32rem .7rem;
}

/* Grid similar a referencia: 2 columnas, con items "wide" y "full" */
.ce-page-ficha .ce-regpro-grid{
  margin-top:.9rem;
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:.75rem;
}

@media (max-width: 768px){
  .ce-page-ficha .ce-regpro-grid{ grid-template-columns: 1fr; }
}

/* KPI tile */
.ce-page-ficha .ce-kpi2{
  display:flex;
  gap:.7rem;
  align-items:center;
  padding:.85rem .95rem;
  border-radius:14px;
  border:1px solid var(--kpi-br);
  background: var(--kpi-bg);
  box-shadow: 0 8px 20px rgba(16,24,40,.05); /* más sutil */
}

.ce-page-ficha .ce-kpi2--wide{ }
.ce-page-ficha .ce-kpi2--full{ grid-column: 1 / -1; }

@media (max-width: 768px){
  .ce-page-ficha .ce-kpi2--full{ grid-column:auto; }
}

/* Icon “avatar” sutil (como referencia) */
.ce-page-ficha .ce-kpi2-ico{
  width:40px;height:40px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(17,17,17,.06);
  flex:0 0 auto;
}

.ce-page-ficha .ce-kpi2-ico i{
  font-size:1.05rem;
  opacity:.9;
}

/* Label/value: más discretos */
.ce-page-ficha .ce-kpi2-label{
	
	font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--kpi-muted2);
    margin-top: .05rem;
    margin-bottom: .15rem;
}

.ce-page-ficha .ce-kpi2-value{
  font-size:.86rem;
  font-weight:500;
  color: var(--kpi-txt);
  line-height:1.25;
}

.ce-page-ficha .ce-kpi2-note{
  display:block;
  margin-top:.18rem;
  font-size:.86rem;
  color: var(--kpi-muted);
  font-weight:600;
}

/* Badges tipo referencia (pill soft) */
.ce-page-ficha .ce-badge2{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.28rem .55rem;
  border-radius:999px;
  font-weight:800;
  font-size:.78rem;
  letter-spacing:.02em;
  border:1px solid transparent;
}

.ce-page-ficha .ce-badge2--ok{
  background: rgba(22,163,74,.14);
  color: #0b3d1b;
}
.ce-page-ficha .ce-badge2--warn{
  background: rgba(251,191,36,.18);
  color: #5a4100;
}
.ce-page-ficha .ce-badge2--bad{
  background: rgba(220,53,69,.14);
  color: #5a0e16;
}
.ce-page-ficha .ce-badge2--neutral{
  background: rgba(17,17,17,.06);
  color: rgba(17,17,17,.75);
}

/* Flags (BC/IGV) — también limpios */
.ce-page-ficha .ce-regpro-flags{
  margin-top: .85rem;
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:.75rem;
}
@media (max-width: 768px){
  .ce-page-ficha .ce-regpro-flags{ grid-template-columns: 1fr; }
}

.ce-page-ficha .ce-flag2{
  display:flex;
  gap:.65rem;
  align-items:flex-start;
  padding:.85rem .95rem;
  border-radius:14px;
  border:1px solid var(--kpi-br);
  background: var(--kpi-bg);
  box-shadow: 0 8px 20px rgba(16,24,40,.05);
}

.ce-page-ficha .ce-flag2-ico{
  width:40px;height:40px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(17,17,17,.06);
  flex:0 0 auto;
}

.ce-page-ficha .ce-flag2-title{
  font-weight:500;
  font-size:.95rem;
  color: var(--kpi-txt);
}

.ce-page-ficha .ce-flag2-sub{
  font-size:.86rem;
  color: var(--kpi-muted);
  margin-top:.12rem;
}

/* =========================
   Icon color presets (cada icono con su fondo + color)
   ========================= */
.ce-page-ficha .ce-ico-amber{ background: rgba(251,191,36,.20); color:#b45309; }
.ce-page-ficha .ce-ico-amber i{ color:#b45309; }

.ce-page-ficha .ce-ico-amber2{ background: rgba(251,191,36,.14); color:#a16207; }
.ce-page-ficha .ce-ico-amber2 i{ color:#a16207; }

.ce-page-ficha .ce-ico-violet{ background: rgba(139,92,246,.16); color:#6d28d9; }
.ce-page-ficha .ce-ico-violet i{ color:#6d28d9; }

.ce-page-ficha .ce-ico-slate{ background: rgba(100,116,139,.14); color:#334155; }
.ce-page-ficha .ce-ico-slate i{ color:#334155; }

.ce-page-ficha .ce-ico-teal{ background: rgba(20,184,166,.14); color:#0f766e; }
.ce-page-ficha .ce-ico-teal i{ color:#0f766e; }

.ce-page-ficha .ce-ico-mint{ background: rgba(34,197,94,.12); color:#15803d; }
.ce-page-ficha .ce-ico-mint i{ color:#15803d; }

.ce-page-ficha .ce-ico-blue{ background: rgba(59,130,246,.12); color:#1d4ed8; }
.ce-page-ficha .ce-ico-blue i{ color:#1d4ed8; }

.ce-page-ficha .ce-ico-sand{ background: rgba(245,158,11,.12); color:#92400e; }
.ce-page-ficha .ce-ico-sand i{ color:#92400e; }

.ce-page-ficha .ce-ico-rose{ background: rgba(244,63,94,.12); color:#be123c; }
.ce-page-ficha .ce-ico-rose i{ color:#be123c; }

.ce-page-ficha .ce-ico-indigo{ background: rgba(99,102,241,.12); color:#4338ca; }
.ce-page-ficha .ce-ico-indigo i{ color:#4338ca; }

.ce-page-ficha .ce-ico-red{ background: rgba(220,53,69,.12); color:#b42318; }
.ce-page-ficha .ce-ico-red i{ color:#b42318; }

.ce-page-ficha .ce-ico-gray{ background: rgba(17,17,17,.06); color: rgba(17,17,17,.65); }
.ce-page-ficha .ce-ico-gray i{ color: rgba(17,17,17,.65); }
/* =========================
   Contacto — Panel pro (sin KPI)
   ========================= */
.ce-page-ficha .ce-contact-panel .ce-contact-rows{
  display:flex;
  flex-direction:column;
  gap:.55rem;
}

.ce-page-ficha .ce-contact-panel .ce-contact-row{
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  padding:.75rem .75rem;
  border:1px solid rgba(17,17,17,.08);
  border-radius:14px;
  background: rgba(255,255,255,.55);
}

.ce-page-ficha .ce-contact-panel .ce-contact-ico{
  width:38px;
  height:38px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: rgba(13,110,253,.10);
  border:1px solid rgba(13,110,253,.18);
  color: rgba(13,110,253,.95);
  flex:0 0 auto;
}

.ce-page-ficha .ce-contact-panel .ce-contact-body{
  flex:1;
  min-width:0;
}

.ce-page-ficha .ce-contact-panel .ce-contact-label{
  font-size:.70rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color: rgba(17,17,17,.45);
  margin-bottom:.12rem;
}

.ce-page-ficha .ce-contact-panel .ce-contact-value{
  font-weight:500;
  font-size:.86rem;
  color:#111;
  line-height:1.25;
}

.ce-page-ficha .ce-contact-panel .ce-contact-sub{
  margin-top:.2rem;
  color: rgba(17,17,17,.55);
  font-size:.90rem;
}

.ce-page-ficha .ce-contact-panel .ce-contact-link{
  color:#111;
  text-decoration:none;
}
.ce-page-ficha .ce-contact-panel .ce-contact-link:hover{
  text-decoration:underline;
}

.ce-page-ficha .ce-contact-panel .ce-contact-actions{
  display:flex;
  gap:.4rem;
  flex-wrap:wrap;
  align-items:flex-start;
}

.ce-page-ficha .ce-contact-panel .ce-contact-actions .btn{
  border-radius:999px;
  padding:.30rem .65rem;
  white-space:nowrap;
}

.ce-page-ficha .ce-contact-panel .ce-contact-empty{
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  padding:.8rem;
  border-radius:14px;
  border:1px dashed rgba(17,17,17,.18);
  background: rgba(17,17,17,.02);
}
.ce-page-ficha .ce-contact-panel .ce-contact-empty i{
  font-size:1.1rem;
  color: rgba(17,17,17,.55);
  margin-top:.15rem;
}

.ce-page-ficha .ce-contact-panel .ce-owner-strip{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
}
.ce-page-ficha .ce-contact-panel .ce-owner-strip .btn{
  border-radius:999px;
}

/* =========================
   Sector / Actividad — UX PRO (RESPONSIVE)
   - Desktop: tabla normal
   - Móvil: rows tipo "card" con labels
   ========================= */

.ce-page-ficha .ce-sector .ce-table-wrap{
  border: 1px solid rgba(17,17,17,.08);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(255,255,255,.55);
}

/* Tabla base */
.ce-page-ficha .ce-sector .ce-sector-table{
  width: 100%;
  table-layout: auto;
}

.ce-page-ficha .ce-sector .ce-sector-table thead th{
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(17,17,17,.45);
  background: rgba(17,17,17,.02);
  border-bottom: 1px solid rgba(17,17,17,.06);
  padding: .70rem .75rem;
  vertical-align: middle;
  white-space: nowrap;
}

.ce-page-ficha .ce-sector .ce-sector-table tbody td{
  padding: .75rem .75rem;
  border-top: 1px solid rgba(17,17,17,.06);
  vertical-align: top;
  background: #ffffff;
}

/* Row principal */
.ce-page-ficha .ce-sector .ce-sector-table tbody tr.is-primary{
  /*background: rgba(251,191,36,.08);*/
}

/* Código */
.ce-page-ficha .ce-sector .ce-code{
  display:inline-flex;
  align-items:center;
  padding:.28rem .55rem;
  border-radius:999px;
  background: rgba(13,110,253,.08);
  border: 1px solid rgba(13,110,253,.18);
  color: rgba(13,110,253,.95);
  font-weight: 600;
  font-size: .86rem;
  white-space: nowrap;
}

/* Link sector: permitir wrap en móvil/desktop */
.ce-page-ficha .ce-sector .ce-sector-link{
  font-weight: 600;
  font-size: .90rem;
  text-decoration: none;
  color: #111;
  display: inline;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.ce-page-ficha .ce-sector .ce-sector-link:hover{
  text-decoration: underline;
  cursor: pointer;
}

.ce-page-ficha .ce-sector .ce-mini{
  font-size: .86rem;
  color: rgba(17,17,17,.55);
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* Botón de acción: no romper layout */
.ce-page-ficha .ce-sector .btn.btn-sm{
  padding: .30rem .65rem;
  white-space: nowrap;
}
.ce-page-ficha .ce-sector .ce-sector-table .btn.btn-sm{
  border-radius: 999px;
  padding: .30rem .65rem;
  white-space: nowrap;
}

/* Empty state */
.ce-page-ficha .ce-sector .ce-empty{
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  padding:.9rem;
  border-radius: 14px;
  border: 1px dashed rgba(17,17,17,.18);
  background: rgba(17,17,17,.02);
}
.ce-page-ficha .ce-sector .ce-empty i{
  font-size: 1.1rem;
  color: rgba(17,17,17,.55);
  margin-top: .1rem;
}

/* Comercio exterior — soft callout */
.ce-page-ficha .ce-sector .ce-comext{
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:.85rem .9rem;
  border-radius: 14px;
  border: 1px solid rgba(17,17,17,.08);
  background: rgba(255,255,255,.55);
}
.ce-page-ficha .ce-sector .ce-comext-ico{
  width:40px; height:40px;
  border-radius: 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  border: 1px solid rgba(17,17,17,.08);
  background: rgba(17,17,17,.03);
  color: rgba(17,17,17,.70);
  flex:0 0 auto;
}
.ce-page-ficha .ce-sector .ce-comext-body{
  flex:1; min-width:0;
}
.ce-page-ficha .ce-sector .ce-comext-actions .btn{
  border-radius: 999px;
}

/* =========================
   RESPONSIVE (móvil)
   Convierte tabla a cards con labels
   ========================= */
@media (max-width: 576px){

  /* Quita el scroll horizontal y convierte en layout vertical */
  .ce-page-ficha .ce-sector .table-responsive{
    overflow-x: visible;
  }

  .ce-page-ficha .ce-sector .ce-sector-table thead{
    display:none;
  }

  .ce-page-ficha .ce-sector .ce-sector-table,
  .ce-page-ficha .ce-sector .ce-sector-table tbody,
  .ce-page-ficha .ce-sector .ce-sector-table tr,
  .ce-page-ficha .ce-sector .ce-sector-table td{
    display:block;
    width:100%;
  }

  .ce-page-ficha .ce-sector .ce-sector-table tbody tr{
    border-top: 1px solid rgba(17,17,17,.06);
    padding: .70rem .75rem;
  }

  .ce-page-ficha .ce-sector .ce-sector-table tbody tr.is-primary{
    /*background: rgba(251,191,36,.10);*/
  }

  .ce-page-ficha .ce-sector .ce-sector-table tbody td{
    border: 0;
    padding: .35rem 0;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:.75rem;
  }

  /* Labels */
  .ce-page-ficha .ce-sector .ce-sector-table tbody td::before{
    content: attr(data-label);
    flex: 0 0 98px;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: rgba(17,17,17,.45);
    margin-top: .15rem;
  }

  /* Si no hay data-label en ese TD, no mostrar label */
  .ce-page-ficha .ce-sector .ce-sector-table tbody td:not([data-label])::before{
    content: "";
    flex-basis: 0;
    display:none;
  }

  /* Acción alineada abajo y full width si lo necesitas */
  .ce-page-ficha .ce-sector .ce-sector-table tbody td.text-end{
    justify-content:flex-end;
  }

  .ce-page-ficha .ce-sector .btn.btn-sm{
    width: 100%;
    justify-content: center;
  }

  /* Código + mini en 1 bloque mejor */
  .ce-page-ficha .ce-sector .ce-code{
    font-size: .88rem;
  }

  /* Callout comext también responsivo */
  .ce-page-ficha .ce-sector .ce-comext{
    flex-direction: column;
    align-items: stretch;
  }
  .ce-page-ficha .ce-sector .ce-comext-actions .btn{
    width: 100%;
    justify-content: center;
  }
}


/**************************************/
/* RNP: Vigencia como texto (no pill) */
/**************************************/

/* Vigencia como texto estándar */
.ce-page-ficha .ce-data .ce-vigencia{
  font-weight: 500;
  font-size: .86rem;
  color: #111;
  line-height: 1.2;
}
.ce-page-ficha .ce-data .ce-vigencia--muted{
  color: rgba(17,17,17,.55);
  font-weight: 400;
}

/* Desktop: menos “apilado” */
@media (min-width: 576px){
  .ce-page-ficha .ce-data .ce-vigencia{
    white-space: nowrap;
  }
}
/* Móvil: si no entra, que rompa */
@media (max-width: 575.98px){
  .ce-page-ficha .ce-data .ce-vigencia{
    white-space: normal;
  }
}



/* ==========================================================
   CE Data Blocks — tablas UX PRO (estándar)
   Base: look de Giro/Sector
   Reutilizable: Sector, RNP, Comext, y otros módulos similares
   ========================================================== */

/* Contenedor de tabla */
.ce-page-ficha .ce-data .ce-table-wrap{
  border: 1px solid rgba(17,17,17,.08);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(255,255,255,.55);
}

/* Head */
.ce-page-ficha .ce-data .ce-data-table thead th{
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(17,17,17,.45);
  background: rgba(17,17,17,.02);
  border-bottom: 1px solid rgba(17,17,17,.06);
  padding: .70rem .75rem;
}

/* Body */
.ce-page-ficha .ce-data .ce-data-table tbody td{
  padding: .75rem .75rem;
  border-top: 1px solid rgba(17,17,17,.06);
  vertical-align: middle;
   background: #ffffff;
}

/* Row destacado (principal) */
.ce-page-ficha .ce-data .ce-data-table tbody tr.is-primary{
  background: rgba(251,191,36,.08); /* brand amber soft */
}

/* Chip/código (ej. CIIU, código RNP, etc.) */
.ce-page-ficha .ce-data .ce-code{
  display:inline-flex;
  align-items:center;
  padding:.28rem .55rem;
  border-radius:999px;
  background: rgba(13,110,253,.08);
  border: 1px solid rgba(13,110,253,.18);
  color: rgba(13,110,253,.95);
  font-weight: 500;
  font-size: .86rem;
}

/* Link principal dentro de tabla */
.ce-page-ficha .ce-data .ce-link{
  font-weight: 500;
  font-size: .86rem;
  text-decoration: none;
  color: #111;
}
.ce-page-ficha .ce-data .ce-link:hover{
  text-decoration: underline;
  cursor: pointer;
}

/* Texto “normal” (capítulo, descripciones) */
.ce-page-ficha .ce-data .ce-text{
  font-weight: 500;
  font-size: .86rem;
  color: #111;
}

/* Texto secundario */
.ce-page-ficha .ce-data .ce-mini{
  font-size: .86rem;
  color: #111; /* rgba(17,17,17,.55);*/
}

/* Botones pequeños coherentes */
/*.ce-page-ficha .ce-data .btn.btn-sm{
  border-radius: 999px;
  padding: .30rem .65rem;
}*/

/* Empty state (reutilizable) */
.ce-page-ficha .ce-data .ce-empty{
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  padding:.9rem;
  border-radius: 14px;
  border: 1px dashed rgba(17,17,17,.18);
  background: rgba(17,17,17,.02);
}
.ce-page-ficha .ce-data .ce-empty i{
  font-size: 1.1rem;
  color: rgba(17,17,17,.55);
  margin-top: .1rem;
}

/* Pills (reutilizables) */
.ce-page-ficha .ce-data .ce-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.30rem .55rem;
  border-radius:999px;
  border: 1px solid rgba(17,17,17,.10);
  background: rgba(17,17,17,.03);
  font-size:.82rem;
  font-weight:500;
  color: rgba(17,17,17,.75);
}
.ce-page-ficha .ce-data .ce-pill--ok{
  background: rgba(22,163,74,.10);
  border-color: rgba(22,163,74,.20);
  color: rgba(22,163,74,.95);
}
.ce-page-ficha .ce-data .ce-pill--neutral{
  background: rgba(13,110,253,.06);
  border-color: rgba(13,110,253,.14);
  color: rgba(13,110,253,.75);
}

/* Badges suaves con icono (reutilizable: se mantiene tu look de RNP) */
.ce-page-ficha .ce-data .ce-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.30rem .55rem;
  border-radius:999px;
  border: 1px solid rgba(17,17,17,.10);
  background: rgba(17,17,17,.03);
  font-size:.82rem;
  font-weight:500;
  color: rgba(17,17,17,.75);
}
.ce-page-ficha .ce-data .ce-badge i{ font-size:.95rem; line-height:0; }

.ce-page-ficha .ce-data .ce-badge--ok{
  background: rgba(22,163,74,.10);
  border-color: rgba(22,163,74,.20);
  color: rgba(22,163,74,.95);
}
.ce-page-ficha .ce-data .ce-badge--warn{
  background: rgba(251,191,36,.16);
  border-color: rgba(251,191,36,.35);
  color: rgba(211,158,0,.95);
}
.ce-page-ficha .ce-data .ce-badge--bad{
  background: rgba(220,53,69,.10);
  border-color: rgba(220,53,69,.25);
  color: rgba(220,53,69,.95);
}
.ce-page-ficha .ce-data .ce-badge--neutral{
  background: rgba(13,110,253,.06);
  border-color: rgba(13,110,253,.14);
  color: rgba(13,110,253,.75);
}

/* Summary row (chips alineados) */
.ce-page-ficha .ce-data .ce-summary{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem .75rem;
  align-items:center;
}
.ce-page-ficha .ce-data .ce-summary-item{
  display:flex;
  align-items:center;
  gap:.45rem;
}

/* Count badge (RNP count / otros contadores) */
.ce-page-ficha .ce-data .ce-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 28px;
  height: 22px;
  padding: 0 .5rem;
  border-radius: 999px;
  background: rgba(17,17,17,.06);
  border: 1px solid rgba(17,17,17,.10);
  font-size: .875rem;
  font-weight: 600;
  color: rgba(17,17,17,.75);
  vertical-align: middle;
  margin-left: .35rem;
}
/* ==========================================================
   CE Data Table — Móvil: filas apiladas (sin apretar columnas)
   Requiere: td[data-label="..."]
   ========================================================== */
@media (max-width: 575.98px){

  .ce-page-ficha .ce-data .ce-table-wrap{
    overflow: visible; /* ya no dependemos de scroll */
  }

  .ce-page-ficha .ce-data .ce-data-table thead{
    display: none;
  }

  .ce-page-ficha .ce-data .ce-data-table,
  .ce-page-ficha .ce-data .ce-data-table tbody,
  .ce-page-ficha .ce-data .ce-data-table tr,
  .ce-page-ficha .ce-data .ce-data-table td{
    display: block;
    width: 100%;
  }

  .ce-page-ficha .ce-data .ce-data-table tr{
    padding: .65rem .75rem;
    border-top: 1px solid rgba(17,17,17,.06);
  }

  .ce-page-ficha .ce-data .ce-data-table tbody td{
    padding: .35rem 0;
    border-top: 0;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
  }

  .ce-page-ficha .ce-data .ce-data-table tbody td::before{
    content: attr(data-label);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: rgba(17,17,17,.45);
    font-weight: 700;
    flex: 0 0 auto;
    min-width: 92px; /* ajusta si quieres */
  }

  /* El “valor” a la derecha no se rompe feo */
  .ce-page-ficha .ce-data .ce-data-table tbody td > *{
    text-align: right;
    margin-left: auto;
    max-width: 70%;
  }

  /* Código / badges: que no se deformen */
  .ce-page-ficha .ce-data .ce-code,
  .ce-page-ficha .ce-data .ce-badge{
    white-space: nowrap;
  }

  /* Vigencia: permite envolver si hace falta, pero sin chip */
  .ce-page-ficha .ce-data .ce-vigencia{
    white-space: normal;
  }
}
/* FIX: stacked table mobile — evitar textos que se salen */
@media (max-width: 575.98px){

  /* Asegura que cada celda pueda encoger (clave en flex) */
  .ce-page-ficha .ce-data .ce-data-table tbody td{
    min-width: 0;
  }

  /* El “valor” (lado derecho) debe poder romper línea */
  .ce-page-ficha .ce-data .ce-data-table tbody td > *{
    max-width: 68%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis; /* por si queda 1 línea */
  }

  /* Para textos largos (capítulo), permitir wrap real */
  .ce-page-ficha .ce-data .ce-data-table tbody td[data-label="Capítulo"] .ce-text{
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.2;
    text-align: right;
  }

  /* Si el capítulo viene como link, igual */
  .ce-page-ficha .ce-data .ce-data-table tbody td[data-label="Capítulo"] a,
  .ce-page-ficha .ce-data .ce-data-table tbody td[data-label="Capítulo"] .ce-link{
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  /* Código y badge: que NO rompan (son cortos) */
  .ce-page-ficha .ce-data .ce-data-table tbody td[data-label="Código"] .ce-code,
  .ce-page-ficha .ce-data .ce-data-table tbody td[data-label="Estado"] .ce-badge{
    white-space: nowrap;
  }

  /* Vigencia: que envuelva bonito en 2 líneas si necesita */
  .ce-page-ficha .ce-data .ce-data-table tbody td[data-label="Vigencia"] .ce-vigencia{
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
    text-align: right;
    line-height: 1.2;
  }
}
/* ==========================================================
   FIX: stacked mobile — mostrar texto completo (sin "...")
   ========================================================== */
@media (max-width: 575.98px){

  /* Quita cualquier ellipsis/recorte en valores */
  .ce-page-ficha .ce-data .ce-data-table tbody td > *{
    max-width: 70%;
    min-width: 0;

    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;

    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;

    text-align: right;
  }

  /* Capítulo/Nombre/Cargo: asegurar wrap completo */
  .ce-page-ficha .ce-data .ce-data-table tbody td .ce-text{
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;

    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
    line-height: 1.2;
  }

  /* Si algún valor es link */
  .ce-page-ficha .ce-data .ce-data-table tbody td a{
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;

    overflow-wrap: anywhere;
    word-break: break-word;
  }

  /* Código y badge: opcional mantener en una línea (son cortos) */
  .ce-page-ficha .ce-data .ce-data-table tbody td[data-label="Código"] .ce-code,
  .ce-page-ficha .ce-data .ce-data-table tbody td[data-label="Estado"] .ce-badge{
    white-space: nowrap !important;
  }
}
/* Badge tablas coherente con color marca*/
.ce-page-ficha .ce-indecopi.ce-data .ce-year{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.28rem .60rem;
  border-radius:999px;
  background: rgba(220,53,69,.10);
  border: 1px solid rgba(220,53,69,.25);
  color: rgba(220,53,69,.95);
  font-weight: 700;
  font-size: .84rem;
  white-space: nowrap;
}

/* =========================
   Sucursales — filtros inline
   ========================= */
.ce-page-ficha .ce-sucursales .ce-suc-controls{
  display:flex;
  flex-direction:column;
  gap:.6rem;
}

.ce-page-ficha .ce-sucursales .ce-suc-filters{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:.6rem;
  align-items:end;
}

.ce-page-ficha .ce-sucursales .ce-field{ min-width:0; }
.ce-page-ficha .ce-sucursales .ce-label{
  display:block;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color: rgba(17,17,17,.45);
  margin: 0 0 .25rem;
}

.ce-page-ficha .ce-sucursales .ce-field--search input{
  width:100%;
}

.ce-page-ficha .ce-sucursales .ce-suc-meta{
  display:flex;
  align-items:center;
  justify-content:flex-start;
}

/* Densidad tabla */
.ce-page-ficha .ce-sucursales .ce-suc-table thead th{
  padding: .55rem .70rem;
}
.ce-page-ficha .ce-sucursales .ce-suc-table tbody td{
  padding: .55rem .70rem;
  vertical-align: top;
}

/* Textos largos completos */
.ce-page-ficha .ce-sucursales .ce-wrap{
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  word-break: break-word;
}

/* Responsive: filtros en 2 columnas y luego 1 */
@media (max-width: 992px){
  .ce-page-ficha .ce-sucursales .ce-suc-filters{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 576px){
  .ce-page-ficha .ce-sucursales .ce-suc-filters{
    grid-template-columns: 1fr;
  }
}
/* =========================================
   CATÁLOGO / Fotos PRO — UX Pro (clean)
   - Desktop: 2 columnas, thumbs en grid, scroll ↑/↓ superpuesto
   - Mobile: thumbs horizontal + botones < >
   ========================================= */

.ce-page-ficha .ce-photos-block{
  padding: 1.05rem;
  overflow: hidden;
}

/* Header */
.ce-page-ficha .ce-photos-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  margin-bottom:.75rem;
}
.ce-page-ficha .ce-photos-title{
  display:flex;
  align-items:center;
  gap:.55rem;
  font-weight:850;
  letter-spacing:-.01em;
}
.ce-page-ficha .ce-photos-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:22px;
  padding:0 .5rem;
  border-radius:999px;
  background:rgba(17,17,17,.06);
  border:1px solid rgba(17,17,17,.10);
  font-size:.82rem;
  font-weight:900;
  color:rgba(17,17,17,.75);
}
.ce-page-ficha .ce-photos-actions{ display:flex; gap:.4rem; }

/* Layout */
.ce-page-ficha .ce-photos-grid{
  --ceph-h: 520px;
  --ceph-side: 110px;     /* sidebar más angosto para 1 sola columna */
  --ceph-thumb: 80px;     /* tamaño del thumb */
  display:grid;
  grid-template-columns: minmax(0,1fr) var(--ceph-side);
  gap:.85rem;
  align-items:stretch;
}

@media (max-width: 992px){
  .ce-page-ficha .ce-photos-grid{
    --ceph-h: clamp(240px, 56vw, 360px);
    grid-template-columns: 1fr;
  }
}

/* Carrusel */
.ce-page-ficha .ce-photos-carousel{
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(17,17,17,.10);
  background:#fff;
  box-shadow:0 10px 22px rgba(16,24,40,.08);
}
.ce-page-ficha .ce-photos-carousel .carousel-item{
  height: var(--ceph-h);
  background:rgba(17,17,17,.03);
}
.ce-page-ficha .ce-photos-carousel .carousel-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

/* Controles carrusel */
.ce-page-ficha .ce-photos-carousel .carousel-control-prev,
.ce-page-ficha .ce-photos-carousel .carousel-control-next{
  width:52px;
  opacity:1;
}
.ce-page-ficha .ce-photos-carousel .carousel-control-prev::before,
.ce-page-ficha .ce-photos-carousel .carousel-control-next::before{
  content:"";
  width:36px;
  height:36px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(17,17,17,.10);
  box-shadow:0 10px 18px rgba(16,24,40,.12);
  position:absolute;
  top:50%;
  transform:translateY(-50%);
}
.ce-page-ficha .ce-photos-carousel .carousel-control-prev-icon,
.ce-page-ficha .ce-photos-carousel .carousel-control-next-icon{
  width:1.15rem;
  height:1.15rem;
  filter: invert(1) grayscale(1);
  position:relative;
  z-index:1;
}

/* Side */
.ce-page-ficha .ce-photos-side{
  position:relative;
  min-width:0;
}

/* Thumbs — desktop 1 columna */
.ce-page-ficha .ce-photos-thumbs{
  height: var(--ceph-h);
  overflow:auto;

  display:flex;
  flex-direction: column;
  align-items: center;
  gap:.6rem;

  padding: 1rem .35rem;          /* espacio vertical para que no pise botones superpuestos */
  border-radius:14px;
  background:transparent;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.ce-page-ficha .ce-photos-thumbs::-webkit-scrollbar{ width:0; height:0; }

.ce-page-ficha .ce-thumb{
  width: var(--ceph-thumb);
  height: var(--ceph-thumb);
  flex: 0 0 var(--ceph-thumb);
  border:1px solid rgba(17,17,17,.10);
  border-radius:12px;
  background:#fff;
  padding:0;
  overflow:hidden;
  box-shadow:0 8px 18px rgba(16,24,40,.06);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.ce-page-ficha .ce-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ce-page-ficha .ce-thumb:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 24px rgba(16,24,40,.10);
}

/* Halo activo más visible */
.ce-page-ficha .ce-thumb.is-active{
  border-color: rgba(251,191,36,.98);
  box-shadow:
    0 0 0 3px rgba(251,191,36,.32),
    0 14px 28px rgba(251,191,36,.22),
    0 10px 22px rgba(16,24,40,.12);
}

/* Botones ↑/↓ superpuestos (desktop) */
.ce-page-ficha .ce-photos-scroll{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  width:32px;
  height:32px;
  border-radius:999px;
  border:1px solid rgba(17,17,17,.12);
  background:rgba(255,255,255,.90);
  box-shadow:0 10px 18px rgba(16,24,40,.10);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:5;
}
.ce-page-ficha .ce-photos-side > .ce-photos-scroll:first-child{ top: 8px; }
.ce-page-ficha .ce-photos-side > .ce-photos-scroll:last-child{ bottom: 8px; }

/* disabled NO deja pasar clicks */
.ce-page-ficha .ce-photos-scroll:disabled{
  opacity:.45;
  pointer-events: auto;
  cursor: default;
}

/* =========================================================
   PATCH CATÁLOGO — Mobile arrows (←/→) con look del carrusel
   (incluye FIX del hueco blanco antes del primer thumb)
   ========================================================= */

/* Normaliza el botón del scroller (look tipo carrusel) */
.ce-page-ficha .ce-photos-side > .ce-photos-scroll{
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(17,17,17,.10);
  box-shadow: 0 10px 18px rgba(16,24,40,.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Que disabled NO “desaparezca” */
.ce-page-ficha .ce-photos-side > .ce-photos-scroll:disabled{
  opacity: .35;
}

.ce-page-ficha{
  /* Íconos tipo Bootstrap carousel (blancos; luego invertimos a negro con filter) */
  --ceph-prev-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
  --ceph-next-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

@media (max-width: 992px){

  /* Forzar modo horizontal (evita que herede el flex de desktop) */
  .ce-page-ficha .ce-photos-thumbs{
    height: auto !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;

    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;

    gap: .5rem !important;

    /* FIX hueco: NO reserves espacio; el botón va superpuesto */
    padding: .25rem .35rem !important;

    background: transparent !important;
    -webkit-overflow-scrolling: touch;
  }

  .ce-page-ficha .ce-thumb{
    width: 64px !important;
    height: 64px !important;
    flex: 0 0 64px !important;
  }

  /* Botones superpuestos a los lados, centrados verticalmente */
  .ce-page-ficha .ce-photos-side{
    position: relative !important;
  }

  .ce-page-ficha .ce-photos-side > .ce-photos-scroll{
    position: absolute !important;
    top: 50% !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: translateY(-50%) !important; /* SIN rotate */
    z-index: 30 !important;

    width: 36px !important;
    height: 36px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.92) !important;
    border: 1px solid rgba(17,17,17,.10) !important;
    box-shadow: 0 10px 18px rgba(16,24,40,.12) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* pegados al borde del bloque (sin crear “espacio blanco”) */
  .ce-page-ficha .ce-photos-side > .ce-photos-scroll:first-child{ left: .15rem !important; }
  .ce-page-ficha .ce-photos-side > .ce-photos-scroll:last-child{ right: .15rem !important; }

  /* Oculta el <i class="bi bi-chevron-up/down"> para que NO se vea “otra fuente” */
  .ce-page-ficha .ce-photos-side > .ce-photos-scroll i{
    display: none !important;
  }

  /* Flechas tipo carrusel */
  .ce-page-ficha .ce-photos-side > .ce-photos-scroll::after{
    content: "";
    width: 1.15rem;
    height: 1.15rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1.15rem 1.15rem;
    filter: invert(1) grayscale(1); /* mismo look que tu carrusel */
  }

  .ce-page-ficha .ce-photos-side > .ce-photos-scroll:first-child::after{
    background-image: var(--ceph-prev-icon);
  }
  .ce-page-ficha .ce-photos-side > .ce-photos-scroll:last-child::after{
    background-image: var(--ceph-next-icon);
  }

  /* “espaciador” mínimo para que el primer thumb no quede pegado al borde (sin hueco visible) */
  .ce-page-ficha .ce-photos-thumbs::before,
  .ce-page-ficha .ce-photos-thumbs::after{
    content:"";
    display:block;
    width:.15rem;
  }
	
	/* Quita los pseudo-items que estaban creando 1 columna extra */
  .ce-page-ficha .ce-photos-thumbs::before,
  .ce-page-ficha .ce-photos-thumbs::after{
    content: "" !important;
    display: none !important;
  }

  /* Asegura que el carril arranque pegado (sin “padding reservado”) */
  .ce-page-ficha .ce-photos-thumbs{
    justify-content: start !important;
    padding-left: .35rem !important;
    padding-right: .35rem !important;
  }

  /* Botones bien superpuestos (igual que el de la derecha) */
  .ce-page-ficha .ce-photos-side > .ce-photos-scroll:first-child{
    left: .35rem !important;
  }
  .ce-page-ficha .ce-photos-side > .ce-photos-scroll:last-child{
    right: .35rem !important;
  }
}
/* Badge PRO: Empresa verificada (Facebook blue) */
:root{
  --ce-verified: #2E99EB;          /* azul base */
  --ce-verified-ink: #1877F2;      /* azul más “FB” para texto/icono */
}

.ceh4-badge-soft--verified{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.22rem .55rem;
  border-radius:999px;
  border:1px solid rgba(46,153,235,.35);
  background: rgba(46,153,235,.12);
  color: var(--ce-verified-ink);
  font-weight:800;
  line-height:1;
}

.ceh4-badge-soft--verified i{
  font-size:.95em;
  line-height:1;
  color: var(--ce-verified-ink);
}

/* Badge TOP: Empresa top (muestra #rank) */
.ceh4-badge-soft--top{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  border-radius:999px;
  padding:.22rem .55rem;
  border:1px solid rgba(251,191,36,.28);
  background: rgba(251,191,36,.12);
  color: #8a6400;

  font-weight:700;     
  font-size:.75rem;
  line-height:1.1;
}

.ceh4-badge-soft--top i{
  color: var(--bs-warning, #fbbf24);
  font-size:.95em;
  line-height:1;
}

.ceh4-badge-soft--top .top-rank{
  font-weight:800;
  color:#7a5700;
  opacity:.95;
}
/* =========================================================
   Sidebar Recomendados (panel-rel) — 1 por fila + Sticky
========================================================= */

.panel-rel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.75rem;
}

/* Sticky solo escritorio */
@media (min-width: 992px){
  .panel-rel-sticky{
    position: sticky;
    top: var(--panel-rel-sticky-top, 10px); /* ajusta a tu navbar */
  }
}

/* Lista vertical SIEMPRE (1 por fila) */
.panel-rel-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.55rem;
}

/* Fila base */
.panel-rel-row{
  display:flex;
  align-items:flex-start;
  gap:.65rem;
  padding:.70rem .75rem;
  border-radius:14px;
  border:1px solid rgba(17,17,17,.08);
  background: rgba(255,255,255,.80);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

.panel-rel-row:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(0,0,0,.06);
}

/* PREMIUM (más fuerte + barra ámbar) */
.panel-rel-row.is-premium{
  border-color: rgba(251,191,36,.26);
  background: rgba(251,191,36,.08);
  position:relative;
  overflow:hidden;
}
.panel-rel-row.is-premium::before{
  content:"";
  position:absolute;
  left:0;
  top:.55rem;
  bottom:.55rem;
  width:3px;
  border-radius:999px;
  background: rgba(251,191,36,.95);
}

/* NORMAL (más simple / diferente) */
.panel-rel-row.is-normal{
  border-style:dashed;
  border-color: rgba(17,17,17,.14);
  background: rgba(0,0,0,.02);
}

/* Logo Premium */
.panel-rel-logo{
  width:52px;
  height:52px;
  border-radius:14px;
  overflow:hidden;
  flex: 0 0 52px;
  border:1px solid rgba(17,17,17,.10);
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
}
.panel-rel-logo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.panel-rel-logo.is-empty{
  background: rgba(255,255,255,.7);
  font-weight:900;
  color: rgba(17,17,17,.55);
}

/* Dot para normales */
.panel-rel-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  margin-top:.30rem;
  flex: 0 0 10px;
  background: rgba(17,17,17,.28);
}

/* Texto */
.panel-rel-body{ min-width:0; flex:1 1 auto; }

.panel-rel-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
}

.panel-rel-name{
  display:block;
  font-weight:500;
  line-height:1.15;
  color:#111;
  text-decoration:none;
  min-width:0;
}
.panel-rel-name:hover{
  color: rgba(17,17,17,.92);
  text-decoration-color: rgba(13,110,253,.55);
  text-decoration: underline;
}

.panel-rel-badge{
  flex:0 0 auto;
  font-size:.70rem;
  font-weight:700;
  padding:.10rem .45rem;
  border-radius:999px;
  border:1px solid rgba(251,191,36,.35);
  background: rgba(251,191,36,.18);
  color:#8a5a00;
}

.panel-rel-addr{
  margin-top:.18rem;
  font-size:.84rem;
  color: rgba(17,17,17,.65);
  /*white-space:nowrap;
  text-overflow:ellipsis;*/
  overflow:hidden;
}

/* Solo premium: tagline */
.panel-rel-tagline{
  margin-top:.20rem;
  font-size:.82rem;
  color: rgba(17,17,17,.70);
  line-height:1.2;
}

/* Meta */
.panel-rel-meta{
  margin-top:.28rem;
  font-size:.76rem;
  color: rgba(17,17,17,.55);
}
.panel-rel-time i{ margin-right:.25rem; opacity:.85; }


/* ==============================
   CE — Horarios (UX PRO)
   ============================== */
.ce-hours{ position:relative; }
.ce-hours-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.ce-hours-title{
  display:flex;
  align-items:center;
  gap:.6rem;
  min-width:0;
}
.ce-hours-dot{
  width:10px; height:10px; border-radius:999px; flex:0 0 10px;
  box-shadow: 0 0 0 3px rgba(22,163,74,.14);
  background: var(--bs-success);
}
.ce-hours-dot--closed{
  background: var(--bs-danger);
  box-shadow: 0 0 0 3px rgba(220,53,69,.12);
}
.ce-hours-dot--unknown{
  background: #9ca3af;
  box-shadow: 0 0 0 3px rgba(156,163,175,.18);
}

.ce-hours-badge{
  font-weight:700;
  border:1px solid rgba(17,17,17,.08);
  background: rgba(22,163,74,.10);
  color: #15803d;
  padding:.22rem .55rem;
  border-radius:999px;
  font-size:.74rem;
  white-space:nowrap;
}
.ce-hours-badge--closed{
  background: rgba(220,53,69,.10);
  color: #b02a37;
}
.ce-hours-badge--unknown{
  background: rgba(156,163,175,.14);
  color: #374151;
}

.ce-hours-today{
  display:flex;
  align-items:center;
  gap:.65rem;
  padding:.55rem .70rem;
  border-radius:14px;
  border:1px solid var(--bs-border-color);
  background: rgba(11,11,12,.02);
  min-width: 210px;
}
.ce-hours-today i{
  width:34px; height:34px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:12px;
  border:1px solid rgba(17,17,17,.08);
  background: rgba(251,191,36,.16);
  color: #8a6a00;
}
.ce-hours-today .small{ line-height:1.1; }

.ce-hours-note{
  margin-top:.75rem;
  display:flex;
  gap:.65rem;
  align-items:flex-start;
  padding:.70rem .80rem;
  border-radius:14px;
  border:1px solid var(--bs-border-color);
  background: rgba(22,163,74,.06);
}
.ce-hours-note--closed{ background: rgba(220,53,69,.05); }
.ce-hours-note--unknown{ background: rgba(156,163,175,.10); }
.ce-hours-note i{
  margin-top:.10rem;
  color: rgba(17,17,17,.55);
}

.ce-hours-bar{
  margin-top:.55rem;
  height:6px;
  border-radius:999px;
  background: rgba(17,17,17,.10);
  overflow:hidden;
}
.ce-hours-bar > span{
  display:block;
  height:100%;
  width:0%;
  background: var(--bs-success);
  border-radius:999px;
}

.ce-hours-list{
  margin-top:.75rem;
  border-top:1px dashed rgba(17,17,17,.14);
  padding-top:.65rem;
}
.ce-hours-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.52rem .55rem;
  border-radius:12px;
}
.ce-hours-row .ce-hours-day{ font-weight:600; }
.ce-hours-row .ce-hours-time{ color:#4b5563; }
.ce-hours-row--active{
  background: rgba(13,110,253,.06);
  border:1px solid rgba(13,110,253,.14);
}

@media (max-width: 575.98px){
  .ce-hours-top{ flex-direction:column; align-items:stretch; }
  .ce-hours-today{ min-width:unset; }
}

.ce-hours .ce-contact-empty{
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  padding:.8rem;
  border-radius:14px;
  border:1px dashed rgba(17,17,17,.18);
  background: rgba(17,17,17,.02);
}
.ce-hours .ce-contact-empty i{
  font-size:1.1rem;
  color: rgba(17,17,17,.55);
  margin-top:.15rem;
}