/* ===========================================================================
   Tema moderno CotizarEventos — basado en los mockups .m-* de
   _propuesta/bocetos-mejoras.html. Se carga detrás del flag $temaModerno.
   =========================================================================== */

/* --- SECCIÓN: tokens (del boceto) --- */
:root{
  --bg:#f9f5e9; --bg-2:#fffdf5; --bg-card:#ffffff;
  --text:#1a1208; --text-soft:#5c4a32; --text-mute:#a08c6a;
  --acento:#d4a93e; --acento-claro:#e6c84a; --acento-soft:#fdf6df; --acento-dark:#8f6e1f;
  --secundario:#4d3818; --secundario-soft:#ebe1cc;
  --borde:#e8dba8; --borde-soft:#f0e8c8;
  --rojo:#b54338; --rojo-soft:#fce8e6; --verde:#4a7a3a; --verde-soft:#e9f0e1; --azul:#3a5a7a; --azul-soft:#e6eef7;
  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-body:'Inter',system-ui,sans-serif;
  --font-mono:'DM Mono',monospace;
  --shadow-sm:0 1px 3px rgba(77,56,24,.05);
  --shadow-md:0 8px 30px -8px rgba(77,56,24,.12);
  --shadow-lg:0 30px 80px -16px rgba(77,56,24,.22);
}

/* --- SECCIÓN: base de página --- */
body{ background:var(--bg); color:var(--text); font-family:var(--font-body); }
h1,h2,h3,h4,h5,h6{ font-family:var(--font-display); color:var(--text); font-weight:600; letter-spacing:-.01em; }
em{ font-style:italic; }
a{ color:var(--acento-dark); }
a:hover{ color:var(--acento); }

/* --- SECCIÓN: overrides de Bootstrap --- */
.btn{ border-radius:7px; font-family:var(--font-body); font-weight:600; }
/* btn-lg de Bootstrap es 1.25rem (20px) y rompe la armonia -> escala fina */
.btn-lg, .btn-group-lg > .btn{ font-size:15px!important; padding:12px 28px!important; line-height:1.5; border-radius:8px!important; }
.btn-dorado-top, .btn-dir{ background:var(--acento)!important; color:var(--text)!important; border:none!important; border-radius:7px; padding:11px 24px; box-shadow:none; }
.btn-dorado-top:hover, .btn-dir:hover{ background:var(--acento-claro)!important; color:var(--text)!important; }
.btn-outline-secondary{ border-color:var(--borde); color:var(--text-soft); }

