/*

Theme Name: Arnau Child

Theme URI: https://www.arnaufont.es/

Description: Child

Author: Arnau Font Team

Author URI: https://www.arnaufont.es/

Template: hello-elementor

Version: 1.0

Text Domain: arnau-child-theme

License: GNU General Public License v3 or later.

License URI: https://www.gnu.org/licenses/gpl-3.0.html

*/

/* =====================================================
   VARIABLES GLOBALES
   ===================================================== */
:root {
  /* Stage / Eco table */
  --accent:    #BE0505;
  --bg:        #ffffff;
  --text:      #1b1b1b;
  --muted:     #6b7280;
  --border:    #e5e7eb;
  --row:       #fafafa;
  --highlight: #fdf0f0;
  --radius:    14px;
  --shadow:    0 8px 24px rgba(0,0,0,.06);

  /* Reprog Hub */
  --rp-accent:        #BE0505;
  --rp-accent-dark:   #BE0505;
  --rp-accent-bg:     rgba(190,5,5,.08);
  --rp-accent-border: rgba(190,5,5,.22);
  --rp-white:   #ffffff;
  --rp-surface: #f9f8f5;
  --rp-text:    #0f172a;
  --rp-muted:   #64748b;
  --rp-border:  #e2e8f0;
  --rp-r:       16px;
  --rp-shadow:       0 1px 3px rgba(15,23,42,.07), 0 1px 2px rgba(15,23,42,.04);
  --rp-shadow-hover: 0 6px 20px rgba(15,23,42,.1),  0 2px 6px rgba(15,23,42,.05);
}


/* =====================================================
   STAGE TABLE — Ficha de reprogramación
   ===================================================== */
.stage-card {
  background: #ffffff;
  color: #1b1b1b;
  border: 1px solid #e5e7eb;
  border-radius: 0px 14px 15px 14px!important;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
  overflow: hidden;
  max-width: 100%;
}

.stage-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 16px;
  color: #1b1b1b;
}

.stage-table caption {
  text-align: left;
  font-size: 18px;
  font-weight: 600;
  padding: 14px 18px;
  border-bottom: 1px solid #e5e7eb;
  display: flex;
  gap: .6rem;
  align-items: center;
  color: #1b1b1b;
}

.stage-table .table-help {
  margin-left: auto;
  font-weight: 500;
  text-decoration: none;
  color: #BE0505;
}

/* Cabecera de columnas (Original / Modificado / Diferencia) */
.stage-table thead th {
  background: #f9f8f5;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #6b7280;
  text-align: left;
  padding: 11px 18px;
  border-bottom: 1px solid #e5e7eb;
}

.stage-table th.empty {
  width: 16%;
  border: none;
  color: transparent;
}

/* Cabecera de fila (Potencia / Par) */
.stage-table tbody th,
.stage-table tbody th[scope="row"] {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #6b7280;
  text-align: left;
  padding: 14px 18px;
  border-bottom: 1px solid #e5e7eb;
  border-right: 1px solid #e5e7eb;
  background: #f9f8f5;
  border-left: 0px!important;
}

/* Celdas de datos */
.stage-table td {
  padding: 14px 18px;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: middle;
  color: #1b1b1b;
}

