:root{
  --cp-primary:#1392EC;
  --cp-bg:#F6F7F8;
  --cp-text:#0F172A;
  --cp-muted:#64748B;
  --cp-border:#E2E8F0;
  --cp-radius-lg:16px;
  --cp-radius-xl:24px;
  --cp-shadow: 0 18px 45px rgba(15,23,42,.10);
  --cp-shadow-soft: 0 10px 30px rgba(15,23,42,.08);
}

body{ background: var(--cp-bg); color: var(--cp-text); }

[type=button], [type=submit], button {
    border-color: var(--cp-primary, #1392EC);
    color: var(--cp-primary, #1392EC);
}

a{
    color: var(--cp-primary, #1392EC);
}

[type=button]:focus, [type=button]:hover, [type=submit]:focus, [type=submit]:hover, button:focus, button:hover {
    background-color: var(--cp-primary, #1392EC);
}
.backdrop-blur-md{
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

/* Botones */
.cp-btn-primary .elementor-button{
  background: var(--cp-primary);
  border-radius: 14px;
  font-weight: 700;
  padding: 14px 22px;
  box-shadow: 0 12px 25px rgba(19,146,236,.25);
}
.cp-btn-primary .elementor-button:hover{ filter: brightness(.95); }

.cp-btn-secondary .elementor-button{
  background:#fff;
  border:1px solid var(--cp-border);
  border-radius: 14px;
  font-weight: 700;
  padding: 14px 22px;
}

/* Cards */
.cp-card{
  background:#fff;
  border-radius: var(--cp-radius-xl);
  box-shadow: var(--cp-shadow-soft);
  border:1px solid rgba(226,232,240,.65);
}
.cp-card--hover:hover{
  transform: translateY(-4px);
  transition: .2s ease;
  border-color: rgba(19,146,236,.35);
}

/* Chips (badge) */
.cp-badge{
  display:inline-flex; align-items:center; gap:8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(19,146,236,.10);
  color: var(--cp-primary);
  font-weight: 700;
  font-size: 13px;
}

/* Form inputs */
.cp-form input, .cp-form textarea{
  background:#F1F5F9;
  border-radius: 14px !important;
  border: 0 !important;
}
.cp-form input:focus, .cp-form textarea:focus{
  outline: none;
  box-shadow: 0 0 0 2px rgba(19,146,236,.35);
}

/* Header sticky blur */
.cp-header{
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background: rgba(255,255,255,.80);
  border-bottom: 1px solid rgba(226,232,240,.9);
}


.blueIcon .elementor-button-icon svg {
    fill: var(--cp-primary) !important;
}

/* Contenedor wizard */
#af-presupuesto, #ac-presupuesto {}

/* Asegura que el wrapper HTML se vea bien */
#af-presupuesto .af-wizard,
#acf-presupuesto .af-wizard,
.elementor-widget-form .af-wizard{
  max-width: 980px;
  margin: 0 auto;
}

.af-top{
  margin: 10px 0 18px;
}
.af-step-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:14px;
  color:#6b7280;
}
.af-step-kicker{
  color:#0b5bd3;
  letter-spacing:.2px;
}
.af-progress{
  height:6px;
  background:#e5e7eb;
  border-radius:999px;
  overflow:hidden;
  margin-top:10px;
}
.af-progress-bar{
  height:100%;
  background:#0b5bd3;
  width:20%;
}

.af-step{ display:none; }
.af-step.is-active{ display:block; }

.af-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:14px;
  padding:28px;
  box-shadow:0 10px 20px rgba(0,0,0,.08);
}
.af-card h2{
  margin:0 0 6px;
  font-size:28px;
}
.af-sub{
  margin:0 0 18px;
  color:#6b7280;
}

.af-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin-top:18px;
}
@media (max-width: 900px){
  .af-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .af-grid{ grid-template-columns:1fr; }
}

.af-service{
  border:1px solid #e5e7eb;
  border-radius:14px;
  padding:18px 16px;
  background:#fff;
  text-align:center;
  cursor:pointer;
  transition:.15s ease;
}
.af-service:hover{
  transform:translateY(-1px);
  border-color: #1392ec80;
  background: none;
}
.af-service .af-ico{
  display:inline-flex;
  width: 34px;
  height: 64px;
  align-items:center;
  justify-content:center;
  font-size: 32px;
  margin-bottom:10px;
}
.af-service .af-ico svg{
	fill: #94a3b8
}
.af-service .af-main{
  display:block;
  font-weight:700;
  margin-bottom:4px;
  color: var( --e-global-color-text );
}
.af-service .af-mini{
  display:block;
  font-size:13px;
  color: var( --e-global-color-56ca24f );
}

/* Estado seleccionado */
.af-service.is-selected{
  border: 2px solid #1392ec;
  background: #f8fafc;
}

/* Navegación */
.af-nav{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:18px;
}
.af-btn{
  border:1px solid #e5e7eb;
  background:#fff;
  border-radius:10px;
  padding:12px 16px;
  cursor:pointer;
}
.af-btn:disabled{
  opacity:.5;
  cursor:not-allowed;
}
.af-btn.af-next{
  margin-left:auto;
  background:#0b5bd3;
  border-color:#0b5bd3;
  color:#fff;
}

/* Bloques por servicio (Paso 2) */
.af-service-block{ display:none; margin-top:14px; }
.af-service-block h3{ margin:10px 0 6px; font-size:18px; }

/* Resumen */
.af-summary{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:14px 14px;
  background:#f9fafb;
  margin:12px 0 16px;
}
.af-summary .row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:6px 0;
  border-bottom:1px dashed #e5e7eb;
}
.af-summary .row:last-child{ border-bottom:none; }
.af-summary .k{ color:#6b7280; }
.af-summary .v{ font-weight:600; }

.af-summary{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:14px;
  background:#f9fafb;
}
.af-summary .row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:6px 0;
  border-bottom:1px dashed #e5e7eb;
}
.af-summary .row:last-child{ border-bottom:none; }
.af-summary .k{ color:#6b7280; }
.af-summary .v{ font-weight:600; }

#ac-presupuesto .elementor-form-fields-wrapper.elementor-labels-above {
	min-width: 100%;
	width: 90vw;
	max-width: 740px;
    padding: 2.5rem;
    border: 1px solid #e2e8f0;
    background: #FFF;
    border-radius: 0.75rem;
    box-shadow: 0 0 #0000, 0 0 #0000, 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
}

#ac-presupuesto .label-header {
    text-align: center;
}