.form-control{ border:1px solid var(--borde); border-radius:7px; background:var(--bg-card); color:var(--text); font-family:var(--font-body); padding:12px 14px; min-height:46px; }
/* inputs y selects con el MISMO alto (sweep 2026-06-28) */
input.form-control, select.form-control{ height:46px; }
textarea.form-control{ height:auto; min-height:auto; }
/* date inputs readonly (datepicker): se ven normales, no grises */
.input-daterange .form-control[readonly]{ background:var(--bg-card); cursor:pointer; }
.form-control:focus{ border-color:var(--acento); box-shadow:0 0 0 3px rgba(212,169,62,.15); background:#fff; }
.form-control.is-invalid{ border-color:var(--rojo); background:var(--rojo-soft); }
select.form-control{ height:46px!important; padding:8px 14px; line-height:1.5; }
.form-text, .dosis-14-list{ font-family:var(--font-body); }

/* === Grupos de telefono/celular: flex robusto (sweep movil 2026-06-29) === */
/* Antes: inputs con width:20% inline + texto "+"/"15" suelto -> se desbordaban/apretaban en pantallas chicas. */
.ce-tel{ display:flex; align-items:center; gap:6px; flex-wrap:nowrap; }
.ce-tel .form-control{ display:inline-block; text-align:center; min-width:0; padding-left:6px; padding-right:6px; }
.ce-tel-sep{ flex:0 0 auto; color:var(--text-mute); font-weight:600; font-size:13px; white-space:nowrap; }
.ce-tel-pais{ flex:0 0 56px; }
.ce-tel-pref{ flex:0 0 74px; }
.ce-tel-num{ flex:1 1 auto; }

/* === Espaciado movil: box-cotizar usa padding:50px (extra.css), excesivo en pantallas chicas === */
@media (max-width:767px){
	.box-cotizar{ padding:18px 14px; }
	/* Encabezado de seccion (salones/servicios): boton "Agregar" full-width y mas tocable */
	.ce-emp-section-head{ gap:10px; }
	.ce-emp-section-head .ce-btn{ width:100%; justify-content:center; }
	.ce-emp-section-title{ font-size:19px; }
}
/* labels de formulario: tamano prolijo (extra.css las dejaba en 14pt ~= 18.7px, heredado del form-group) */
.form-group > label, form label{ font-family:var(--font-body); font-size:13.5px; font-weight:500; color:var(--text); letter-spacing:.01em; margin-bottom:6px; line-height:1.3; }
.error-msj{ color:var(--rojo); }

.card{ border:1px solid var(--borde); border-radius:14px; box-shadow:var(--shadow-sm); }
.alert-success{ background:var(--verde-soft); border-color:var(--verde); color:#2f4f24; }
.alert-danger{ background:var(--rojo-soft); border-color:var(--rojo); color:#7a2a22; }
.alert-warning{ background:var(--acento-soft); border-color:var(--borde); color:var(--secundario); }
.alert-info{ background:var(--azul-soft); border-color:var(--azul); color:#27425c; }
.dropdown-menu, .modal-content{ border:1px solid var(--borde); border-radius:12px; box-shadow:var(--shadow-md); }
.progress-bar{ background:var(--acento)!important; }

/* --- SECCIÓN: modal (componente ce-modal, reemplaza alert/confirm) --- */
.ce-modal-overlay{ position:fixed; inset:0; background:rgba(26,18,8,.55); display:flex; align-items:center; justify-content:center; z-index:100010; padding:20px; animation:ceFadeModal .15s ease; }
.ce-modal-overlay[hidden]{ display:none; }
@keyframes ceFadeModal{ from{ opacity:0; } to{ opacity:1; } }
.ce-modal{ background:var(--bg-card); border:1px solid var(--borde); border-radius:14px; box-shadow:var(--shadow-md); max-width:440px; width:100%; padding:24px 26px; }
.ce-modal-titulo{ font-family:var(--font-display); font-size:20px; font-weight:600; color:var(--text); margin-bottom:10px; letter-spacing:-.01em; }
.ce-modal-cuerpo{ font-family:var(--font-body); color:var(--text-soft); line-height:1.55; margin-bottom:22px; }
.ce-modal-acciones{ display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.ce-btn-peligro, .ce-btn.ce-btn-peligro{ background:var(--rojo)!important; color:#fff!important; border-color:var(--rojo)!important; }
.ce-btn-peligro:hover{ filter:brightness(1.06); }

/* Modales Bootstrap (data-toggle="modal"): la barra ce-nav tiene z-index:99999 inline, así que
   sin esto el modal y su overlay quedan DEBAJO del menú (pegados arriba y cortados). Los subo por
   encima del nav y los centro verticalmente en TODAS las páginas. Fix 2026-07-28. */
.modal{ z-index:100050; }
.modal-backdrop{ z-index:100040; }
.modal-dialog{ display:flex; align-items:center; min-height:calc(100% - 1rem); }
@media (min-width:576px){ .modal-dialog{ min-height:calc(100% - 3.5rem); } }

/* --- SECCIÓN: re-mapeo de clases propias del sitio --- */
.h1-sanchez-44, .titulo-slider, .sanchez-65{ font-family:var(--font-display); color:var(--text); font-weight:600; }
.h1-sanchez-44 em, .titulo-slider em{ color:var(--acento); font-style:italic; }
.h2-sanchez, .h2-sanchez-dorado, .h2-sanchez-18, .h2-sanchez-30, .titulo-seccion, .titulo-box-dorado{ font-family:var(--font-display); color:var(--acento-dark); font-weight:600; font-style:italic; }
.seccion-subtitulo{ font-family:var(--font-body); color:var(--text-soft); }
.seccion-cuerpo, .texto-seccion, .dosis-15-light{ font-family:var(--font-body); color:var(--text-soft); }
.fondo-blanco{ background:var(--bg)!important; }
.fondo-gris-claro, .box-gris-index, .box-gris-ingreso{ background:var(--bg-2)!important; }
.fondo-gris{ background:var(--secundario-soft)!important; }
.box-dorado{ background:var(--acento-soft)!important; }
.barra-titulo, .medio-titulo{ background:linear-gradient(to right,var(--acento) 0%,var(--borde) 35%,transparent 100%)!important; height:2px; border:none; }

/* --- SECCIÓN: nav + footer (cohesión, alineado al boceto m-header) --- */
.navbar{ background:var(--bg-2)!important; border-bottom:1px solid var(--borde-soft); padding:14px 26px; }
.navbar .navbar-brand img{ height:42px; }
/* links de texto limpios: sin mayúsculas, sin borde-caja */
.nav-link-cot{ font-family:var(--font-body)!important; text-transform:none!important; border-top:none!important; color:var(--text-soft)!important; font-size:15px!important; font-weight:500; letter-spacing:0; padding:8px 14px!important; }
.nav-link-cot:hover{ color:var(--acento-dark)!important; background:transparent!important; }
/* acciones del nav: pills dorados outline (livianos) en vez de cajas sólidas.
   La doble clase .navbar .btn-* le gana a .text-white (que forzaba texto blanco). */
.navbar .btn-dorado-top, .navbar .btn-dir{ background:transparent!important; color:var(--acento-dark)!important; border:1px solid var(--acento)!important; border-radius:999px!important; padding:8px 20px!important; font-weight:600; box-shadow:none!important; }
.navbar .btn-dorado-top:hover, .navbar .btn-dir:hover{ background:var(--acento)!important; color:var(--text)!important; }
.navbar .dropdown-menu{ border-radius:10px; }
.navbar .dropdown-item:hover{ background:var(--acento-soft); color:var(--acento-dark); }
.footerex{ background:var(--secundario); color:var(--secundario-soft); }
.footerex .nav-foot{ color:var(--secundario-soft); }
.footerex .nav-foot:hover{ color:var(--acento-claro); }
.copy-foot, .texto-footer-acerca{ color:var(--secundario-soft); font-family:var(--font-body); }

/* ===========================================================================
   SECCIÓN: componentes ce-* (para construir páginas faro — portados de .m-*)
   =========================================================================== */
.ce-hero{
  position:relative;
  overflow:hidden;
  min-height:clamp(480px, 78vh, 720px);
  display:flex;
  align-items:center;
  padding:72px 0;
}
/* Slides apilados: 3 fotos que ROTAN con crossfade (JS hero-rotador.js) + Ken Burns
   (zoom lento) en cada una. El server marca una .activa al azar para el arranque sin parpadeo. */
.ce-hero-slides{ position:absolute; inset:0; z-index:0; }
.ce-hero-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center 45%;
  opacity:0;
  transition:opacity 1.4s ease-in-out;
  animation:ceKenburns 26s ease-in-out infinite alternate;
  will-change:opacity, transform;
}
.ce-hero-slide.activa{ opacity:1; }
@keyframes ceKenburns{ from{ transform:scale(1.04); } to{ transform:scale(1.16); } }
.ce-hero-slide-1{ background-image:url('../img/hero-evento-1.jpg'); }
.ce-hero-slide-2{ background-image:url('../img/hero-evento-2.jpg'); }
.ce-hero-slide-3{ background-image:url('../img/hero-evento-3.jpg'); }
@supports (background-image: image-set(url('../img/hero-evento-1.webp') type('image/webp'))){
  .ce-hero-slide-1{ background-image:image-set(url('../img/hero-evento-1.webp') type('image/webp'), url('../img/hero-evento-1.jpg') type('image/jpeg')); }
  .ce-hero-slide-2{ background-image:image-set(url('../img/hero-evento-2.webp') type('image/webp'), url('../img/hero-evento-2.jpg') type('image/jpeg')); }
  .ce-hero-slide-3{ background-image:image-set(url('../img/hero-evento-3.webp') type('image/webp'), url('../img/hero-evento-3.jpg') type('image/jpeg')); }
}
/* Overlay calido oscuro: la foto se ve bien y el texto blanco queda legible. */
.ce-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(26,18,8,.40) 0%, rgba(26,18,8,.54) 52%, rgba(26,18,8,.72) 100%);
  z-index:1;
}
.ce-hero > .container{ position:relative; z-index:2; }
/* Hero oscuro: eyebrow y boton ghost en claro (h1/p.lead se setean en sus reglas) */
.ce-hero .ce-eyebrow{ color:var(--acento-claro); }
.ce-hero .ce-btn.ghost{ color:#fff; border-color:rgba(255,255,255,.55); }
.ce-hero .ce-btn.ghost:hover{ background:rgba(255,255,255,.14); color:#fff; box-shadow:none; }
.ce-eyebrow{ font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.24em; text-transform:uppercase; color:var(--acento-dark); margin-bottom:16px; }
.ce-eyebrow::after{ content:" \2726"; }
.ce-hero h1{ font-family:var(--font-display); font-size:clamp(38px,5.4vw,58px); line-height:1.04; color:#fff; letter-spacing:-.02em; font-weight:500; margin-bottom:18px; text-shadow:0 2px 22px rgba(0,0,0,.4); }
.ce-hero h1 em{ color:var(--acento-claro); font-style:italic; }
.ce-hero p.lead{ font-size:19px; color:rgba(255,255,255,.92); max-width:640px; line-height:1.6; text-shadow:0 1px 12px rgba(0,0,0,.45); }

.ce-btn{ display:inline-flex; align-items:center; gap:8px; background:var(--acento); color:var(--text); border:none; padding:13px 28px; border-radius:8px; font-family:var(--font-body); font-weight:600; font-size:14px; text-decoration:none; transition:all .18s; }
.ce-btn:hover{ background:var(--acento-claro); color:var(--text); transform:translateY(-1px); box-shadow:0 8px 20px -6px rgba(212,169,62,.5); }
.ce-btn.dark{ background:var(--secundario); color:var(--bg-2); }
.ce-btn.dark:hover{ background:#3a2a12; color:var(--bg-2); }
.ce-btn.ghost{ background:transparent; color:var(--text-soft); border:1px solid var(--borde); }
.ce-btn.ghost:hover{ background:var(--acento-soft); color:var(--text); box-shadow:none; }

/* Segmented control (selector Usuario/Empresa del login). Radios reales ocultos; el <span> se pinta al :checked. */
.ce-segmento{ display:flex; gap:6px; max-width:420px; margin:0 auto; padding:6px; background:var(--bg-2); border:1px solid var(--borde); border-radius:12px; }
.ce-segmento-opt{ flex:1 1 0; margin:0; position:relative; cursor:pointer; }
.ce-segmento-opt input{ position:absolute; opacity:0; width:0; height:0; }
.ce-segmento-opt span{ display:flex; align-items:center; justify-content:center; gap:8px; padding:12px 10px; border-radius:8px; font-weight:600; font-size:14.5px; color:var(--text-soft); transition:all .16s; }
.ce-segmento-opt span i{ font-size:15px; opacity:.85; }
.ce-segmento-opt:hover span{ background:var(--acento-soft); color:var(--text); }
.ce-segmento-opt input:checked + span{ background:var(--acento); color:var(--text); box-shadow:0 6px 16px -7px rgba(212,169,62,.55); }
.ce-segmento-opt input:checked + span i{ opacity:1; }
.ce-segmento-opt input:focus-visible + span{ outline:2px solid var(--acento-dark); outline-offset:2px; }

/* Sección bloqueable (recuperar contraseña): email + botón deshabilitados hasta elegir tipo.
   La capa transparente (solo visible en .bloqueado) capta el click sobre los controles disabled. */
.ce-bloqueable{ position:relative; transition:opacity .16s; }
.ce-bloqueable.bloqueado{ opacity:.5; }
.ce-bloqueable-capa{ display:none; }
.ce-bloqueable.bloqueado .ce-bloqueable-capa{ display:block; position:absolute; inset:0; z-index:5; cursor:not-allowed; }

.ce-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media(max-width:800px){ .ce-grid{ grid-template-columns:1fr; } }
.ce-card{ background:var(--bg-card); border:1px solid var(--borde); border-radius:14px; padding:28px 22px; box-shadow:var(--shadow-sm); transition:all .2s; }
.ce-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-2px); }
.ce-card h3{ font-family:var(--font-display); font-style:italic; color:var(--acento-dark); font-size:21px; margin:10px 0 8px; }
.ce-card p{ font-family:var(--font-body); color:var(--text-soft); font-size:14.5px; line-height:1.6; margin:0; }
.ce-card-icon{ width:56px; height:56px; border-radius:14px; background:var(--secundario); color:var(--acento-soft); display:inline-flex; align-items:center; justify-content:center; font-size:24px; }

.ce-section{ padding:56px 0; }
.ce-section.alt{ background:var(--bg-2); }
.ce-section-title{ font-family:var(--font-display); font-style:italic; color:var(--acento-dark); font-size:30px; font-weight:600; margin-bottom:6px; }
.ce-divider{ height:1px; background:linear-gradient(to right,var(--acento) 0%,var(--borde) 30%,transparent 100%); margin:12px 0 26px; border:none; }
.ce-trust{ background:var(--acento-soft); border:1px solid var(--borde); border-radius:10px; padding:14px 18px; color:var(--text); display:inline-flex; gap:12px; align-items:center; font-family:var(--font-body); }
.ce-trust::before{ content:"\2726"; color:var(--acento); font-size:22px; }

/* paso numerado (proceso de la home) */
.ce-step-num{ width:46px; height:46px; border-radius:50%; background:var(--acento-soft); border:1px solid var(--borde); color:var(--acento-dark); font-family:var(--font-display); font-style:italic; font-weight:600; font-size:20px; display:inline-flex; align-items:center; justify-content:center; }

/* ===========================================================================
   SECCIÓN: enforcement de tipografías — pisa TODAS las fuentes viejas de
   extra.css (Sanchez/Montserrat -> Cormorant ; PT Sans/Dosis -> Inter).
   Va con !important porque varias clases viejas lo usan.
   =========================================================================== */
.titulo-empresa, .titulo h3, .titulo-slider, .titulo-seccion,
.h2-sanchez, .h2-sanchez-dorado, .h2-sanchez-18, .h2-sanchez-30,
.h1-directorio, .h1-sanchez-44, .sanchez-65{
  font-family:var(--font-display)!important;
}
.contenedor-empresas-nombre, .copy-foot, .nav-foot-social, .nav-foot,
.texto-footer-acerca, .texto-seccion, .leer-mas, .nav-cat, .nav-scat, .nav-scat-sel,
.seccion-subtitulo, .seccion-subtitulo-2, .seccion-cuerpo,
.dosis-14-list, .dosis-15-light, .dosis-medium, .nav-link-cot,
.btn, .btn-dorado-top, .btn-dir{
  font-family:var(--font-body)!important;
}

/* ===========================================================================
   SECCIÓN: escala tipográfica — extra.css define el texto en 'pt' (14pt ~= 18.7px),
   sobredimensionado para el tema. Acá lo normalizamos a una escala en px.
   (solo tamaños de cuerpo/UI; los títulos display Cormorant se dejan grandes)
   =========================================================================== */
/* cuerpo / listas / párrafos */
.dosis-14-list, .seccion-cuerpo, .texto-seccion, .contenedor-empresas-nombre,
.nav-cat, .nav-cat:hover, .nav-cat:focus{ font-size:15px!important; }
/* texto secundario / links de nav y footer */
.dosis-15-light, .leer-mas, .leer-mas:hover, .leer-mas:focus, .nav-link-cot,
.nav-foot, .nav-foot:hover, .nav-foot:focus, .texto-footer-acerca,
.nav-scat, .nav-scat:hover, .nav-scat:focus, .nav-scat-sel{ font-size:14px!important; }
.dosis-15-light{ line-height:1.5!important; }
/* texto chico */
.copy-foot{ font-size:13px!important; }
/* subtítulos de sección */
.seccion-subtitulo, .seccion-subtitulo-2{ font-size:18px!important; }

/* ===========================================================================
   SECCIÓN: catálogo de servicios del panel empresa (boceto 12)
   Lista de servicios activos + (más adelante) wizard de 3 pasos.
   =========================================================================== */
.ce-emp-section{ background:var(--bg-2); border:1px solid var(--borde); border-radius:14px; padding:22px 24px; margin-bottom:22px; }
.ce-emp-section-head{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px; }
.ce-emp-section-title{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:22px; color:var(--text); margin:0; display:flex; align-items:center; gap:10px; }
.ce-emp-section-count{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; color:var(--text-mute); background:var(--bg-2); border:1px solid var(--borde-soft); border-radius:14px; padding:4px 10px; }

/* item de servicio activo */
.ce-emp-lista{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; align-items:start; }
@media (max-width:768px){ .ce-emp-lista{ grid-template-columns:1fr; } }
/* Wizard de servicios en MODAL (issue: lista larga -> grid 2-col + alta/editar en modal) */
.ce-wizard-modal{ position:fixed; inset:0; z-index:100000; background:rgba(26,18,8,.55); display:flex; align-items:center; justify-content:center; padding:24px 16px; overflow:hidden; animation:ceFadeModal .15s ease; } /* z-index alto: el nav superior tiene z-index:99999 -> el modal va por encima */
.ce-wizard-modal .ce-wizard{ max-width:780px; width:100%; max-height:calc(100vh - 48px); margin:0; display:flex; flex-direction:column; overflow:hidden; }
.ce-wizard-modal .ce-wizard-head, .ce-wizard-modal .ce-stepper, .ce-wizard-modal .ce-wizard-foot{ flex:0 0 auto; }
.ce-wizard-modal .ce-wizard-body{ flex:1 1 auto; overflow-y:auto; min-height:0; }
@media (max-width:600px){ .ce-wizard-modal{ padding:12px 8px; } .ce-wizard-modal .ce-wizard{ max-height:calc(100vh - 24px); } }
/* Footer del wizard en movil: los 3 botones (Cancelar/Atras/Siguiente) no entran en fila -> apilar y full-width */
@media (max-width:600px){
	/* Menos padding interno para ganar ancho util y que el contenido no se desborde */
	.ce-wizard{ padding:18px 16px; }
	.ce-wizard-body{ overflow-x:hidden; }
	.ce-wizard-foot{ flex-direction:column; align-items:stretch; gap:10px; }
	.ce-wizard-foot .ce-save-note{ text-align:center; order:-1; }
	.ce-wizard-foot .ce-btn-actions{ width:100%; flex-wrap:wrap; gap:8px; }
	.ce-wizard-foot .ce-btn-actions .ce-btn{ flex:1 1 auto; justify-content:center; padding-left:14px; padding-right:14px; }
	/* Stepper: numeros + textos mas compactos para que entren los 3 pasos */
	.ce-stepper{ margin:14px 0 18px; }
	.ce-step-text{ font-size:11px; }
	.ce-step-text strong{ font-size:12.5px; }
	/* Paso 2 (rango): minimo y maximo lado a lado (50% c/u) con "-" en medio; "personas" debajo, centrado */
	.ce-rango-inputs{ align-items:flex-end; gap:8px 10px; }
	.ce-rango-campo{ flex:1 1 0; min-width:0; }
	.ce-rango-campo .form-control{ width:100%; }
	.ce-rango-sep{ flex:0 0 auto; padding-bottom:10px; }
	.ce-rango-unidad{ flex:1 1 100%; text-align:center; padding-bottom:0; padding-top:2px; }
	/* Paso 3 (zonas): ciudades en una sola columna (minmax 150px apretaba/desbordaba) */
	.ce-zona-ciudades{ grid-template-columns:1fr; }
	.ce-zona-ciud{ min-width:0; overflow-wrap:anywhere; }
}
.ce-emp-item{ display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--borde); border-radius:12px; padding:14px 18px; transition:box-shadow .18s, border-color .18s; }
.ce-emp-item:hover{ border-color:var(--acento); box-shadow:0 6px 18px -8px rgba(212,169,62,.35); }
/* Icono de tarjeta (boceto 11): fondo oscuro --secundario; el emoji a color resalta encima. */
.ce-emp-item-icon{ width:42px; height:42px; flex:0 0 42px; border-radius:10px; background:var(--secundario); color:var(--acento-soft); display:flex; align-items:center; justify-content:center; font-size:20px; }
.ce-emp-item-info{ flex:1 1 auto; min-width:0; }
.ce-emp-item-name{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:17px; color:var(--text); margin-bottom:6px; overflow-wrap:anywhere; }
.ce-emp-item-meta{ display:flex; gap:8px; flex-wrap:wrap; }
.ce-meta-badge{ font-size:11.5px; color:var(--text-soft); background:var(--bg); border:1px solid var(--borde-soft); border-radius:6px; padding:4px 10px; display:inline-flex; align-items:center; gap:6px; white-space:normal; max-width:100%; overflow-wrap:anywhere; margin:0 4px 6px 0; }
.ce-meta-badge.muted{ color:var(--text-mute); font-style:italic; }
.ce-emp-item-actions{ display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.ce-emp-item-actions .ce-btn{ padding:7px 16px; font-size:13px; }
/* Reorden movil de las tarjetas (salones/servicios): icono+nombre+badges arriba,
   acciones en su propia fila abajo (Editar ancho, x compacto al lado). */
@media (max-width:480px){
	.ce-emp-item{ flex-wrap:wrap; align-items:flex-start; gap:10px 12px; padding:14px; }
	.ce-emp-item-actions{ flex:1 1 100%; }
	.ce-emp-item-actions .ce-btn{ flex:1 1 auto; justify-content:center; }
}
.ce-btn-icon{ width:34px; height:34px; border-radius:8px; border:1px solid var(--borde); background:#fff; color:var(--text-mute); font-size:18px; line-height:1; cursor:pointer; transition:all .15s; display:inline-flex; align-items:center; justify-content:center; }
.ce-btn-icon:hover{ border-color:var(--rojo); color:var(--rojo); background:var(--rojo-soft); }

/* estado vacío (ítem 6 del Bloque 1) */
.ce-emp-empty{ text-align:center; padding:48px 28px; background:var(--bg-2); border:1px dashed var(--borde); border-radius:16px; }
.ce-emp-empty-icon{ font-size:44px; margin-bottom:10px; }
.ce-emp-empty h3{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:24px; color:var(--text); margin-bottom:8px; }
.ce-emp-empty p{ font-size:15px; color:var(--text-soft); max-width:440px; margin:0 auto 22px; }
.ce-emp-empty-acciones{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }

/* --- wizard de agregar servicios (3 pasos) --- */
.ce-wizard{ background:var(--bg-2); border:1px solid var(--borde); border-radius:16px; padding:26px 28px; margin-bottom:24px; }
.ce-wizard-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.ce-wizard-head h2{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:22px; color:var(--text); margin:0; }
.ce-wizard-step{ font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-mute); }
.ce-wizard-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:24px; padding-top:20px; border-top:1px solid var(--borde-soft); }
.ce-wizard-foot .ce-save-note{ font-size:13px; color:var(--text-soft); font-style:italic; }
.ce-wizard-foot .ce-btn-actions{ display:flex; gap:10px; }

/* stepper de 3 pasos (reusable en wizards del panel) */
.ce-stepper{ display:flex; align-items:flex-start; gap:0; margin:18px 0 24px; }
.ce-step{ flex:1; display:flex; flex-direction:column; align-items:center; text-align:center; position:relative; }
.ce-step-circle{ width:38px; height:38px; line-height:36px; border-radius:50%; background:#fff; border:1px solid var(--borde); color:var(--text-mute); font-weight:600; font-family:var(--font-body); position:relative; z-index:2; transition:all .25s; }
.ce-step.active .ce-step-circle{ background:var(--acento); border-color:var(--acento-dark); color:#1a1208; box-shadow:0 4px 14px -2px rgba(212,169,62,.45); }
.ce-step.done .ce-step-circle{ background:var(--secundario); border-color:var(--secundario); color:#fffdf5; }
.ce-step-text{ font-size:12px; margin-top:8px; color:var(--text-mute); line-height:1.3; }
.ce-step.active .ce-step-text{ color:var(--text); }
.ce-step-text strong{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:14px; }
.ce-step:not(:last-child)::after{ content:""; position:absolute; top:19px; left:50%; width:100%; height:2px; background:var(--borde); z-index:1; }
.ce-step.done:not(:last-child)::after{ background:var(--secundario); }

/* paso 1: categorías colapsables con servicios */
.ce-buscador-serv{ margin-bottom:16px; }
.ce-emp-cat{ border:1px solid var(--borde); border-radius:12px; margin-bottom:10px; overflow:hidden; background:#fff; }
.ce-emp-cat-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 18px; cursor:pointer; user-select:none; }
.ce-emp-cat-head:hover{ background:var(--acento-soft); }
.ce-emp-cat-name{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:16.5px; color:var(--text); }
.ce-emp-cat-count{ font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; color:var(--text-mute); }
.ce-emp-cat-count.tiene{ background:var(--acento); color:var(--text); padding:4px 10px; border-radius:5px; font-weight:700; letter-spacing:.08em; }
.ce-emp-cat-servicios{ display:none; padding:6px 18px 16px; border-top:1px solid var(--borde-soft); }
.ce-emp-cat.abierta .ce-emp-cat-servicios{ display:block; }
.ce-emp-serv{ display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--borde-soft); cursor:pointer; font-weight:400; font-size:13.5px; color:var(--text); }
.ce-emp-serv:last-child{ border-bottom:none; }
.ce-emp-serv input{ accent-color:var(--acento-dark); width:17px; height:17px; flex:0 0 auto; }
.ce-emp-serv.marcado{ color:var(--acento-dark); font-weight:500; }
.ce-emp-serv.ya-tiene{ color:var(--text-mute); cursor:default; }
.ce-emp-serv-tag{ margin-left:auto; font-family:var(--font-mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--verde); background:var(--verde-soft); border-radius:4px; padding:3px 7px; }
.ce-serv-hidden{ display:none!important; }

/* Sugerir un servicio que no está en el catálogo (fin del paso 1) */
.ce-serv-sugerir{ margin-top:18px; padding:16px 18px; border:1px dashed var(--borde); border-radius:12px; background:var(--acento-soft); }
.ce-serv-sugerir-txt{ margin:0 0 10px; font-size:13.5px; color:var(--text-soft); }
.ce-serv-sugerir-row{ display:flex; gap:10px; align-items:stretch; flex-wrap:wrap; }
.ce-serv-sugerir-row .form-control{ flex:1 1 220px; min-width:0; }
.ce-serv-sugerir-row .ce-btn{ flex:0 0 auto; padding:11px 20px; }
@media (max-width:600px){ .ce-serv-sugerir-row .ce-btn{ width:100%; justify-content:center; } }

/* Wizard paso 2 — rango de personas (Slice 3) */
.ce-wizserv-p2-head{ margin-bottom:14px; }
.ce-wizserv-h3{ font-family:var(--font-display); font-style:italic; color:var(--acento-dark); font-size:22px; margin:0 0 4px; }
.ce-wizserv-sub{ font-family:var(--font-body); color:var(--text-soft); font-size:14px; margin:0; }
.ce-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.ce-chip{ display:inline-flex; align-items:center; gap:6px; background:var(--acento-soft); border:1px solid var(--borde); color:var(--acento-dark); font-size:13px; padding:5px 12px; border-radius:999px; }
.ce-chip::before{ content:"\2726"; color:var(--acento); font-size:11px; }
.ce-chips-vacio{ color:var(--text-mute); font-size:13.5px; font-style:italic; }
.ce-rango{ background:var(--bg-2); border:1px solid var(--borde-soft); border-radius:12px; padding:18px; }
.ce-rango-inputs{ display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.ce-rango-campo{ display:flex; flex-direction:column; }
.ce-rango-campo label{ font-size:12.5px; font-weight:600; color:var(--secundario); margin-bottom:4px; }
.ce-rango-campo .form-control{ width:120px; }
.ce-rango-sep{ color:var(--text-mute); padding-bottom:10px; }
.ce-rango-unidad{ color:var(--text-soft); padding-bottom:10px; font-size:14px; }
.ce-rango-barra{ height:8px; background:var(--secundario-soft); border-radius:999px; margin:16px 0 6px; overflow:hidden; }
.ce-rango-fill{ height:100%; width:0; background:linear-gradient(to right, var(--acento), var(--acento-claro)); border-radius:999px; transition:width .25s ease; }
.ce-wizserv-porque{ margin-top:14px; font-size:13.5px; color:var(--text-soft); }
.ce-wizserv-porque summary{ cursor:pointer; color:var(--acento-dark); font-weight:600; }
.ce-wizserv-porque p{ margin:8px 0 0; line-height:1.6; }

/* Wizard paso 3 — zonas (Slice 4) */
.ce-zonas-hab-btn{ margin-bottom:14px; }
.ce-zonas{ border:1px solid var(--borde-soft); border-radius:12px; max-height:320px; overflow-y:auto; }
.ce-zona-prov{ border-bottom:1px solid var(--borde-soft); }
.ce-zona-prov:last-child{ border-bottom:none; }
.ce-zona-prov-head{ display:flex; align-items:center; justify-content:space-between; padding:12px 16px; cursor:pointer; background:var(--bg-2); }
.ce-zona-prov-head:hover{ background:var(--acento-soft); }
.ce-zona-prov-name{ font-weight:500; font-size:13px; color:var(--text); }
.ce-zona-prov-count{ font-family:var(--font-mono); font-size:11px; color:var(--text-mute); background:var(--bg); border:1px solid var(--borde-soft); border-radius:999px; padding:2px 10px; }
.ce-zona-prov-count.tiene{ color:var(--acento-dark); background:var(--acento-soft); border-color:var(--borde); }
.ce-zona-ciudades{ display:none; padding:8px 16px 14px; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:4px 14px; }
.ce-zona-prov.abierta .ce-zona-ciudades{ display:grid; }
.ce-zona-ciud{ display:flex; align-items:center; gap:8px; padding:4px 0; cursor:pointer; font-size:12px; color:var(--text); }
.ce-zona-ciud input{ accent-color:var(--acento-dark); width:16px; height:16px; flex:0 0 auto; }
.ce-zona-ciud.marcado{ color:var(--acento-dark); font-weight:500; }
.ce-zonas-resumen{ margin-top:14px; font-size:14px; color:var(--text-soft); }
.ce-zonas-resumen b{ color:var(--acento-dark); }

/* ===========================================================================
   SECCIÓN: nav moderno (ce-nav) — wide, links de texto con subrayado
   dorado que se despliega en hover, redes a la derecha sin salto.
   =========================================================================== */
.ce-nav{ background:var(--bg-2); border-bottom:1px solid var(--borde-soft); padding:16px 36px; display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.ce-nav .navbar-brand{ margin:0; padding:0; }
.ce-nav .navbar-brand img{ height:44px; }
.ce-nav .navbar-collapse{ flex-basis:auto; }
.ce-nav-links{ display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.ce-nav-link{ position:relative; display:inline-block; font-family:var(--font-body)!important; font-size:15px; font-weight:500; color:var(--text-soft)!important; padding:6px 2px; margin:0 14px; text-decoration:none!important; background:transparent!important; border:none!important; text-transform:none!important; cursor:pointer; line-height:1.4; }
.ce-nav-link:hover{ color:var(--acento-dark)!important; }
.ce-nav-link::after{ content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px; border-radius:2px; background:linear-gradient(to right,var(--acento-dark),var(--acento),var(--acento-claro)); transform:scaleX(0); transform-origin:left; transition:transform .28s ease; }
.ce-nav-link:hover::after{ transform:scaleX(1); }
.ce-nav-link.dropdown-toggle::after{ /* conserva la flechita de Bootstrap, no la barra */ position:static; background:none; transform:none; border-top:.3em solid; border-right:.3em solid transparent; border-left:.3em solid transparent; width:0; height:0; display:inline-block; margin-left:.4em; vertical-align:middle; }
.ce-nav-ingresar{ display:inline-block; padding:9px 24px; border-radius:999px; background:var(--acento); color:var(--text)!important; font-weight:600; font-size:15px; text-decoration:none!important; font-family:var(--font-body)!important; margin:0 10px; transition:all .18s; }
.ce-nav-ingresar:hover{ background:var(--acento-claro); color:var(--text)!important; box-shadow:0 6px 16px -6px rgba(212,169,62,.6); }
.ce-nav-social{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; opacity:.7; transition:opacity .18s; vertical-align:middle; }
.ce-nav-social:hover{ opacity:1; }
.ce-nav-social img{ height:23px; display:block; margin:0!important; }
/* Badge "Disponible en Google Play" en el nav, al lado de las redes */
.ce-nav-app{ display:inline-flex; align-items:center; vertical-align:middle; margin-left:6px; opacity:.92; transition:opacity .18s; }
.ce-nav-app:hover{ opacity:1; }
.ce-nav-app img{ height:30px; display:block; margin:0!important; }

/* ===========================================================================
   SECCIÓN: animaciones finas (Home)
   =========================================================================== */
@keyframes ceFadeUp{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }

/* Entrada escalonada del hero al cargar */
.ce-hero .ce-eyebrow,
.ce-hero h1,
.ce-hero p.lead,
.ce-hero .mt-4{ opacity:0; animation:ceFadeUp .8s cubic-bezier(.2,.7,.2,1) forwards; }
.ce-hero .ce-eyebrow{ animation-delay:.05s; }
.ce-hero h1{ animation-delay:.18s; }
.ce-hero p.lead{ animation-delay:.34s; }
.ce-hero .mt-4{ animation-delay:.5s; }

/* Reveal al hacer scroll: arranca oculto, .is-visible (lo agrega el JS) lo muestra */
.ce-reveal{ opacity:0; transform:translateY(26px); transition:opacity .75s cubic-bezier(.2,.7,.2,1), transform .75s cubic-bezier(.2,.7,.2,1); will-change:opacity,transform; }
.ce-reveal.is-visible{ opacity:1; transform:none; }
.r-d1{ transition-delay:.08s; }
.r-d2{ transition-delay:.18s; }
.r-d3{ transition-delay:.28s; }
.r-d4{ transition-delay:.38s; }
.r-d5{ transition-delay:.48s; }
/* escalonado automático de las cards de una grilla */
.ce-grid > .ce-reveal:nth-child(2){ transition-delay:.12s; }
.ce-grid > .ce-reveal:nth-child(3){ transition-delay:.24s; }

/* Hover de cards más vivo + ícono que reacciona */
.ce-card{ transition:transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s, border-color .28s; }
.ce-card:hover{ box-shadow:var(--shadow-lg); transform:translateY(-5px); border-color:var(--acento); }
.ce-card-icon{ transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.ce-card:hover .ce-card-icon{ transform:scale(1.1) rotate(-4deg); }

/* Botones: brillo sutil al pasar (ya tienen lift) */
.ce-btn, .ce-nav-ingresar, .btn-dorado-top, .btn-dir, .ce-prov-btn{ position:relative; overflow:hidden; }
.ce-btn::after, .ce-nav-ingresar::after, .btn-dorado-top::after, .btn-dir::after, .ce-prov-btn::after{ content:""; position:absolute; top:0; left:-120%; width:60%; height:100%; background:linear-gradient(120deg,transparent,rgba(255,255,255,.45),transparent); transform:skewX(-18deg); transition:left .6s ease; pointer-events:none; }
.ce-btn:hover::after, .ce-nav-ingresar:hover::after, .btn-dorado-top:hover::after, .btn-dir:hover::after, .ce-prov-btn:hover::after{ left:140%; }

/* === Botones: tratamiento consistente en TODO el sitio === */
.btn, .ce-btn, .ce-nav-ingresar, .btn-dorado-top, .btn-dir, .ce-prov-btn, a.btn{ text-decoration:none!important; text-transform:none!important; letter-spacing:normal; }
.btn:hover, .ce-btn:hover, .ce-nav-ingresar:hover, .btn-dorado-top:hover, .btn-dir:hover, .ce-prov-btn:hover{ text-decoration:none!important; }
.btn, .btn-dorado-top, .btn-dir, .ce-btn{ border-radius:8px!important; }

/* ===========================================================================
   SECCIÓN: nav del PANEL empresa (ce-panel-nav) — top-bar de tabs que
   reemplaza al sidebar. Tabs con subrayado dorado en el activo; scroll
   horizontal en móvil (sin JS). Cada página marca su ítem con $panelActivo.
   =========================================================================== */
.ce-panel-nav{ margin:0 0 26px; border-bottom:1px solid var(--borde); }
.ce-panel-nav-inner{ display:flex; flex-wrap:wrap; gap:2px; }
.ce-pnav-item{ display:inline-flex; align-items:center; gap:7px; white-space:nowrap; padding:12px 16px; margin-bottom:-1px;
	font-family:var(--font-body); font-size:14px; font-weight:600; color:var(--text-soft);
	border-bottom:2px solid transparent; text-decoration:none!important; transition:color .15s, border-color .15s; }
.ce-pnav-item:hover{ color:var(--text); }
.ce-pnav-item i{ font-size:13px; color:var(--text-mute); transition:color .15s; }
.ce-pnav-item:hover i{ color:var(--text-soft); }
.ce-pnav-item.active{ color:var(--acento-dark); border-bottom-color:var(--acento); }
.ce-pnav-item.active i{ color:var(--acento-dark); }
.ce-pnav-item.disabled{ color:var(--text-mute); opacity:.55; cursor:not-allowed; }
.ce-pnav-item.disabled i{ color:var(--text-mute); }
.ce-pnav-badge{ display:inline-flex; min-width:18px; height:18px; padding:0 5px; align-items:center; justify-content:center;
	font-family:var(--font-body); font-size:11px; font-weight:700; line-height:1; border-radius:999px;
	background:var(--acento-soft); color:var(--acento-dark); border:1px solid var(--borde); }
.ce-pnav-item.active .ce-pnav-badge{ background:var(--acento); color:var(--text); border-color:var(--acento); }
/* Hamburguesa móvil (toggle CSS-only, sin JS) */
.ce-pnav-toggle{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.ce-pnav-burger{ display:none; }
@media (max-width:991px){
	.ce-panel-nav{ position:relative; border-bottom:1px solid var(--borde); }
	.ce-pnav-burger{ display:flex; align-items:center; gap:9px; padding:12px 14px; cursor:pointer; user-select:none;
		font-family:var(--font-body); font-size:14px; font-weight:600; color:var(--text); }
	.ce-pnav-burger > .fa-bars{ color:var(--acento-dark); }
	.ce-pnav-burger-caret{ margin-left:auto; font-size:12px; color:var(--text-mute); transition:transform .2s; }
	.ce-pnav-toggle:checked ~ .ce-pnav-burger .ce-pnav-burger-caret{ transform:rotate(180deg); }
	.ce-panel-nav-inner{ display:none; flex-direction:column; gap:0; overflow:visible; border-top:1px solid var(--borde-soft); }
	.ce-pnav-toggle:checked ~ .ce-panel-nav-inner{ display:flex; }
	.ce-pnav-item{ margin-bottom:0; padding:12px 16px; border-bottom:1px solid var(--borde-soft); border-left:3px solid transparent; }
	.ce-pnav-item:last-child{ border-bottom:none; }
	.ce-pnav-item.active{ border-bottom-color:var(--borde-soft); border-left-color:var(--acento); background:var(--acento-soft); }
}

/* Intro de sección del panel: eyebrow + H1 display con palabra en itálica + subtítulo */
.ce-panel-intro{ margin:4px 0 24px; }
/* divider con gradiente dorado bajo el header de cada pantalla (boceto: .m-divider) */
.ce-panel-intro::after{ content:""; display:block; height:1px; margin-top:16px; background:linear-gradient(to right,var(--acento) 0%,var(--borde) 30%,transparent 100%); }
.ce-panel-intro .ce-eyebrow{ margin-bottom:9px; }
.ce-panel-h1{ font-family:var(--font-display); font-size:32px; font-weight:600; letter-spacing:-.015em; line-height:1.08; color:var(--text); margin:0 0 6px; }
.ce-panel-h1 em{ font-style:italic; color:var(--acento-dark); }
.ce-panel-sub{ font-family:var(--font-body); font-size:15px; color:var(--text-soft); margin:0; max-width:62ch; }
@media (max-width:767px){ .ce-panel-h1{ font-size:26px; } }

/* ===========================================================================
   SECCIÓN: uploader / logo (identidad visual, Fase 1) — drag&drop + preview
   =========================================================================== */
.ce-up-zona{ border:2px dashed var(--acento); border-radius:12px; background:var(--acento-soft);
	padding:22px 16px; text-align:center; cursor:pointer; transition:background .18s, border-color .18s; outline:none; }
.ce-up-zona:hover, .ce-up-zona.drag{ background:#fbeecb; border-color:var(--acento-dark); }
.ce-up-zona[hidden]{ display:none; }
.ce-up-ico{ font-size:30px; color:var(--acento-dark); margin-bottom:8px; }
.ce-up-txt{ font-size:14px; color:var(--text); }
.ce-up-link{ color:var(--acento-dark); text-decoration:underline; }
.ce-up-hint{ font-size:12px; color:var(--text-mute); margin-top:5px; }
.ce-up-del{ display:inline-flex; align-items:center; gap:6px; margin-top:10px; font-size:13px;
	color:var(--rojo); text-decoration:none; cursor:pointer; background:none; border:none; }
.ce-up-del:hover{ text-decoration:underline; }
.ce-logo-actual{ text-align:center; }
.ce-logo-actual[hidden], .ce-logo-preview[hidden]{ display:none; }
.ce-logo-img{ max-height:120px; max-width:100%; object-fit:contain; background:#fff;
	border:1px solid var(--borde); border-radius:10px; padding:10px; display:inline-block; }
.ce-logo-preview{ text-align:center; }
.ce-logo-acciones{ display:flex; gap:10px; justify-content:center; margin-top:12px; }
#ce-logo .error-msj{ display:block; margin-top:8px; font-size:13px; text-align:center; }

/* Galería (Fase 2): grilla de fotos + preview de selección */
.ce-gal-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:12px; margin-top:10px; }
.ce-gal-item{ position:relative; border:1px solid var(--borde); border-radius:10px; overflow:hidden; background:#fff; cursor:grab; aspect-ratio:4/3; }
.ce-gal-item img{ width:100%; height:100%; object-fit:cover; display:block; }
.ce-gal-item.arrastrando{ opacity:.4; }
.ce-gal-badge{ position:absolute; top:6px; left:6px; background:var(--acento); color:var(--text); font-size:10.5px; font-weight:700; padding:2px 9px; border-radius:999px; }
.ce-gal-del{ position:absolute; top:5px; right:5px; width:24px; height:24px; border:none; border-radius:50%; background:rgba(26,18,8,.6); color:#fff; font-size:16px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.ce-gal-del:hover{ background:var(--rojo); }
.ce-gal-handle{ position:absolute; bottom:5px; right:7px; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.6); font-size:14px; pointer-events:none; }
.ce-gal-preview{ margin-top:12px; padding:14px; border:1px solid var(--borde-soft); border-radius:12px; background:var(--bg-2); }
.ce-gal-preview[hidden]{ display:none; }
.ce-gal-preview-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(90px,1fr)); gap:8px; }
.ce-gal-prev-item{ position:relative; aspect-ratio:1/1; border-radius:8px; overflow:hidden; border:1px solid var(--borde); background:#fff; }
.ce-gal-prev-item img{ width:100%; height:100%; object-fit:cover; display:block; }
#ce-galeria .error-msj{ display:block; margin-top:8px; font-size:13px; }

/* ===========================================================================
   SECCIÓN: dashboard del panel empresa (ce-stat) — tarjetas KPI (boceto 11)
   =========================================================================== */
.ce-dash-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:800px){ .ce-dash-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:420px){ .ce-dash-grid{ grid-template-columns:1fr; } }
.ce-stat{ background:var(--bg-2); border:1px solid var(--borde); border-radius:12px; padding:22px; }
.ce-stat.dark{ background:var(--text); color:var(--bg-2); border:none; }
.ce-stat-label{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--text-mute); margin-bottom:12px; }
.ce-stat.dark .ce-stat-label{ color:rgba(232,219,168,.6); }
.ce-stat-value{ font-family:var(--font-display); font-size:38px; color:var(--text); line-height:1; letter-spacing:-.02em; font-weight:500; font-style:italic; }
.ce-stat.dark .ce-stat-value{ color:var(--acento); }
.ce-stat-sub{ font-size:12px; color:var(--text-soft); margin-top:8px; }
.ce-dash-mes{ font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-mute); margin:26px 0 12px; display:flex; align-items:center; gap:8px; }
.ce-dash-mes i{ color:var(--acento-dark); }

/* ===========================================================================
   SECCIÓN: lista de presupuestos del panel empresa (ce-presup, boceto 11)
   =========================================================================== */
.ce-presup-lista{ display:flex; flex-direction:column; gap:12px; }
.ce-presup-item{ background:var(--bg-card); border:1px solid var(--borde); border-radius:12px; overflow:hidden; box-shadow:var(--shadow-sm); }
.ce-presup-head{ display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:14px; width:100%; padding:16px 20px; cursor:pointer; text-align:left; background:none; border:none; font-family:var(--font-body); }
.ce-presup-head:hover{ background:var(--bg-2); }
.ce-presup-num{ font-family:var(--font-mono); font-size:11px; color:var(--text-mute); padding:4px 10px; background:var(--bg); border-radius:5px; white-space:nowrap; }
.ce-presup-titulo{ font-family:var(--font-display); font-size:16px; color:var(--text); font-weight:600; font-style:italic; margin-bottom:2px; }
.ce-presup-info{ font-size:12px; color:var(--text-soft); display:flex; gap:12px; flex-wrap:wrap; }
.ce-presup-status{ font-size:11px; padding:4px 11px; border-radius:999px; font-weight:600; white-space:nowrap; }
.ce-presup-status.nuevo{ background:var(--acento-soft); color:var(--acento-dark); border:1px solid var(--acento); }
.ce-presup-status.leido{ background:var(--verde-soft); color:var(--verde); border:1px solid var(--verde); }
.ce-presup-chevron{ color:var(--text-mute); transition:transform .2s; }
.ce-presup-head[aria-expanded="true"] .ce-presup-chevron{ transform:rotate(180deg); }
.ce-presup-body{ padding:2px 20px 20px; border-top:1px solid var(--borde-soft); }
.ce-presup-dl{ display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:12px 24px; margin:16px 0 0; }
.ce-presup-campo{ font-size:14px; }
.ce-presup-campo dt{ font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-mute); margin-bottom:3px; }
.ce-presup-campo dd{ margin:0; color:var(--text); line-height:1.4; }
.ce-presup-campo.ancho{ grid-column:1/-1; }
@media (max-width:600px){ .ce-presup-head{ grid-template-columns:auto 1fr auto; } .ce-presup-chevron{ display:none; } }

/* Consultas del panel empresa: tarjetas (reusa .ce-presup-status para el badge) */
.ce-consulta-item{ background:var(--bg-card); border:1px solid var(--borde); border-radius:12px; box-shadow:var(--shadow-sm); padding:16px 20px; }
.ce-consulta-item.no-leido{ border-left:3px solid var(--acento); }
.ce-consulta-head{ display:grid; grid-template-columns:1fr auto auto; align-items:start; gap:12px; }
.ce-consulta-nombre{ font-family:var(--font-display); font-size:16px; font-weight:600; font-style:italic; color:var(--text); }
.ce-consulta-info{ font-size:12px; color:var(--text-soft); display:flex; gap:12px; flex-wrap:wrap; margin-top:4px; }
.ce-consulta-info a{ color:var(--acento-dark); }
.ce-consulta-del{ width:32px; height:32px; border:1px solid var(--borde); border-radius:8px; background:none; color:var(--rojo); cursor:pointer; display:flex; align-items:center; justify-content:center; }
.ce-consulta-del:hover{ background:var(--rojo-soft); border-color:var(--rojo); }
.ce-consulta-msj{ margin-top:14px; padding:13px 16px; background:var(--bg-2); border:1px solid var(--borde-soft); border-radius:10px; font-size:14px; color:var(--text); line-height:1.55; }
.ce-consulta-resp{ margin-top:12px; padding:13px 16px; background:var(--acento-soft); border:1px solid var(--borde); border-radius:10px; font-size:14px; line-height:1.5; }
.ce-consulta-resp-label{ font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--acento-dark); margin-bottom:6px; }

/* === Páginas de auth (login / recuperar contraseña / verificación) === */
.box-gris-ingreso{ background:var(--bg-2)!important; display:flex; flex-direction:column; justify-content:center; padding:48px 28px!important; }
.box-gris-ingreso > div{ max-width:470px; margin:0 auto; width:100%; flex:0 0 auto; }
.img-index{ object-fit:cover; width:100%!important; height:100%!important; min-height:100%; display:block; }
/* la columna de la imagen estira a la altura del panel del form */
.box-gris-ingreso{ min-height:560px; }
.link-ingreso{ color:var(--acento-dark)!important; font-weight:500; text-decoration:none; }
.link-ingreso:hover{ color:var(--acento)!important; text-decoration:none; }
/* selector Usuario/Empresa del login: limpio y centrado */
.box-gris-ingreso input[type="radio"]{ accent-color:var(--acento); transform:translateY(1px); margin-right:5px; }
/* contacto: form mas ancho (tiene mas campos) */
.pagina-contacto .box-gris-ingreso > div{ max-width:620px; }
.box-gris-ingreso hr{ border-top:1px solid var(--borde-soft); }

/* Imágenes de sección: zoom muy leve al hover */
.ce-section img.img-fluid{ transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.ce-section img.img-fluid:hover{ transform:scale(1.02); }

/* Respeta a quien prefiere menos movimiento */
@media (prefers-reduced-motion: reduce){
  .ce-hero .ce-eyebrow,.ce-hero h1,.ce-hero p.lead,.ce-hero .mt-4,.ce-reveal{ animation:none!important; opacity:1!important; transform:none!important; transition:none!important; }
  .ce-hero-slide{ animation:none!important; transform:none!important; transition:none!important; }
  .ce-btn::after, .ce-nav-ingresar::after{ display:none; }
}

/* ===========================================================================
   SECCIÓN: Directorio (listado de empresas con look ce-card)
   =========================================================================== */
.h1-directorio{ font-family:var(--font-display)!important; font-size:clamp(30px,4vw,42px); color:var(--text); font-style:italic; }
.h1-directorio em, .h1-directorio span{ color:var(--acento); }
.anchor-directorio, .anchor-empresa-item{ text-decoration:none!important; }
/* grilla de cards */
.contenedor-empresas-list{ display:grid!important; grid-template-columns:repeat(3,1fr); gap:24px; margin:0!important; }
@media(max-width:900px){ .contenedor-empresas-list{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .contenedor-empresas-list{ grid-template-columns:1fr; } }
.contenedor-empresas-item{ background:var(--bg-card); border:1px solid var(--borde); border-radius:16px; padding:18px; box-shadow:var(--shadow-sm); transition:transform .32s cubic-bezier(.2,.7,.2,1), box-shadow .32s, border-color .32s; max-width:none!important; width:auto!important; margin:0!important; position:relative; overflow:hidden; }
.contenedor-empresas-item::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(to right,var(--acento-dark),var(--acento),var(--acento-claro)); transform:scaleX(0); transform-origin:left; transition:transform .4s ease; }
.contenedor-empresas-item:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--acento); }
.contenedor-empresas-item:hover::before{ transform:scaleX(1); }
/* marco uniforme para logos de tamaños distintos */
.contenedor-empresas-img{ height:150px!important; line-height:normal!important; width:100%!important; display:flex; align-items:center; justify-content:center; background:var(--bg-2); border:1px solid var(--borde-soft); border-radius:12px; padding:18px; margin-bottom:18px!important; }
.contenedor-empresas-img img, .contenedor-empresas-img img.dir_logo{ width:auto!important; max-width:100%!important; max-height:100%!important; object-fit:contain; transition:transform .4s cubic-bezier(.2,.7,.2,1); }
.contenedor-empresas-item:hover .contenedor-empresas-img img{ transform:scale(1.07); }
/* nombre con aire respecto del logo */
.contenedor-empresas-nombre{ min-height:0!important; padding:0 6px!important; }
.contenedor-empresas-nombre .titulo-empresa{ font-family:var(--font-display)!important; font-style:italic; color:var(--acento-dark); font-size:21px; margin:0 0 10px!important; line-height:1.25; }
.empresa-vistas{ font-family:var(--font-mono); font-size:11px; color:var(--text-mute); letter-spacing:.04em; display:inline-flex; align-items:center; gap:5px; background:var(--acento-soft); border:1px solid var(--borde-soft); padding:4px 12px; border-radius:999px; }
/* stagger del reveal por columna (cascada) */
.contenedor-empresas-list > .ce-reveal:nth-child(3n+2){ transition-delay:.08s; }
.contenedor-empresas-list > .ce-reveal:nth-child(3n+3){ transition-delay:.16s; }
/* paginación */
.pagination .page-link{ color:var(--acento-dark); border-color:var(--borde); border-radius:8px!important; margin:0 3px; }
.pagination .page-item.active .page-link{ background:var(--acento); border-color:var(--acento); color:var(--text); }
.pagination .page-link:hover{ background:var(--acento-soft); border-color:var(--acento); }

/* === Directorio landing: botones de provincia uniformes === */
.ce-prov-btn{ display:flex; align-items:center; justify-content:center; text-align:center; min-height:68px; height:100%; padding:12px 14px; border-radius:10px; background:var(--acento); color:var(--text)!important; font-family:var(--font-body)!important; font-weight:600; font-size:15px; line-height:1.2; text-decoration:none!important; box-shadow:var(--shadow-sm); transition:all .2s; }
.ce-prov-btn:hover{ background:var(--acento-claro); color:var(--text)!important; transform:translateY(-2px); box-shadow:0 8px 20px -6px rgba(212,169,62,.5); }
.ce-prov-btn.isDisabled{ background:var(--bg-2); color:var(--text-mute)!important; border:1px solid var(--borde); cursor:not-allowed; pointer-events:none; box-shadow:none; font-weight:500; }

/* === Sidebar de filtros del directorio === */
.ce-filtros-titulo{ font-family:var(--font-display); font-style:italic; color:var(--acento-dark); font-size:22px; font-weight:600; margin:0 0 12px; }
.ce-filtros{ background:var(--bg-card); border:1px solid var(--borde)!important; border-radius:14px; box-shadow:var(--shadow-sm); padding:8px 16px; }
.ce-filtros .nav-cat{ display:block; font-family:var(--font-body)!important; font-size:14.5px; color:var(--text)!important; font-weight:500; padding:10px 2px; border-bottom:1px solid var(--borde-soft); text-decoration:none; transition:color .15s; }
.ce-filtros .nav-cat:hover{ color:var(--acento-dark)!important; }
.ce-filtros .nav-scat{ display:block; font-family:var(--font-body)!important; font-size:13.5px!important; color:var(--text-soft)!important; padding:6px 0 6px 20px; text-decoration:none; position:relative; }
.ce-filtros .nav-scat::before{ content:"\203A"; position:absolute; left:6px; color:var(--acento); font-weight:700; }
.ce-filtros .nav-scat:hover{ color:var(--acento-dark)!important; }
.ce-filtros .nav-scat-sel{ color:var(--acento-dark)!important; font-weight:600; }

/* === Ficha de empresa: toques premium === */
.pagina-ficha h3{ font-family:var(--font-display)!important; font-style:italic; color:var(--acento-dark); font-weight:600; font-size:22px; }
.pagina-ficha img[src*="logos_emp"]{ border-radius:12px; border:1px solid var(--borde-soft); }
/* cards de "otras empresas" dentro de la ficha */
.pagina-ficha .row a > div[style*="#cdcdcd"]{ border:1px solid var(--borde)!important; border-radius:14px!important; box-shadow:var(--shadow-sm); transition:transform .28s, box-shadow .28s, border-color .28s; }
.pagina-ficha .row a:hover > div[style*="#cdcdcd"]{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--acento)!important; }
.pagina-ficha .row a > div > div[style*="PT Sans"]{ font-family:var(--font-display)!important; font-style:italic; color:var(--acento-dark)!important; font-size:17px!important; }

/* ===========================================================================
   SECCION: efectos del panel (microinteracciones wow) - 2026-06-29
   count-up (JS) + reveal escalonado + skeleton shimmer + anillo de perfil.
   Accesible: las animaciones solo corren si el usuario NO pidio menos movimiento.
   =========================================================================== */
@keyframes ceReveal{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
@keyframes ceShimmer{ 100%{ transform:translateX(100%); } }
@keyframes ceRingFill{ from{ stroke-dashoffset:var(--circ); } }

@media (prefers-reduced-motion:no-preference){
	.ce-dash-grid > .ce-stat,
	.ce-emp-lista > .ce-emp-item,
	.ce-presup-lista > .ce-presup-item,
	.ce-presup-lista > .ce-consulta-item{ animation:ceReveal .45s cubic-bezier(.2,.7,.2,1) both; }
	.ce-dash-grid > .ce-stat:nth-child(2), .ce-emp-lista > .ce-emp-item:nth-child(2), .ce-presup-lista > .ce-presup-item:nth-child(2), .ce-presup-lista > .ce-consulta-item:nth-child(2){ animation-delay:.06s; }
	.ce-dash-grid > .ce-stat:nth-child(3), .ce-emp-lista > .ce-emp-item:nth-child(3), .ce-presup-lista > .ce-presup-item:nth-child(3), .ce-presup-lista > .ce-consulta-item:nth-child(3){ animation-delay:.12s; }
	.ce-dash-grid > .ce-stat:nth-child(4), .ce-emp-lista > .ce-emp-item:nth-child(4), .ce-presup-lista > .ce-presup-item:nth-child(4), .ce-presup-lista > .ce-consulta-item:nth-child(4){ animation-delay:.18s; }
	.ce-emp-lista > .ce-emp-item:nth-child(5), .ce-presup-lista > .ce-presup-item:nth-child(5), .ce-presup-lista > .ce-consulta-item:nth-child(5){ animation-delay:.24s; }
	.ce-emp-lista > .ce-emp-item:nth-child(6), .ce-presup-lista > .ce-presup-item:nth-child(6), .ce-presup-lista > .ce-consulta-item:nth-child(6){ animation-delay:.30s; }
}

/* Skeleton loaders (placeholder shimmer mientras carga el AJAX de listas) */
.ce-skel-wrap{ display:flex; flex-direction:column; gap:10px; }
.ce-skel-item{ height:74px; border-radius:12px; border:1px solid var(--borde-soft); background:var(--bg-2); position:relative; overflow:hidden; }
.ce-skel-item::after{ content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent); }
@media (prefers-reduced-motion:no-preference){ .ce-skel-item::after{ animation:ceShimmer 1.2s infinite; } }

/* Anillo "perfil completo X%" (SVG, paso 4) */
.ce-ring-card{ display:flex; align-items:center; gap:16px; background:var(--bg-card); border:1px solid var(--borde); border-radius:14px; box-shadow:var(--shadow-sm); padding:14px 18px; margin-bottom:18px; }
.ce-ring{ position:relative; width:64px; height:64px; flex:0 0 64px; }
.ce-ring svg{ width:64px; height:64px; transform:rotate(-90deg); }
.ce-ring-track{ fill:none; stroke:var(--borde); stroke-width:7; }
.ce-ring-prog{ fill:none; stroke:var(--acento); stroke-width:7; stroke-linecap:round; stroke-dasharray:var(--circ); stroke-dashoffset:calc(var(--circ) * (1 - var(--pct)/100)); }
@media (prefers-reduced-motion:no-preference){ .ce-ring-prog{ animation:ceRingFill 1s ease both; } }
.ce-ring-pct{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-style:italic; font-weight:600; font-size:16px; color:var(--text); }
.ce-ring-info h4{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:16px; margin:0 0 2px; color:var(--text); }
.ce-ring-info p{ margin:0; font-size:13px; color:var(--text-soft); }
.ce-ring-info p b{ color:var(--acento-dark); }

/* Toasts (notificaciones efimeras) — ceToast() en js/componentes/toast.js */
.ce-toast-cont{ position:fixed; right:18px; bottom:18px; z-index:100020; display:flex; flex-direction:column; gap:10px; align-items:flex-end; pointer-events:none; }
.ce-toast{ pointer-events:auto; display:flex; align-items:center; gap:11px; min-width:230px; max-width:340px; padding:13px 16px; border-radius:11px; background:var(--bg-card); border:1px solid var(--borde); box-shadow:var(--shadow-md); font-family:var(--font-body); font-size:14px; color:var(--text); cursor:pointer; opacity:0; transform:translateY(12px); transition:opacity .28s ease, transform .28s cubic-bezier(.2,.7,.2,1); }
.ce-toast.visible{ opacity:1; transform:none; }
.ce-toast.saliendo{ opacity:0; transform:translateY(8px); }
.ce-toast-ico{ flex:0 0 24px; width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; line-height:1; }
.ce-toast-msj{ flex:1 1 auto; line-height:1.4; }
.ce-toast-success{ border-left:3px solid var(--acento); }
.ce-toast-success .ce-toast-ico{ background:var(--acento); color:#1a1208; }
.ce-toast-error{ border-left:3px solid var(--rojo); }
.ce-toast-error .ce-toast-ico{ background:var(--rojo); color:#fff; }
@media (prefers-reduced-motion:reduce){ .ce-toast{ transition:none; } }
@media (max-width:600px){ .ce-toast-cont{ left:12px; right:12px; bottom:12px; align-items:stretch; } .ce-toast{ max-width:none; } }

/* Sticky footer (2026-06-29): el body ocupa toda la altura de la ventana y el contenido
   empuja el footer al fondo. Asi el footer no queda flotando arriba con un hueco debajo
   cuando una pantalla tiene poco contenido. Los elementos fixed (cookies/modales/toasts)
   estan fuera de flujo, no afectan este layout. */
body{ display:flex; flex-direction:column; min-height:100vh; }
body > main[role="main"]{ flex:1 0 auto; }
.footerex{ flex-shrink:0; }

/* --- Banner de cookies (2026-07-05): tarjeta on-brand abajo a la izquierda, slide-up.
   Reemplaza la barra gris full-width vieja de extra.css (tema.css carga despues -> gana el cascade). --- */
#div-cookies{
   position:fixed; left:20px; bottom:20px; z-index:1999;
   display:none; align-items:center; gap:14px;
   max-width:440px; width:calc(100% - 40px);
   background:var(--secundario,#4d3818); color:#f3ead4;
   border:1px solid rgba(255,255,255,.08); border-radius:14px;
   padding:16px 18px; box-shadow:0 14px 36px -10px rgba(0,0,0,.5);
   font-family:var(--font-body,sans-serif); font-size:13.5px; line-height:1.5;
   transform:translateY(24px); opacity:0;
   transition:transform .45s cubic-bezier(.16,1,.3,1), opacity .45s ease;
}
#div-cookies.ce-cookies-visible{ transform:translateY(0); opacity:1; }
.ce-cookies-ico{ flex:0 0 auto; font-size:26px; line-height:1; }
.ce-cookies-txt{ flex:1; }
.ce-cookies-link{ color:var(--acento,#d4a93e); font-weight:600; text-decoration:none; white-space:nowrap; }
.ce-cookies-link:hover{ text-decoration:underline; }
.ce-cookies-btn{
   flex:0 0 auto; cursor:pointer; border:0; border-radius:8px;
   background:var(--acento,#d4a93e); color:#1a1208;
   padding:10px 22px; font-family:var(--font-body,sans-serif); font-weight:700; font-size:13.5px;
   transition:filter .2s ease, transform .2s ease;
}
.ce-cookies-btn:hover{ filter:brightness(1.06); transform:translateY(-1px); }
@media (max-width:600px){
   #div-cookies{ left:12px; right:12px; bottom:12px; width:auto; max-width:none; flex-wrap:wrap; }
   .ce-cookies-btn{ width:100%; }
}
@media (prefers-reduced-motion:reduce){
   #div-cookies{ transition:none; transform:none; }
}

/* --- Páginas legales / secciones (términos, privacidad, etc.): restyle del contenido (2026-07-05).
   El texto vive en tbl_secciones y NO se toca. El contenido viene de un editor viejo con estilos INLINE
   (font en pt, Arial, gris #737373, background white). Se usa !important puntual porque es la ÚNICA forma
   de normalizar esa presentación al tema moderno sin editar el texto guardado. --- */
.ce-legal-wrap{ max-width:1080px; margin:0 auto; }
.ce-legal{
   background:var(--bg-card,#fff); border:1px solid var(--borde-soft,#f0e8c8);
   border-radius:14px; padding:44px 52px; box-shadow:0 10px 30px -14px rgba(77,56,24,.18);
}
.ce-legal, .ce-legal *{ font-family:var(--font-body,sans-serif) !important; background:transparent !important; }
.ce-legal p, .ce-legal span, .ce-legal li, .ce-legal td, .ce-legal div{
   color:var(--text,#1a1208) !important; font-size:15.5px !important; line-height:1.8 !important;
}
.ce-legal p{ margin:0 0 16px !important; }
/* El contenido viejo separa "puntos" con <br> sueltos (0 <p> reales) -> quedaba amontonado.
   Se convierte cada <br> en un salto con aire, sin tocar el texto guardado. */
.ce-legal br{ display:block !important; content:"" !important; margin-bottom:12px !important; }
/* Jerarquía de secciones numeradas (limpieza estructural de Términos, 2026-07-05):
   h3 = título de sección; .ce-legal-sec = sección cuyo título trae el cuerpo pegado; .ce-legal-sub = sub-punto. */
.ce-legal .ce-legal-sub{ margin-left:24px !important; }
.ce-legal strong, .ce-legal strong span, .ce-legal b, .ce-legal b span{
   font-weight:700 !important; color:var(--secundario,#4d3818) !important;
}
.ce-legal a, .ce-legal a span{ color:var(--acento-dark,#8f6e1f) !important; text-decoration:underline; }
.ce-legal a:hover, .ce-legal a:hover span{ color:var(--acento,#d4a93e) !important; }
/* Titulos = MISMO estilo que los de Privacidad: Inter en negrita marron (NO la serif estilizada del tema). */
.ce-legal h1,.ce-legal h2,.ce-legal h3,.ce-legal h4,.ce-legal h5,.ce-legal h6{
   font-family:var(--font-body,sans-serif) !important; color:var(--secundario,#4d3818) !important;
   font-weight:700 !important; font-size:15.5px !important;
   margin:26px 0 12px !important; line-height:1.35 !important;
}
/* Los hijos del encabezado (strong/span/a) heredan la misma fuente/peso -> sin mezcla de fuentes. */
.ce-legal h1 *,.ce-legal h2 *,.ce-legal h3 *,.ce-legal h4 *,.ce-legal h5 *,.ce-legal h6 *{
   font-family:var(--font-body,sans-serif) !important; font-weight:700 !important;
}
.ce-legal ul,.ce-legal ol{ margin:0 0 15px 22px !important; padding:0 !important; }
.ce-legal li{ margin-bottom:6px !important; }
.ce-legal img{ max-width:100% !important; height:auto !important; }
.ce-legal table{ max-width:100% !important; border-collapse:collapse !important; }
@media (max-width:600px){ .ce-legal{ padding:24px 20px; } }

/* --- Wizard Solicitar Presupuesto (2026-07-06) ---
   El stepper (.ce-stepper/.ce-step) y los chips (.ce-chips/.ce-chip) ya están definidos
   arriba y se reutilizan tal cual. Sólo se agregan las clases que faltan para este wizard.
   ----------------------------------------------------------------- */

/* Chip interactivo: estado seleccionado (clase 'active' asignada por wizard-presupuesto.js) */
.ce-chip:hover{ filter:brightness(1.04); }
.ce-chip.active{ background:var(--acento); border-color:var(--acento-dark); color:var(--secundario); font-weight:600; }
.ce-chip.active::before{ color:var(--secundario); }

/* Layout 2 columnas: pasos (izquierda flexible) + resumen (340px derecha) */
.ce-wiz-layout{ display:grid; grid-template-columns:1fr 340px; gap:28px; align-items:start; margin-top:20px; }
/* Columna de pasos en cuadro blanco (igual que el sidebar y el resto de los formularios del sitio) */
.ce-wiz-pasos{ min-width:0; background:var(--bg-card); border:1px solid var(--borde); border-radius:14px; padding:6px 26px 26px; }
@media (max-width:900px){
  .ce-wiz-layout{ grid-template-columns:1fr; }
  .ce-wiz-pasos{ padding:4px 16px 18px; }
}

/* Contenedor de cada paso */
.ce-wiz-paso{ padding:24px 0; }

/* Pie de cada paso (botones Volver / Continuar) */
.wiz-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-top:20px; border-top:1px solid var(--borde-soft); }

/* Sidebar "Tu pedido" — sticky en desktop */
.ce-wiz-resumen{ background:var(--bg-card); border:1px solid var(--borde); border-radius:14px; padding:20px 22px; position:sticky; top:90px; /* 90px ≈ altura del nav superior */ }
.ce-wiz-resumen h3{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:18px; color:var(--text); margin:0 0 4px; }
.ce-wiz-resumen-sub{ font-size:11.5px; color:var(--text-mute); letter-spacing:.04em; text-transform:uppercase; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid var(--borde-soft); }
/* Filas del resumen (p.ce-res-item generados por JS: crearP / agregarResRow) */
.ce-res-item{ font-size:13.5px; color:var(--text-soft); margin:0 0 6px; line-height:1.45; }
.ce-res-item strong{ color:var(--text); font-weight:600; }

/* Bloque "saltear" del paso 4 */
.ce-wiz-saltear{ background:var(--bg); border:1px solid var(--borde-soft); border-radius:10px; padding:14px 18px; }
.ce-wiz-saltear p{ margin:0 0 10px; }

/* --- Categorías de servicios (paso 3) --- */
.ce-cat-card{ background:var(--bg-card); border:1px solid var(--borde); border-radius:12px; margin-bottom:12px; overflow:hidden; }
.ce-cat-head{ display:flex; align-items:center; gap:12px; padding:14px 16px; }
/* Indicador toggle-todo: sin clase extra = vacío | .parcial = algunos | .completa = todos */
.ce-cat-check{ width:22px; height:22px; border-radius:6px; background:#fff; border:2px solid var(--borde); flex:0 0 auto; cursor:pointer; transition:background .15s, border-color .15s; position:relative; }
.ce-cat-check.parcial{ background:var(--acento-soft); border-color:var(--acento); }
.ce-cat-check.parcial::after{ content:"–"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-weight:700; color:var(--acento-dark); font-size:14px; }
.ce-cat-check.completa{ background:var(--acento); border-color:var(--acento-dark); }
.ce-cat-check.completa::after{ content:"✓"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-weight:700; color:var(--secundario); font-size:13px; }
.ce-cat-icon-lg{ font-size:24px; line-height:1; flex:0 0 auto; }
.ce-cat-info{ flex:1 1 auto; min-width:0; }
.ce-cat-info h3{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:17px; color:var(--text); margin:0 0 2px; }
.ce-cat-info p{ font-size:12px; color:var(--text-mute); margin:0; }
.ce-cat-servicios{ display:flex; flex-wrap:wrap; gap:4px 8px; padding:4px 16px 14px; border-top:1px solid var(--borde-soft); }
/* Fila de servicio individual (label + checkbox) */
.ce-serv-mini{ display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--text-soft); cursor:pointer; padding:4px 2px; }
.ce-serv-mini input[type="checkbox"]{ cursor:pointer; accent-color:var(--acento-dark); }
.ce-serv-mini:hover{ color:var(--text); }

/* --- Chips de salones: label wrappea un checkbox (paso 4) --- */
.ce-chip-check{ display:inline-flex; align-items:center; gap:6px; background:var(--acento-soft); border:1px solid var(--borde); color:var(--acento-dark); font-size:13px; padding:5px 12px; border-radius:999px; cursor:pointer; transition:background .15s, border-color .15s; user-select:none; }
/* Checkbox oculto visualmente; el label actúa de toggle — sigue accesible vía DOM */
.ce-chip-check input[type="checkbox"]{ position:absolute; opacity:0; width:1px; height:1px; pointer-events:none; }
.ce-chip-check::before{ content:"\2726"; color:var(--acento); font-size:11px; }
/* :has() con soporte amplio desde 2023 (Chrome 105 / Safari 15.4 / Firefox 121) */
.ce-chip-check:has(input:checked){ background:var(--acento); border-color:var(--acento-dark); color:var(--secundario); font-weight:600; }
.ce-chip-check:has(input:checked)::before{ color:var(--secundario); }
.ce-chip-check:hover{ filter:brightness(1.04); }

/* --- Panel usuario: chips en dd (presupuestos solicitados, 2026-07-06) --- */
.ce-presup-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0; }

/* --- Pantalla de finalizado del wizard de presupuesto (2026-07-06) --- */
.ce-pres-exito{ max-width:560px; margin:12px auto; text-align:center; background:var(--bg-card); border:1px solid var(--borde); border-radius:16px; padding:44px 32px; box-shadow:0 10px 30px rgba(77,56,24,.08); }
.ce-pres-exito-icon{ width:72px; height:72px; margin:0 auto 20px; border-radius:50%; background:var(--acento); color:#1a1208; display:flex; align-items:center; justify-content:center; font-size:30px; box-shadow:0 6px 18px rgba(212,169,62,.40); }
.ce-pres-exito-titulo{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:26px; color:var(--secundario); margin:0 0 12px; }
.ce-pres-exito-msg{ font-size:15px; color:var(--text-soft); line-height:1.6; margin:0 auto 26px; max-width:440px; }
.ce-pres-exito-acciones{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
/* Botón secundario "ghost" (borde, sin relleno) — reutilizable */
.ce-btn-ghost{ background:transparent; color:var(--secundario); border:1px solid var(--secundario); }
.ce-btn-ghost:hover{ background:var(--secundario); color:#fff; }

/* --- Conteo/filtro por zona en el wizard de presupuesto (2026-07-07) --- */
/* Ítem sin proveedores en la zona: grisado y no seleccionable */
.ce-serv-mini.ce-item-sin, .ce-chip-check.ce-item-sin{ opacity:.5; cursor:not-allowed; }
.ce-serv-mini.ce-item-sin input, .ce-chip-check.ce-item-sin input{ cursor:not-allowed; }
.ce-cat-card.ce-cat-sin{ opacity:.7; }
/* Nota "sin proveedores en tu zona" */
.ce-serv-nota{ display:block; font-size:11px; color:var(--text-mute); font-style:italic; margin-top:2px; }
/* Conteo de empresas por categoría en el header */
.ce-cat-empresas{ font-size:12px; color:var(--acento-dark); font-weight:600; margin-left:6px; }
/* "N espacios" en los chips de salón */
.ce-salon-espacios{ font-size:11px; color:var(--text-mute); margin-left:6px; }
/* Total en vivo en el sidebar "Tu pedido" */
.ce-res-empresas{ margin-top:14px; padding-top:12px; border-top:1px dashed var(--borde-soft); font-size:13.5px; font-weight:600; color:var(--secundario); }
.ce-res-empresas:empty{ display:none; }
/* Aviso de disponibilidad por zona (paso 3): hint suave o aviso fuerte (0 proveedores) */
.ce-pres-aviso{ margin:14px 0 4px; padding:12px 16px; border-radius:10px; font-family:var(--font-body); font-size:13.5px; line-height:1.55; }
.ce-pres-aviso:not(.fuerte){ background:var(--bg-2); border:1px solid var(--borde-soft); color:var(--text-mute); }
.ce-pres-aviso.fuerte{ background:var(--acento-soft); border:1px solid var(--acento); color:var(--secundario); display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; }
.ce-pres-aviso-txt{ flex:1 1 auto; }
.ce-pres-aviso-link{ flex:0 0 auto; background:transparent; border:none; padding:0; cursor:pointer; color:var(--acento-dark); font-family:var(--font-body); font-size:13.5px; font-weight:600; text-decoration:underline; }
.ce-pres-aviso-link:hover{ color:var(--secundario); }

/* --- Accesos rápidos del dashboard de usuario (2026-07-07) --- */
.ce-quick-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:22px; }
@media (max-width:800px){ .ce-quick-grid{ grid-template-columns:1fr; } }
.ce-quick{ display:block; background:var(--bg-card); border:1px solid var(--borde); border-radius:14px; padding:22px; text-decoration:none; color:var(--text); transition:transform .15s, box-shadow .15s, border-color .15s; }
.ce-quick:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:var(--acento); color:var(--text); text-decoration:none; }
.ce-quick-icon{ width:46px; height:46px; border-radius:11px; background:var(--acento-soft); color:var(--acento-dark); display:flex; align-items:center; justify-content:center; font-size:19px; margin-bottom:14px; }
.ce-quick.destacado{ border-color:var(--acento); }
.ce-quick.destacado .ce-quick-icon{ background:var(--acento); color:#1a1208; }
.ce-quick h4{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:17px; color:var(--secundario); margin:0 0 5px; }
.ce-quick p{ font-size:13px; color:var(--text-soft); margin:0; line-height:1.5; }