.stage-table tbody tr:nth-child(even) td { background: #fafafa; }
.stage-table .is-highlight { background: #fdf0f0; font-weight: 600; }

/* Fila de precio */
.stage-table tfoot .price-label {
  text-align: left;
  padding: 16px 18px;
  border-top: 2px solid #e5e7eb;
  border-bottom: none;
  background: #fff;
  color: #6b7280;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.stage-table tfoot .price {
  text-align: right;
  font-weight: 800;
  font-size: 22px;
  color: #BE0505;
  background: #fff;
  border-top: 2px solid #e5e7eb;
  border-bottom: none;
  white-space: nowrap;
  padding: 16px 18px;
}

.stage-table .big {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  margin-bottom: 4px;
}

.stage-table a { color: #BE0505; text-decoration: none; }
.stage-table a:hover { text-decoration: underline; }

/* Fila de ahorro estimado (Eco) */
.stage-table .efficiency {
  color: #BE0505 !important;
  font-weight: 700;
  font-size: 18px;
  white-space: nowrap;
}
.stage-table .ecolabel {
  background: #fdf0f0;
  color: #1b1b1b;
}
.stage-table .noborder,
.stage-table td.noborder,
.stage-table th.noborder {
  border-bottom: none;
}

/* Esquinas redondeadas en cabecera */
.stage-table thead tr:first-child th:first-child { border-top-left-radius: 0px;border:0px }
.stage-table thead tr:first-child th:last-child  { border-top-right-radius: 14px; }

/* Responsive — scroll horizontal en mobile
   Las tablas de comparación no deben apilarse: sin cabeceras de columna
   los valores numéricos pierden contexto completamente. */
@media (max-width: 680px) {
  .stage-card {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .stage-table {
    font-size: 14px;
    min-width: 340px; /* fuerza scroll solo si el móvil es muy estrecho */
  }
  .stage-table thead th,
  .stage-table tbody th,
  .stage-table td {
    padding: 10px 13px;
    white-space: nowrap;
  }
  .stage-table th.empty { width: 90px; }
  .stage-table tfoot .price { font-size: 18px; }
  .stage-table tfoot .price-label,
  .stage-table tfoot .price { padding: 13px 13px; }
}


/* =====================================================
   ECO TABLE — variante independiente (legacy)
   ===================================================== */
.eco-picker { border: 1px solid #e5e7eb; border-radius: 12px; padding: 12px; display: grid; gap: 10px; }
.eco-options { display: flex; gap: 12px; flex-wrap: wrap; }
.eco-options label { background: #f7f7f8; border: 1px solid #e5e7eb; border-radius: 999px; padding: 6px 10px; cursor: pointer; }
.eco-result { display: flex; gap: 8px; align-items: center; font-size: 16px; }
.eco-result .eco-value { color: #BE0505; font-size: 18px; }
.eco-scenarios {
  width: 100%; border-collapse: separate; border-spacing: 0;
  border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden;
  box-shadow: 0 8px 24px rgba(0,0,0,.06); font-size: 16px;
}
.eco-scenarios thead th { background: #f9fafb; text-align: left; padding: 12px 16px; border-bottom: 1px solid #e5e7eb; color: #1b1b1b; }
.eco-scenarios td { padding: 12px 16px; border-bottom: 1px solid #eef0f3; color: #1b1b1b; }
.eco-scenarios tbody tr:last-child td { border-bottom: none; }


/* =====================================================
   CSS DE TABS — FICHA PRODUCTO
   Todas las reglas de [reprog_stage_tabs]
   ===================================================== */

/* Contenedor — sin borde propio (Elementor envuelve el bloque) */
.rtabs {
  max-width: 100%;
  overflow: hidden;
  color: #1b1b1b;
  background: transparent;
}

/* Barra de tabs */
.rtabs__nav {
  display: flex;
  gap: 8px;
  border-bottom: 0px solid #e5e7eb;
  background: transparent;
  padding-bottom: 0;
}

/* Botones de tab
   Usamos .rtabs .rtabs__label para superar la especificidad de Elementor
   que estiliza todos los <button> con sus colores globales */
.rtabs .rtabs__label,
.rtabs .rtabs__label:focus,
.rtabs .rtabs__label:active {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 13px 22px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .05em;
  color: #6b7280;
  cursor: pointer;
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none;
  margin-bottom: -1px;
  transition: color .15s ease, border-bottom-color .15s ease;
  user-select: none;
}

.rtabs .rtabs__label:hover {
  color: #BE0505 !important;
  background: transparent !important;
}

.rtabs .rtabs__label.is-active,
.rtabs .rtabs__label[aria-selected="true"] {
  color: #BE0505 !important;
  border-bottom: 2px solid #BE0505 !important;
  background: transparent !important;
}

/* Badge porcentaje eco */
.rtabs__label .rtabs__badge {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  background: #00800036;
  color: green;
  border: 1px solid rgba(190,5,5,.22);
  border-radius: 999px;
  padding: 1px 7px;
}

.rtabs__label.is-active .rtabs__badge,
.rtabs__label[aria-selected="true"] .rtabs__badge {
  background: #00800036;
  color: #fff;
  border-color: rgba(190,5,5,.22);
}

/* Paneles */
.rtabs__panel {
  display: none;
}
.rtabs__panel.is-active {
  display: block;
}

/* El .stage-card dentro de tabs no necesita su propio borde/sombra */
.rtabs .stage-card {
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow-x: auto;          /* scroll horizontal hereda bien dentro del panel */
  -webkit-overflow-scrolling: touch;
}

/* Override colores Elementor en las tablas dentro de tabs */
.rtabs .stage-table,
.rtabs .stage-table td {
  color: #1b1b1b;
}
.rtabs .stage-table thead th,
.rtabs .stage-table tbody th,
.rtabs .stage-table tbody th[scope="row"] {
  color: #6b7280;
  background: #f9f8f5;
}
.rtabs .stage-table tfoot .price {
  color: #BE0505;
}
.rtabs .stage-table .efficiency {
  color: #BE0505 !important;
}

/* Responsive tabs */
@media (max-width: 540px) {
  .rtabs .rtabs__label {
    padding: 11px 14px;
    font-size: 12px;
  }
}


/* =====================================================
   REPROG HUB — Minimalista dorado 2025
   ===================================================== */

/* --- Card base --- */
.reprog-col {
  background: #ffffff;
  color: #0f172a;
  border: 1.5px solid var(--rp-border);
  border-top: 3px solid var(--rp-accent);   /* franja dorada superior siempre visible */
  border-radius: var(--rp-r);
  box-shadow: var(--rp-shadow);
  overflow: hidden;
  transition: box-shadow .2s ease, border-color .2s ease;
}

.reprog-col:hover {
  box-shadow: var(--rp-shadow-hover);
}

/* Columna activa */
.seleccion-motors .reprog-motors,
.seleccion-ano    .reprog-years,
.seleccion-modelo .reprog-models {
  border-color: var(--rp-accent);
  box-shadow: 0 0 0 3px var(--rp-accent-bg), var(--rp-shadow-hover);
}

/* --- Cabecera simple (Marcas) --- */
.reprog-col > h3:not(.reprog-col__title) {
  margin: 0;
  padding: 14px 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--rp-muted);
  background: var(--rp-surface);
  border-bottom: 1.5px solid var(--rp-border);
}

/* --- Cabecera con step + título + logo (Modelos, Años) --- */
h3.reprog-col__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 14px 20px;
  border-bottom: 1.5px solid var(--rp-border);
  background: var(--rp-white);
}

/* Grupo izquierdo: step label + nombre */
.reprog-col__title-main {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

/* Etiqueta de paso (MODELO / AÑO) */
.reprog-col__step {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--rp-accent);
  line-height: 1;
}

.reprog-col__title-text {
  font-size: 17px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -.02em;
  text-transform: capitalize;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.reprog-col__title-logo {
  flex-shrink: 0;
}

.reprog-col__title-logo img.reprog-brand-logo {
  width:  40px !important;
  height: 40px !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  display: block;
}


/* --- Listas (Marcas, Modelos, Años) --- */
.reprog-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.reprog-list > li {
  border-bottom: 1px solid var(--rp-border);
}

.reprog-list > li:last-child {
  border-bottom: none;
}

.reprog-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 11px 20px;
  font-size: 14px;
  font-weight: 450;
  color: #0B0B0B;
  text-decoration: none;
  min-height: 46px;
  line-height: 1.4;
  transition: background .15s ease, color .15s ease, padding-left .15s ease;
}

.reprog-list a::after {
  content: "›";
  font-size: 17px;
  color: var(--rp-muted);
  flex-shrink: 0;
  line-height: 1;
  transition: transform .15s ease, color .15s ease;
}

.reprog-list a:hover {
  background: var(--rp-accent-bg);
  color: var(--rp-accent);
  padding-left: 24px;
}

.reprog-list a:hover::after {
  color: var(--rp-accent);
  transform: translateX(3px);
}

/* Ítem activo */
.reprog-list > li.is-active > a {
  background: var(--rp-accent-bg);
  color: var(--rp-accent);
  font-weight: 600;
  border-left: 3px solid var(--rp-accent);
  padding-left: 17px;
}

.reprog-list > li.is-active > a::after {
  color: var(--rp-accent);
}


/* --- Columna Motores --- */
.reprog-motors--grouped {
  background: var(--rp-white);
  padding: 0;
  border-radius: 0;
}

/* Cabecera de motores: año + contador + logo */
.reprog-motors__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1.5px solid var(--rp-border);
  background: var(--rp-white);
}

.reprog-motors__meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.reprog-motors__year {
  font-size: clamp(14px, 1.4vw, 17px);
  font-weight: 700;
  color: #0f172a;
  margin: 0;
  letter-spacing: -.02em;
  line-height: 1.2;
}

.reprog-motors__count {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--rp-accent);
}

.reprog-year-sep {
  opacity: .4;
  font-weight: 400;
  padding: 0 3px;
}

.reprog-brand-logo--sm {
  width:  40px !important;
  height: 40px !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  flex-shrink: 0;
}

/* Grupo combustible */
.reprog-fuel-group {
  border-bottom: 1.5px solid var(--rp-border);
  margin-top: 0;
}

.reprog-fuel-group:last-child {
  border-bottom: none;
}

/* Etiqueta combustible */
.reprog-fuel-title {
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--rp-muted);
  padding: 8px 20px;
  background: var(--rp-surface);
  border-bottom: 1px solid var(--rp-border);
  margin: 0;
}

/* Lista de motores */
.reprog-list-motors {
  list-style: none;
  margin: 0;
  padding: 0;
}

.reprog-list-motors > li {
  border-bottom: 1px solid var(--rp-border);
}

.reprog-list-motors > li:last-child {
  border-bottom: none;
}

.reprog-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 20px;
  text-decoration: none;
  min-height: 48px;
  transition: background .15s ease;
}

.reprog-item:hover {
  background: var(--rp-accent-bg);
}

.reprog-item__name {
  font-size: clamp(13px, 1.3vw, 15px);
  font-weight: 500;
  color: #0f172a;
  line-height: 1.4;
  transition: color .15s ease;
}

.reprog-item:hover .reprog-item__name {
  color: var(--rp-accent);
}

.reprog-item__hp {
  font-size: 11px;
  font-weight: 700;
  color: var(--rp-accent);
  background: var(--rp-accent-bg);
  border: 1px solid var(--rp-accent-border);
  padding: 3px 9px;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
  letter-spacing: .01em;
}


/* =====================================================
   BREADCRUMBS — pills siempre (desktop + mobile)
   ===================================================== */
.reprog-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  background: var(--rp-accent-bg);
  border: 1px solid var(--rp-accent-border);
  border-radius: 12px;
}

.reprog-breadcrumbs a {
  display: inline-flex;
  align-items: center;
  background: var(--rp-white);
  border: 1px solid var(--rp-accent-border);
  border-radius: 999px;
  padding: 5px 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--rp-accent);
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.reprog-breadcrumbs a:last-of-type {
  background: var(--rp-accent);
  color: #fff;
  border-color: var(--rp-accent);
}

.reprog-breadcrumbs a:hover {
  background: var(--rp-accent);
  color: #fff;
  border-color: var(--rp-accent);
}

.bc-sep {
  display: none;
}


/* =====================================================
   RANK MATH BREADCRUMBS — mismo estilo que los propios
   ===================================================== */
.rank-math-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  background: var(--rp-accent-bg);
  border: 1px solid var(--rp-accent-border);
  border-radius: 12px;
}

.rank-math-breadcrumb p {
  display: contents;
}

.rank-math-breadcrumb a {
  display: inline-flex;
  align-items: center;
  background: var(--rp-white);
  border: 1px solid var(--rp-accent-border);
  border-radius: 999px;
  padding: 5px 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--rp-accent);
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease;
}