#ac-presupuesto .label-header p {
    margin: 0;
    font-size: 15px;
    line-height: 2rem;
}

#ac-presupuesto .label-header h3 {
    margin: 0;
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 700;
}

#ac-presupuesto .e-form__buttons.elementor-column {
    margin-top: 50px;
    padding-top: 30px;
    border-top: 1px solid #f1f5f9;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

#ac-presupuesto .e-form__buttons.elementor-column > div {max-width: 270px;}

#ac-presupuesto .elementor-field-type-next {
    margin: auto 0 auto auto;
}

#ac-presupuesto .elementor-field-type-next button {
    border-radius: 7px;
    font-weight: 700 !important;
}


#ac-presupuesto .e-form__indicators__indicator__label {
    display: none;
}

#ac-presupuesto .e-form__indicators__indicator--state-active {
}

#ac-presupuesto .e-form__indicators__indicator__number{
    text-indent: -99999px;
    background: #e2e8f0 !important;
    border-color: #e2e8f0 !important;
}

#ac-presupuesto .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number {
    background: var(--cp-primary, #1392EC) !important;
    border-color: var(--cp-primary, #1392EC) !important;
}




#ac-presupuesto .e-form__buttons__wrapper__button-previous {
    background: transparent !important;
    color: var( --e-global-color-56ca24f ) !important;
    text-align: left;
    width: auto !important;
    display: flex;
    gap: 10px;
    align-content: center;
}

#ac-presupuesto .e-form__buttons__wrapper__button-previous:before {
    content: '<';
}

#ac-presupuesto  .af-service:hover .af-ico {
    color: var(--cp-primary, #1392EC);
}
#ac-presupuesto .af-service:hover .af-ico svg,
#ac-presupuesto .af-service.is-selected .af-ico svg{
	fill: var(--cp-primary, #1392EC);
}


.elementor-message.elementor-message-success {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 40px;
  padding: 16px 18px;
  background: #ecfdf5;               /* verde suave */
  color: #065f46;                    /* texto verde oscuro */
  border: 1px solid #a7f3d0;
  border-left: 5px solid #10b981;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 500;
  box-shadow: 0 10px 20px rgba(16, 185, 129, 0.12);
  animation: elementorMessageIn 0.3s ease-out;
}

.elementor-message.elementor-message-danger {
  display: flex;
  align-items: center;
  gap: 12px;

  margin-top: 40px;
  padding: 16px 18px;

  background: #fef2f2;
  color: #991b1b;

  border: 1px solid #fecaca;
  border-left: 5px solid #ef4444;

  border-radius: 12px;
  font-size: 15px;
  font-weight: 500;

  box-shadow: 0 10px 20px rgba(239, 68, 68, 0.12);

  animation: elementorMessageIn 0.3s ease-out;
}


.elementor-message.elementor-message-warning {
  display: flex;
  align-items: center;
  gap: 12px;

  margin-top: 40px;
  padding: 16px 18px;

  background: #fffbeb;
  color: #92400e;

  border: 1px solid #fde68a;
  border-left: 5px solid #f59e0b;

  border-radius: 12px;
  font-size: 15px;
  font-weight: 500;

  box-shadow: 0 10px 20px rgba(245, 158, 11, 0.12);

  animation: elementorMessageIn 0.3s ease-out;
}

.elementor-message.elementor-message-info {
  display: flex;
  align-items: center;
  gap: 12px;

  margin-top: 40px;
  padding: 16px 18px;

  background: #eff6ff;
  color: #1e40af;

  border: 1px solid #bfdbfe;
  border-left: 5px solid #3b82f6;

  border-radius: 12px;
  font-size: 15px;
  font-weight: 500;
}

.elementor-message svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

@keyframes elementorMessageIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    right: -20px;
    background: #FFF;
    width: 100vw;
    position: absolute;
    top: 39px;
    border-bottom: 1px solid #e2e8f0;
}