.rank-math-breadcrumb a:hover {
  background: var(--rp-accent);
  color: #fff;
}

/* Ítem de página actual — pill dorado */
.rank-math-breadcrumb .last {
  display: inline-flex;
  align-items: center;
  background: #BE0505;
  color: #fff;
  border-radius: 999px;
  padding: 5px 14px;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

/* Si hay segundo .last (título completo del post), ocultarlo */
.rank-math-breadcrumb .last ~ .last {
  display: none;
}

/* Ocultar separadores */
.rank-math-breadcrumb .separator {
  display: none;
}

/* Override color Elementor en fichas de producto */
.reprogramacion-template-default .rank-math-breadcrumb a {
  color: #BE0505 !important;
  text-decoration: none !important;
}
.reprogramacion-template-default .rank-math-breadcrumb a:hover {
  color: #fff !important;
}


/* =====================================================
   VEHICLE PICKER — [reprog_vehicle_picker]
   ===================================================== */
.rpvp-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 560px;
}

.rpvp-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 36px 20px 28px;
  background: var(--rp-white);
  border: 1.5px solid var(--rp-border);
  border-top: 3px solid var(--rp-accent);
  border-radius: var(--rp-r);
  box-shadow: var(--rp-shadow);
  text-decoration: none;
  transition: box-shadow .2s ease, background .2s ease, border-color .2s ease;
  cursor: pointer;
}

.rpvp-card:hover {
  box-shadow: var(--rp-shadow-hover);
  background: var(--rp-accent-bg);
  border-color: var(--rp-accent);
}

.rpvp-icon {
  width: 52px;
  height: 52px;
  color: var(--rp-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform .2s ease;
}

.rpvp-card:hover .rpvp-icon {
  transform: scale(1.08);
}

.rpvp-icon svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.rpvp-label {
  font-size: 19px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -.02em;
  line-height: 1;
  transition: color .15s ease;
}

.rpvp-card:hover .rpvp-label {
  color: var(--rp-accent);
}

.rpvp-sub {
  font-size: 12px;
  color: var(--rp-muted);
  text-align: center;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: .02em;
  text-transform: uppercase;
}

@media (max-width: 480px) {
  .rpvp-wrap { gap: 14px; max-width: 100%; }
  .rpvp-card { padding: 24px 14px 20px; gap: 10px; }
  .rpvp-icon { width: 40px; height: 40px; }
  .rpvp-label { font-size: 16px; }
}


/* =====================================================
   SVG Chart — [reprog_stage_chart]
   ===================================================== */
.hg-stage-chart svg {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
}


/* =====================================================
   RESPONSIVE — Mobile wizard (una columna a la vez)
   ===================================================== */

/* Tablet/Mobile: ocultar columnas inactivas */
@media (max-width: 900px) {
  .seleccion-motors .reprog-models,
  .seleccion-motors .reprog-years {
    display: none !important;
  }
  .seleccion-ano .reprog-models {
    display: none !important;
  }
}

/* Mobile pequeño: ajustes generales */
@media (max-width: 600px) {
  .reprog-col > h3:not(.reprog-col__title) { padding: 11px 16px; }
  h3.reprog-col__title { padding: 12px 16px; }
  .reprog-col__title-text { font-size: 15px; }
  .reprog-col__title-logo img.reprog-brand-logo { width: 32px !important; height: 32px !important; }
  .reprog-list a { padding: 12px 16px; min-height: 52px; }
  .reprog-list a:hover { padding-left: 20px; }
  .reprog-list > li.is-active > a { padding-left: 13px; }
  .reprog-motors__header { padding: 12px 16px; }
  .reprog-fuel-title { padding: 7px 16px; }
  .reprog-item { padding: 11px 16px; min-height: 52px; }
  .reprog-brand-logo--sm { width: 32px !important; height: 32px !important; }
}


/* =====================================================
   ELEMENTOR — Overrides puntuales ficha producto
   ===================================================== */

/* Si se usan tabs nativos de Elementor en la misma página */
.reprogramacion-template-default .e-n-tabs-content .e-con-full {
  padding: 0;
  margin-top: 20px;
}


/* =====================================================
   BUSCADOR — IndexSearch plugin
   ===================================================== */
.is-search-form {
  border-radius: 60px !important;
  max-width: 600px;
  margin: auto;
  background-color: #fff;
  border: 0 !important;
}
#is-search-input-11634 {
  border: 0 !important;
}
.is-search-icon {
  border-radius: 60px;
}
/* Ocultar SOLO en PC (>=1025px) */
@media (min-width: 1025px) {
  .contact-header {
    display: none !important;
  }
}

/* fix-contraste 2026-07-20 (Claude): el kit Elementor (.elementor-kit-11128 a) pintaba estos CTAs con el color primario #BE0505 sobre fondo rojo/oscuro */
.elementor-kit-11128 a.cta-top,
.elementor-kit-11128 a.btn.btn-red,
.elementor-kit-11128 a.btn.btn-ghost,
.elementor-kit-11128 a.repro-banner { color: #fff !important; }


/* fix-tamano-texto 2026-07-20 (Claude): subida moderada del cuerpo en escritorio; el móvil (<=680px) mantiene sus tamaños. !important para ganar al <style> inline de Elementor. */
@media (min-width: 681px) {
  body, body p, body li, .hero p, .hero .sub, .hero-sub { font-size: 18px !important; }
  .hero p, .hero .sub, .hero-sub { font-size: 19px !important; }
  .btn, a.cta-top { font-size: 15px !important; }
}
