/* ==========================================================================
   PRIZMATECH CARE - STYLESHEET OFICIAL (v1.5.0)
   Branding 100% PrizmaTech / Prizma Drones Perú
   Paleta: Amarillo/Dorado Prizma (#e4b100), Dark Corporativo (#213130), Menú Nav (#f7f7f7)
   ========================================================================== */

:root {
  /* PrizmaTech Official Palette */
  --ptc-accent: #e4b100;
  --ptc-accent-hover: #c89900;
  --ptc-accent-light: #fffdf5;
  --ptc-accent-subtle: rgba(228, 177, 0, 0.12);
  
  --ptc-dark: #213130;
  --ptc-dark-hover: #172322;
  --ptc-dark-secondary: #2b3d3c;
  --ptc-dark-card: #283a39;
  
  --ptc-nav-bg: #f7f7f7;
  
  --ptc-gray-900: #213130;
  --ptc-gray-800: #334443;
  --ptc-gray-700: #4a5c5b;
  --ptc-gray-600: #718096;
  --ptc-gray-500: #8c9b9a;
  --ptc-gray-400: #cbd5e0;
  --ptc-gray-300: #e2e8f0;
  --ptc-gray-200: #edf2f7;
  --ptc-gray-100: #f7f9fa;
  --ptc-white: #ffffff;
  
  --ptc-success: #25d366;
  --ptc-safe-width: 1200px;
  
  --ptc-radius-sm: 6px;
  --ptc-radius-md: 10px;
  --ptc-radius-lg: 14px;
  --ptc-radius-xl: 20px;
  --ptc-radius-full: 9999px;
  
  --ptc-shadow-sm: 0 2px 8px rgba(33, 49, 48, 0.04);
  --ptc-shadow-md: 0 8px 24px rgba(33, 49, 48, 0.08);
  --ptc-shadow-card: 0 10px 30px rgba(33, 49, 48, 0.08);
  --ptc-shadow-accent: 0 6px 20px rgba(228, 177, 0, 0.3);
  
  --ptc-transition: all 0.25s ease;
  --ptc-font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

/* Base Wrapper Scoped */
.prizmatech-care-wrapper {
  font-family: var(--ptc-font-family);
  color: var(--ptc-gray-900);
  background-color: #fafbfc;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.6;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* Compatibilidad Divi Builder - Ancho Completo Automático */
.et_pb_section:has(.prizmatech-care-wrapper),
.et_pb_row:has(.prizmatech-care-wrapper),
.et_pb_column:has(.prizmatech-care-wrapper),
.et_pb_code:has(.prizmatech-care-wrapper),
.et_pb_text:has(.prizmatech-care-wrapper) {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.prizmatech-care-wrapper *,
.prizmatech-care-wrapper *::before,
.prizmatech-care-wrapper *::after {
  box-sizing: border-box;
}

/* Zona Segura PrizmaTech (1440px) */
.ptc-container {
  width: 100%;
  max-width: var(--ptc-safe-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(16px, 3vw, 40px);
  padding-right: clamp(16px, 3vw, 40px);
}

/* Encabezados de Sección */
.ptc-section-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto clamp(32px, 4vw, 48px);
}

/* Badges limpios sin fondos ni pastillas pesadas */
.ptc-badge {
  display: inline-block;
  color: var(--ptc-accent);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 8px;
  background: transparent;
  border: none;
  padding: 0;
}

.ptc-section-title {
  font-size: clamp(24px, 2.8vw, 36px);
  font-weight: 800;
  line-height: 1.25;
  color: var(--ptc-dark);
  letter-spacing: -0.5px;
  margin: 0 0 10px;
}

.ptc-section-subtitle {
  font-size: clamp(14px, 1.1vw, 16px);
  color: var(--ptc-gray-700);
  line-height: 1.6;
  margin: 0;
}

/* Botones Base */
.ptc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  font-size: 14px;
  font-weight: 700;
  border-radius: var(--ptc-radius-sm);
  text-decoration: none;
  cursor: pointer;
  transition: var(--ptc-transition);
  border: none;
  line-height: 1.2;
}

.ptc-btn-accent {
  background-color: var(--ptc-accent);
  color: var(--ptc-dark);
  box-shadow: var(--ptc-shadow-accent);
}

.ptc-btn-accent:hover {
  background-color: var(--ptc-dark);
  color: var(--ptc-accent);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(33, 49, 48, 0.25);
}

.ptc-btn-dark {
  background-color: var(--ptc-dark);
  color: var(--ptc-white);
}

.ptc-btn-dark:hover {
  background-color: #152221;
  color: var(--ptc-accent);
  transform: translateY(-2px);
}

.ptc-btn-block {
  width: 100%;
}

/* ==========================================================================
   1. BANNER PRINCIPAL: TEXTO A LA IZQUIERDA + ICONOS A LA DERECHA
   ========================================================================== */
.ptc-hero-banner {
  background: linear-gradient(135deg, #172322 0%, #213130 100%);
  color: var(--ptc-white);
  padding: clamp(36px, 4.5vw, 64px) 0;
  border-bottom: 3px solid var(--ptc-accent);
  position: relative;
  overflow: hidden;
}

.ptc-hero-banner::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 450px;
  height: 100%;
  background: radial-gradient(circle, rgba(228, 177, 0, 0.09) 0%, rgba(0, 0, 0, 0) 70%);
  pointer-events: none;
}

.ptc-banner-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: clamp(28px, 4vw, 56px);
  position: relative;
  z-index: 2;
}

/* Columna Izquierda: Información alineada a la izquierda */
.ptc-banner-info {
  text-align: left;
}

.ptc-banner-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ptc-accent);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1.2px;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.ptc-banner-tag svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.ptc-banner-title {
  font-size: clamp(24px, 3.2vw, 40px);
  font-weight: 800;
  line-height: 1.2;
  margin: 0 0 14px;
  color: var(--ptc-white);
  letter-spacing: -0.5px;
}

.ptc-banner-title span {
  color: var(--ptc-accent);
}

.ptc-banner-desc {
  font-size: clamp(14px, 1.1vw, 16px);
  color: #cbd5e0;
  line-height: 1.6;
  margin: 0 0 24px;
  max-width: 560px;
}

.ptc-banner-cta-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ptc-accent);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: var(--ptc-transition);
}

.ptc-banner-cta-link:hover {
  color: #ffffff;
  transform: translateX(4px);
}

/* Columna Derecha: 4 Pilares en Grid 2x2 ordenado */
.ptc-banner-pillars-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.ptc-banner-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--ptc-radius-md);
  padding: 18px 16px;
  transition: var(--ptc-transition);
  display: flex;
  flex-direction: column;
  backdrop-filter: blur(8px);
  text-align: left;
}

.ptc-banner-card:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: var(--ptc-accent);
  transform: translateY(-3px);
}

.ptc-banner-card-icon {
  width: 38px;
  height: 38px;
  border-radius: var(--ptc-radius-sm);
  background: rgba(228, 177, 0, 0.15);
  color: var(--ptc-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}

.ptc-banner-card-icon svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.ptc-banner-card-title {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--ptc-white);
  margin: 0 0 4px;
  line-height: 1.3;
}

.ptc-banner-card-desc {
  font-size: 12.5px;
  color: #a0aec0;
  line-height: 1.45;
  margin: 0;
}

/* ==========================================================================
   2. SECCIÓN: ¿CÓMO FUNCIONA TU PRIZMATECH CARE? (JUSTO DEBAJO DEL BANNER)
   ========================================================================== */
.ptc-process-section {
  padding: clamp(40px, 5.5vw, 72px) 0;
  background-color: var(--ptc-white);
  border-bottom: 1px solid var(--ptc-gray-300);
}

.ptc-process-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.ptc-step-card {
  background: var(--ptc-gray-100);
  border: 1px solid var(--ptc-gray-300);
  border-radius: var(--ptc-radius-md);
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  transition: var(--ptc-transition);
  text-align: left;
}

.ptc-step-card:hover {
  border-color: var(--ptc-accent);
  background: var(--ptc-white);
  box-shadow: var(--ptc-shadow-md);
  transform: translateY(-3px);
}

.ptc-step-badge {
  width: 32px;
  height: 32px;
  border-radius: var(--ptc-radius-full);
  background: var(--ptc-dark);
  color: var(--ptc-accent);
  font-size: 14px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}

.ptc-step-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--ptc-dark);
  margin: 0 0 8px;
  line-height: 1.3;
}

.ptc-step-desc {
  font-size: 13px;
  color: var(--ptc-gray-700);
  line-height: 1.55;
  margin: 0;
}

/* ==========================================================================
   3. SECCIÓN: ELIGE EL NIVEL DE PROTECCIÓN (PLAN 1 AÑO VS 2 AÑOS)
   ========================================================================== */
.ptc-plans-section {
  padding: clamp(40px, 5.5vw, 76px) 0;
  background-color: var(--ptc-gray-100);
  border-bottom: 1px solid var(--ptc-gray-300);
}

.ptc-plans-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  max-width: 960px;
  margin: 0 auto;
}

.ptc-plan-card {
  background: var(--ptc-white);
  border-radius: var(--ptc-radius-lg);
  border: 1px solid var(--ptc-gray-300);
  padding: clamp(24px, 3.5vw, 36px);
  position: relative;
  transition: var(--ptc-transition);
  display: flex;
  flex-direction: column;
  text-align: left;
  overflow: visible !important; /* Garantiza que el badge no se corte */
}

.ptc-plan-card:hover {
  box-shadow: var(--ptc-shadow-card);
}

/* Plan 2 Años: Borde dorado de 2px y margen superior para badge */
.ptc-plan-card.featured {
  border: 2px solid var(--ptc-accent);
  box-shadow: 0 10px 30px rgba(228, 177, 0, 0.08);
  margin-top: 10px;
}

.ptc-plan-badge-featured {
  position: absolute;
  top: -14px;
  right: 24px;
  background: var(--ptc-accent);
  color: var(--ptc-dark);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  padding: 5px 14px;
  border-radius: var(--ptc-radius-full);
  z-index: 10;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12);
  line-height: 1.2;
}

.ptc-plan-header {
  border-bottom: 1px solid var(--ptc-gray-200);
  padding-bottom: 18px;
  margin-bottom: 20px;
}

.ptc-plan-title {
  font-size: 22px;
  font-weight: 800;
  color: var(--ptc-dark);
  margin: 0 0 6px;
}

.ptc-plan-subtitle {
  font-size: 13px;
  color: var(--ptc-gray-600);
  margin: 0;
}

.ptc-plan-features-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex-grow: 1;
}

.ptc-plan-feature-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  font-size: 14px;
  line-height: 1.4;
}

.ptc-plan-feature-label {
  color: var(--ptc-gray-800);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
}

.ptc-plan-feature-label svg {
  width: 16px;
  height: 16px;
  fill: var(--ptc-dark);
  flex-shrink: 0;
}

.ptc-plan-feature-val {
  font-weight: 700;
  color: var(--ptc-dark);
  text-align: right;
  flex-shrink: 0;
  max-width: 50%;
  word-break: normal;
}

.ptc-plan-feature-val.highlight {
  color: #b8860b;
}

.ptc-plan-note {
  font-size: 12px;
  color: var(--ptc-gray-600);
  background: var(--ptc-gray-100);
  padding: 10px 14px;
  border-radius: var(--ptc-radius-sm);
  margin-top: 20px;
  line-height: 1.5;
}

/* ==========================================================================
   4. CATÁLOGO CON MENÚ DE 3 CATEGORÍAS (ESCRITORIO: #f7f7f7 | MÓVIL: FILTRO DROPDOWN)
   ========================================================================== */
/* Al llegar desde un enlace #modelos (por ejemplo el boton "Volver al Catalogo
   de Seguros" de la pagina de terminos), deja sitio para la cabecera fija:
   sin esto el titulo de la seccion queda tapado en movil. */
#modelos {
  scroll-margin-top: 80px;
}

.ptc-catalog-section {
  padding: clamp(40px, 6vw, 80px) 0;
  background-color: var(--ptc-white);
}

/* MENÚ ESCRITORIO (>= 768px) */
.ptc-desktop-nav {
  display: block;
  background-color: var(--ptc-nav-bg);
  border-radius: var(--ptc-radius-md);
  border: 1px solid var(--ptc-gray-300);
  margin-bottom: 36px;
  padding: 16px 24px;
}

/* 1er Nivel: 3 Categorías (Drones DJI | Industrial & Enterprise | Handheld) */
.ptc-nav-level-1 {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(16px, 3vw, 36px);
  border-bottom: 1px solid var(--ptc-gray-300);
  padding-bottom: 14px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.ptc-lvl1-item {
  background: transparent;
  border: none;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ptc-dark);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px;
  position: relative;
  transition: var(--ptc-transition);
  font-family: inherit;
}

.ptc-lvl1-item:hover {
  color: var(--ptc-accent);
}

.ptc-lvl1-item svg {
  width: 12px;
  height: 12px;
  fill: currentColor;
  transition: transform 0.25s ease;
}

.ptc-lvl1-item.active {
  color: var(--ptc-accent);
  font-weight: 800;
}

.ptc-lvl1-item.active::after {
  content: "";
  position: absolute;
  bottom: -15px;
  left: 0;
  right: 0;
  height: 2px;
  background-color: var(--ptc-accent);
  border-radius: 2px;
}

.ptc-lvl1-item.active svg {
  transform: rotate(180deg);
}

/* 2do Nivel: Modelos en línea horizontal separados por | */
.ptc-nav-level-2 {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 12px;
  font-size: 13.5px;
  color: var(--ptc-gray-700);
}

.ptc-lvl2-item {
  background: transparent;
  border: none;
  font-size: 13px;
  font-weight: 500;
  color: var(--ptc-gray-800);
  cursor: pointer;
  padding: 4px 6px;
  transition: var(--ptc-transition);
  font-family: inherit;
  border-radius: var(--ptc-radius-sm);
}

.ptc-lvl2-item:hover {
  color: var(--ptc-accent);
}

.ptc-lvl2-item.active {
  color: var(--ptc-accent);
  font-weight: 700;
}

.ptc-lvl2-sep {
  color: var(--ptc-gray-400);
  user-select: none;
  font-size: 12px;
}

/* ==========================================================================
   MENÚ MÓVIL (FILTRO MODERNO VERTICAL TIPO DESPLEGABLE) (< 768px)
   ========================================================================== */
.ptc-mobile-nav {
  display: none;
  margin-bottom: 28px;
}

/* Selector Segmentado de Categoría Principal en Móvil (3 categorías) */
.ptc-mobile-cat-switcher {
  display: flex;
  background: var(--ptc-gray-200);
  padding: 4px;
  border-radius: var(--ptc-radius-full);
  margin-bottom: 12px;
  gap: 2px;
}

.ptc-mobile-cat-btn {
  flex: 1;
  border: none;
  background: transparent;
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ptc-gray-700);
  border-radius: var(--ptc-radius-full);
  cursor: pointer;
  transition: var(--ptc-transition);
  text-align: center;
  font-family: inherit;
  line-height: 1.2;
}

.ptc-mobile-cat-btn.active {
  background: var(--ptc-dark);
  color: var(--ptc-accent);
  box-shadow: 0 2px 8px rgba(33, 49, 48, 0.15);
}

/* Botón Desplegable de Filtro */
.ptc-mobile-filter-wrapper {
  position: relative;
  width: 100%;
}

.ptc-mobile-filter-trigger {
  width: 100%;
  background: var(--ptc-nav-bg);
  border: 1.5px solid var(--ptc-gray-300);
  border-radius: var(--ptc-radius-md);
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  transition: var(--ptc-transition);
  font-family: inherit;
}

.ptc-mobile-filter-trigger:hover,
.ptc-mobile-filter-trigger.active {
  border-color: var(--ptc-accent);
  background: var(--ptc-white);
  box-shadow: 0 4px 14px rgba(33, 49, 48, 0.08);
}

.ptc-filter-trigger-content {
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
}

.ptc-filter-trigger-icon {
  width: 18px;
  height: 18px;
  fill: var(--ptc-accent);
  flex-shrink: 0;
}

.ptc-filter-trigger-label {
  font-size: 11px;
  color: var(--ptc-gray-600);
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.5px;
  display: block;
}

.ptc-filter-trigger-value {
  font-size: 14.5px;
  font-weight: 800;
  color: var(--ptc-dark);
  display: block;
  line-height: 1.2;
}

.ptc-filter-trigger-arrow,
.ptc-filter-trigger-close {
  width: 18px;
  height: 18px;
  fill: var(--ptc-dark);
  transition: transform 0.25s ease;
  flex-shrink: 0;
}

/* Con el panel abierto, la flecha da paso a la equis de cerrar: es el mismo
   boton, asi que pulsarla cierra el desplegable. */
.ptc-filter-trigger-close {
  display: none;
  fill: var(--ptc-accent);
}

.ptc-mobile-filter-trigger.active .ptc-filter-trigger-arrow {
  display: none;
}

.ptc-mobile-filter-trigger.active .ptc-filter-trigger-close {
  display: block;
}

/* Blindaje contra los iconos del tema.
   El tema hijo trae una regla global  .open::before { content:"M";
   font-family:ETmodules }  (la equis de Divi). Cualquier clase generica que
   usemos aqui puede acabar con un glifo suelto encima, asi que se anula
   cualquier pseudo-elemento ajeno dentro del filtro. Nosotros no usamos
   ::before ni ::after en estos elementos. */
.ptc-mobile-filter-wrapper::before,
.ptc-mobile-filter-wrapper::after,
.ptc-mobile-filter-trigger::before,
.ptc-mobile-filter-trigger::after,
.ptc-mobile-dropdown-menu::before,
.ptc-mobile-dropdown-menu::after,
.ptc-mobile-model-item::before,
.ptc-mobile-model-item::after {
  content: none !important;
  display: none !important;
}

/* Panel Desplegable Vertical de Modelos */
.ptc-mobile-dropdown-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  background: var(--ptc-white);
  border: 1.5px solid var(--ptc-gray-300);
  border-radius: var(--ptc-radius-md);
  box-shadow: 0 12px 32px rgba(33, 49, 48, 0.18);
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 100;
}

.ptc-mobile-dropdown-menu.ptc-open {
  max-height: 380px;
  overflow-y: auto;
  opacity: 1;
  visibility: visible;
  padding: 8px;
}

.ptc-mobile-model-item {
  width: 100%;
  border: none;
  background: var(--ptc-white);
  padding: 10px 14px;
  border-radius: var(--ptc-radius-sm);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ptc-dark);
  cursor: pointer;
  transition: var(--ptc-transition);
  text-align: left;
  font-family: inherit;
  border-bottom: 1px solid var(--ptc-gray-200);
}

.ptc-mobile-model-item:last-child {
  border-bottom: none;
}

.ptc-mobile-model-item:hover {
  background: var(--ptc-gray-100);
  color: var(--ptc-accent);
}

/* Fondo SIEMPRE blanco en la selección y texto en dorado */
.ptc-mobile-model-item.active {
  background: var(--ptc-white) !important;
  color: var(--ptc-accent) !important;
  font-weight: 800;
}

.ptc-mobile-model-item svg {
  width: 16px;
  height: 16px;
  fill: var(--ptc-accent);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.ptc-mobile-model-item.active svg {
  opacity: 1;
}

/* Grid de Productos */
.ptc-catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.ptc-product-card {
  background: var(--ptc-white);
  border: 1px solid var(--ptc-gray-300);
  border-radius: var(--ptc-radius-md);
  padding: 24px;
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
  transition: var(--ptc-transition);
}

.ptc-product-card:hover {
  border-color: var(--ptc-accent);
  box-shadow: var(--ptc-shadow-md);
  transform: translateY(-4px);
}

.ptc-product-media {
  /* v5.3.0 - Alto y ancho FIJOS y la foto a sangre hasta el borde de la
     tarjeta. Con object-fit: cover la imagen llena el marco pase lo que pase
     con su proporción, así que ninguna tarjeta cambia de alto por su foto. */
  height: 210px;
  min-height: 210px;
  max-height: 210px;
  width: auto;
  margin: -24px -24px 18px;              /* anula el padding de la tarjeta */
  border-radius: var(--ptc-radius-md) var(--ptc-radius-md) 0 0;
  overflow: hidden;
  background: var(--ptc-gray-100);
  display: block;
  position: relative;
}

.ptc-product-media img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.45s ease;
}

.ptc-product-card:hover .ptc-product-media img {
  transform: scale(1.06);
}

/* Título de Modelo: Alineado a la Izquierda con altura mínima fija */
.ptc-product-name {
  font-size: 18px;
  font-weight: 800;
  color: var(--ptc-dark);
  margin: 0 0 14px;
  text-align: left;
  line-height: 1.3;
  min-height: 46px;
  display: flex;
  align-items: center;
}

/* ==========================================================================
   SELECTOR DE PLANES (SIMETRÍA 100% ENTRE MODELOS DE 1 Y 2 PLANES)
   ========================================================================== */
.ptc-plan-switcher {
  display: flex;
  background: var(--ptc-gray-200);
  padding: 4px;
  border-radius: var(--ptc-radius-full);
  margin-bottom: 16px;
  height: 40px;
  min-height: 40px;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
}

/* Para modelos de un solo plan: Misma barra envolvente completa */
.ptc-plan-switcher.single-plan {
  background: var(--ptc-gray-200);
  padding: 4px;
  width: 100%;
  display: flex;
  height: 40px;
  min-height: 40px;
  box-sizing: border-box;
}

.ptc-plan-switch-opt {
  flex: 1;
  text-align: center;
  padding: 7px 12px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ptc-gray-700);
  border-radius: var(--ptc-radius-full);
  cursor: pointer;
  transition: var(--ptc-transition);
  border: none;
  background: transparent;
  line-height: 1.2;
}

.ptc-plan-switch-opt.active {
  background: var(--ptc-white);
  color: var(--ptc-dark);
  box-shadow: 0 2px 6px rgba(33, 49, 48, 0.08);
}

/* Botón único de 1 plan equivalente en ancho y presencia */
.ptc-plan-single-badge {
  width: 100%;
  text-align: center;
  background: var(--ptc-white);
  color: var(--ptc-dark);
  font-size: 12.5px;
  font-weight: 700;
  padding: 7px 12px;
  border-radius: var(--ptc-radius-full);
  box-shadow: 0 2px 6px rgba(33, 49, 48, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
  height: 100%;
  box-sizing: border-box;
}

/* Caja de Precios y Tarifas */
.ptc-price-box {
  background: var(--ptc-gray-100);
  border-radius: var(--ptc-radius-sm);
  padding: 14px 16px;
  margin-bottom: 16px;
  min-height: 165px;
  display: flex;
  flex-direction: column;
  /* v5.3.0 - Antes era space-between: cuando la tarjeta tenía menos filas
     (Enterprise, sin precio tachado ni línea de contenido) el hueco sobrante
     se repartía y la línea divisoria bajaba ~20px. Ahora el bloque se apila
     desde arriba y la divisoria queda siempre a la misma altura. */
  justify-content: flex-start;
  box-sizing: border-box;
}

.ptc-price-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 8px;
}

.ptc-price-label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ptc-gray-700);
}

.ptc-price-amount-wrapper {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.ptc-price-regular {
  font-size: 13px;
  color: var(--ptc-gray-500);
  text-decoration: line-through;
  font-weight: 600;
}

.ptc-price-amount {
  font-size: 24px;
  font-weight: 800;
  color: var(--ptc-dark);
}

.ptc-rate-breakdown {
  border-top: 1px solid var(--ptc-gray-300);
  padding-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.ptc-rate-line {
  display: flex;
  justify-content: space-between;
  font-size: 11.5px;
  color: var(--ptc-gray-700);
}

.ptc-rate-line strong {
  font-weight: 700;
  color: var(--ptc-dark);
}

.ptc-product-actions {
  margin-top: auto !important;
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* Botón Comprar / Añadir Seguro con hover en #213130 y texto dorado */
.ptc-product-card .ptc-buy-btn,
.ptc-product-detail-card .ptc-buy-btn,
a.ptc-btn.ptc-buy-btn {
  font-family: var(--ptc-font-family) !important;
  background-color: #e4b100 !important;
  color: #213130 !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: normal !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: var(--ptc-radius-sm) !important;
  padding: 12px 24px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin-bottom: 8px !important;
  border: none !important;
  transition: all 0.25s ease !important;
  box-shadow: none !important;
  line-height: 1.2 !important;
  box-sizing: border-box !important;
  width: 100% !important;
}

.ptc-product-card .ptc-buy-btn span,
.ptc-product-detail-card .ptc-buy-btn span,
a.ptc-btn.ptc-buy-btn span,
.ptc-product-card .ptc-buy-btn *,
.ptc-product-detail-card .ptc-buy-btn *,
a.ptc-btn.ptc-buy-btn * {
  font-family: var(--ptc-font-family) !important;
  color: #213130 !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
}

.ptc-product-card .ptc-buy-btn:hover,
.ptc-product-detail-card .ptc-buy-btn:hover,
a.ptc-btn.ptc-buy-btn:hover {
  background-color: #213130 !important;
  color: #e4b100 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px rgba(33, 49, 48, 0.25) !important;
}

.ptc-product-card .ptc-buy-btn:hover span,
.ptc-product-detail-card .ptc-buy-btn:hover span,
a.ptc-btn.ptc-buy-btn:hover span,
.ptc-product-card .ptc-buy-btn:hover *,
.ptc-product-detail-card .ptc-buy-btn:hover *,
a.ptc-btn.ptc-buy-btn:hover * {
  color: #e4b100 !important;
}

/* Ocultar cualquier enlace flotante .added_to_cart inyectado automáticamente por WooCommerce */
.ptc-product-card .added_to_cart,
.ptc-product-detail-card .added_to_cart,
.added_to_cart.wc-forward {
  display: none !important;
}

/* Estado: Seguro ya añadido al carrito */
.ptc-product-card .ptc-buy-btn.in-cart,
.ptc-product-detail-card .ptc-buy-btn.in-cart,
a.ptc-btn.ptc-buy-btn.in-cart {
  background-color: #213130 !important;
  color: #e4b100 !important;
  border: 1px solid #213130 !important;
  cursor: pointer !important;
}

.ptc-product-card .ptc-buy-btn.in-cart span,
.ptc-product-detail-card .ptc-buy-btn.in-cart span,
a.ptc-btn.ptc-buy-btn.in-cart span,
.ptc-product-card .ptc-buy-btn.in-cart *,
.ptc-product-detail-card .ptc-buy-btn.in-cart *,
a.ptc-btn.ptc-buy-btn.in-cart * {
  color: #e4b100 !important;
}

.ptc-product-card .ptc-buy-btn.in-cart:hover,
.ptc-product-detail-card .ptc-buy-btn.in-cart:hover,
a.ptc-btn.ptc-buy-btn.in-cart:hover {
  background-color: #172322 !important;
  color: #edbe1a !important;
  border-color: #172322 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(33, 49, 48, 0.25) !important;
}

.ptc-product-card .ptc-buy-btn.in-cart:hover span,
.ptc-product-detail-card .ptc-buy-btn.in-cart:hover span,
a.ptc-btn.ptc-buy-btn.in-cart:hover span,
.ptc-product-card .ptc-buy-btn.in-cart:hover *,
.ptc-product-detail-card .ptc-buy-btn.in-cart:hover *,
a.ptc-btn.ptc-buy-btn.in-cart:hover * {
  color: #edbe1a !important;
}

/* Fila de enlaces inferiores: Ver Drone a la izquierda, Ver Carrito al extremo derecho */
.ptc-card-footer-links {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 22px !important;
  height: 22px !important;
  margin-top: 2px !important;
  box-sizing: border-box !important;
}

/* Enlaces inferiores (Ver Drone en Tienda y Ver Carrito en color dorado oficial #e4b100 con peso 500) */
.ptc-product-card .ptc-btn-drone-link,
.ptc-product-detail-card .ptc-btn-terms-link,
.ptc-card-footer-links .ptc-view-cart-link,
a.ptc-btn-terms-link,
a.ptc-btn-drone-link,
a.ptc-view-cart-link {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #e4b100 !important;
  text-decoration: none !important;
  padding: 0 !important;
  margin: 0 !important;
  transition: all 0.2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 20px !important;
  height: 20px !important;
  line-height: 1.2 !important;
  cursor: pointer !important;
}

.ptc-card-footer-links .ptc-view-cart-link {
  margin-left: auto !important;
  text-align: right !important;
}

.ptc-product-card .ptc-btn-drone-link:hover,
.ptc-product-detail-card .ptc-btn-terms-link:hover,
.ptc-card-footer-links .ptc-view-cart-link:hover,
a.ptc-btn-terms-link:hover,
a.ptc-btn-drone-link:hover,
a.ptc-view-cart-link:hover {
  color: #edbe1a !important;
  text-decoration: underline !important;
  text-decoration-color: #edbe1a !important;
  text-underline-offset: 3px !important;
}

/* Microaviso sutil de protección exclusiva con altura fija simétrica para alineación total */
.ptc-protection-notice {
  font-size: 11.5px !important;
  color: #718096 !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.35 !important;
  text-align: left !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 6px !important;
  min-height: 34px !important;
  height: 34px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.ptc-protection-notice .ptc-notice-icon {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  margin-top: 1px !important;
  flex-shrink: 0 !important;
}

.ptc-protection-notice span {
  font-size: 11.5px !important;
  color: #718096 !important;
  line-height: 1.35 !important;
}

/* ==========================================================================
   4.1 TARJETA DEDICADA PARA FICHA / DETALLE DE PRODUCTO WOOCOMMERCE
   ========================================================================== */
.ptc-product-detail-card {
  background: var(--ptc-white);
  border: 1px solid var(--ptc-gray-300);
  border-radius: var(--ptc-radius-md);
  padding: 20px;
  margin: 20px 0;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 16px rgba(33, 49, 48, 0.04);
  transition: var(--ptc-transition);
  font-family: var(--ptc-font-family);
  box-sizing: border-box;
}

.ptc-product-detail-card:hover {
  border-color: var(--ptc-accent);
  box-shadow: var(--ptc-shadow-md);
}

.ptc-detail-card-header {
  margin-bottom: 16px;
  text-align: left;
}

.ptc-detail-card-title-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.ptc-shield-icon {
  width: 20px;
  height: 20px;
  fill: var(--ptc-accent);
  flex-shrink: 0;
}

.ptc-detail-card-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--ptc-dark);
  margin: 0;
  line-height: 1.25;
}

.ptc-detail-card-subtitle {
  font-size: 13px;
  color: var(--ptc-gray-700);
  margin: 0;
  line-height: 1.45;
}

/* ==========================================================================
   5. BOTÓN DE TÉRMINOS Y CONDICIONES DEL SERVICIO (MÁS ALTO Y DESTACADO)
   ========================================================================== */
.ptc-terms-action-wrapper {
  text-align: center;
  margin-top: 48px;
}

.ptc-btn-terms {
  background-color: var(--ptc-dark);
  color: var(--ptc-white);
  padding: 16px 36px;
  font-size: 15.5px;
  font-weight: 800;
  border-radius: var(--ptc-radius-sm);
  border: 1.5px solid var(--ptc-dark);
  box-shadow: var(--ptc-shadow-md);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.ptc-btn-terms:hover {
  background-color: #172322;
  border-color: #172322;
  color: var(--ptc-accent);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(33, 49, 48, 0.3);
}

/* ==========================================================================
   6. PREGUNTAS FRECUENTES (FAQ)
   ========================================================================== */
.ptc-faq-section {
  padding: clamp(40px, 5.5vw, 76px) 0;
  background-color: var(--ptc-gray-100);
  border-top: 1px solid var(--ptc-gray-300);
}

.ptc-faq-container {
  max-width: 840px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ptc-faq-item {
  background: var(--ptc-white);
  border: 1px solid var(--ptc-gray-300);
  border-radius: var(--ptc-radius-sm);
  overflow: hidden;
  transition: var(--ptc-transition);
}

.ptc-faq-item:hover {
  border-color: var(--ptc-gray-400);
}

.ptc-faq-question {
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  padding: 18px 20px;
  font-size: 15.5px;
  font-weight: 700;
  color: var(--ptc-dark);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  font-family: inherit;
}

.ptc-faq-chevron {
  width: 18px;
  height: 18px;
  fill: var(--ptc-dark);
  transition: transform 0.25s ease;
  flex-shrink: 0;
}

.ptc-faq-item.active .ptc-faq-chevron {
  transform: rotate(180deg);
  fill: var(--ptc-accent);
}

.ptc-faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
  color: var(--ptc-gray-700);
  font-size: 14px;
  line-height: 1.6;
  padding: 0 20px;
}

.ptc-faq-item.active .ptc-faq-answer {
  padding: 0 20px 20px;
  max-height: 380px;
}

/* ==========================================================================
   7. CTA FINAL DE ASESORÍA
   ========================================================================== */
.ptc-cta-section {
  padding: clamp(40px, 5.5vw, 70px) 0;
  background: linear-gradient(135deg, #172322 0%, #213130 100%);
  color: var(--ptc-white);
  text-align: center;
}

.ptc-cta-box {
  max-width: 760px;
  margin: 0 auto;
}

.ptc-cta-title {
  font-size: clamp(22px, 2.8vw, 34px);
  font-weight: 800;
  margin: 0 0 12px;
  color: var(--ptc-white);
}

.ptc-cta-title span {
  color: var(--ptc-accent);
}

.ptc-cta-desc {
  font-size: clamp(14px, 1.1vw, 16px);
  color: #cbd5e0;
  line-height: 1.55;
  margin: 0 0 28px;
}

.ptc-cta-buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
}

.ptc-btn-whatsapp {
  background-color: var(--ptc-success);
  color: #ffffff;
  font-weight: 700;
}

.ptc-btn-whatsapp:hover {
  background-color: #1eb956;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(37, 211, 102, 0.35);
  color: #ffffff;
}

/* Botón Tienda: hover con fondo blanco y texto oscuro #213130 */
.ptc-btn-store {
  background-color: transparent;
  color: #ffffff;
  border: 1.5px solid rgba(255, 255, 255, 0.4);
  font-weight: 700;
}

.ptc-btn-store:hover {
  background-color: #ffffff;
  color: var(--ptc-dark);
  border-color: #ffffff;
  transform: translateY(-2px);
}

/* ==========================================================================
   RESPONSIVE ADAPTATIONS (Desktop, Tablet y Móvil)
   ========================================================================== */

@media (max-width: 1023px) {
  .ptc-banner-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .ptc-banner-info {
    text-align: center;
  }
  .ptc-banner-desc {
    margin-left: auto;
    margin-right: auto;
  }
  .ptc-process-steps {
    grid-template-columns: repeat(2, 1fr);
  }
  .ptc-catalog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  /* Alternar Menús: Ocultar barra horizontal, mostrar filtro dropdown móvil */
  .ptc-desktop-nav {
    display: none;
  }
  .ptc-mobile-nav {
    display: block;
  }

  .ptc-banner-pillars-grid {
    grid-template-columns: 1fr;
  }
  .ptc-process-steps {
    grid-template-columns: 1fr;
  }
  .ptc-plans-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  /* Ajuste de tarjetas de planes para evitar que el texto se corte */
  .ptc-plan-card {
    padding: 24px 16px 20px;
  }
  .ptc-plan-feature-row {
    flex-direction: row;
    align-items: baseline;
    gap: 8px;
    font-size: 13px;
  }
  .ptc-plan-feature-label {
    font-size: 13px;
  }
  .ptc-plan-feature-val {
    font-size: 13px;
    max-width: 55%;
  }

  .ptc-catalog-grid {
    grid-template-columns: 1fr;
  }
  .ptc-btn {
    width: 100%;
  }
  .ptc-cta-buttons {
    flex-direction: column;
  }
}

/* ==========================================================================
   SUPRESIÓN AUTOMÁTICA DEL DISEÑO ANTIGUO (ACF / Bloque antiguo)
   ========================================================================== */
.neo2-selector.protection-section-advanced,
.neo2-selector_title,
.protection-section-advanced,
.dji-care-accordion,
.protection-desc {
  display: none !important;
}



/* =====================================================================
   v4.0.0 - Ocultacion fiable.
   Las reglas de arriba declaran display:inline-flex !important para
   .ptc-view-cart-link, asi que el style="display:none" en linea NO ganaba
   y el enlace "Ver Carrito" se veia SIEMPRE, con el carrito vacio incluido.
   ===================================================================== */
.ptc-product-card .ptc-hidden,
.ptc-product-detail-card .ptc-hidden,
a.ptc-view-cart-link.ptc-hidden,
.ptc-card-footer-links .ptc-view-cart-link.ptc-hidden,
.ptc-hidden {
  display: none !important;
}

/* =====================================================================
   v4.5.0 - Tarjetas sin carrito (línea Enterprise: cotización directa).
   La tarjeta conserva precios y tarifas; solo desaparece el botón de
   compra y el aviso de "1 seguro por equipo".
   ===================================================================== */
.ptc-product-card.ptc-no-cart .ptc-product-actions,
.ptc-product-detail-card.ptc-no-cart .ptc-product-actions {
  padding-top: 4px;
}

.ptc-product-card.ptc-no-cart .ptc-card-footer-links,
.ptc-product-detail-card.ptc-no-cart .ptc-card-footer-links {
  /* En las tarjetas con carrito, el aviso rojo separa el botón del enlace.
     Aquí no hay aviso, así que ese aire hay que reponerlo a mano. */
  margin-top: 18px !important;
}

/* Botón de WhatsApp: mismo tamaño exacto que el botón de "Añadir Seguro",
   con el verde oficial #25D366 que ya usa la ficha de producto. */
.ptc-btn.ptc-whatsapp-btn,
a.ptc-btn.ptc-whatsapp-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  background-color: #25D366 !important;
  color: #ffffff !important;
  font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  padding: 12px 24px !important;
  border: none !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
}

.ptc-btn.ptc-whatsapp-btn span,
a.ptc-btn.ptc-whatsapp-btn span {
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: normal !important;
}

.ptc-btn.ptc-whatsapp-btn .ptc-wa-icon,
a.ptc-btn.ptc-whatsapp-btn .ptc-wa-icon {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 20px !important;
  display: block !important;
}

.ptc-btn.ptc-whatsapp-btn:hover,
a.ptc-btn.ptc-whatsapp-btn:hover {
  background-color: #1DB954 !important;
  color: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px rgba(29, 185, 84, 0.32) !important;
}

.ptc-btn.ptc-whatsapp-btn:hover span,
a.ptc-btn.ptc-whatsapp-btn:hover span {
  color: #ffffff !important;
}

/* =====================================================================
   v5.2.0 - "Cada sustitución incluye": qué recibe el cliente cuando usa
   una sustitución. Va dentro del desglose de tarifas, en gris y con un
   icono de paquete: es información, no una advertencia, así que no
   compite con el aviso rojo de "1 seguro por equipo".
   ===================================================================== */
.ptc-rate-includes {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px dashed var(--ptc-gray-200, #e2e8f0);
  font-size: 11.5px;
  line-height: 1.45;
  color: #4a5568;
  text-align: left;
}

/* El texto ocupa la columna de las etiquetas y el icono se alinea a la
   derecha, en la misma columna que los importes de las tarifas. */
.ptc-rate-includes > span {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}

.ptc-rate-includes .ptc-includes-icon {
  flex: 0 0 13px;
  width: 13px;
  height: 13px;
  margin-top: 2px;
  order: 2;
}

.ptc-rate-includes strong {
  font-weight: 700;
  color: #213130;
}

@media (max-width: 480px) {
  .ptc-rate-includes { font-size: 11px; }
}


/* v5.3.0 - La foto de la tarjeta en pantallas pequeñas */
@media (max-width: 640px) {
  .ptc-product-media,
  .ptc-product-media.ptc-product-media {
    height: 180px;
    min-height: 180px;
    max-height: 180px;
    margin: -24px -24px 16px;
  }
}

/* =====================================================================
 * v5.5.0 - FICHA DE PRODUCTO: contenido editorial
 * ---------------------------------------------------------------------
 * Estilos de las descripciones que se escriben en cada seguro. Viven
 * aqui y no dentro de cada producto para que las 23 fichas compartan un
 * solo sitio de mantenimiento: cambiar esto las cambia todas.
 * ===================================================================== */

.ptc-ficha {
  max-width: 900px;
  margin: 0 auto;
  color: var(--ptc-gray-800);
  font-size: 16px;
  line-height: 1.72;
}

.ptc-ficha > * + * { margin-top: 20px; }

/* v5.5.1 - Se iguala al estilo de los titulos de las fichas de drones:
   mayusculas, peso alto y subrayado dorado a todo el ancho. */
.ptc-ficha h2 {
  font-size: 20px;
  line-height: 1.35;
  font-weight: 800;
  color: #111111;
  text-transform: uppercase;
  letter-spacing: 0.015em;
  margin: 44px 0 0;
  padding-bottom: 10px;
  border-bottom: 3px solid var(--ptc-accent);
}

.ptc-ficha > h2:first-child { margin-top: 0; }

.ptc-ficha h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--ptc-dark);
  margin: 26px 0 0;
}

.ptc-ficha p { margin: 0; }
.ptc-ficha strong { color: var(--ptc-dark); font-weight: 700; }

.ptc-ficha a {
  color: var(--ptc-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--ptc-accent);
  text-decoration-thickness: 2px;
}
.ptc-ficha a:hover { color: var(--ptc-accent-hover); }

/* Entradilla bajo el titulo */
.ptc-ficha-lead {
  font-size: 18px;
  line-height: 1.65;
  color: var(--ptc-gray-700);
}

/* Rejilla de tarjetas */
.ptc-ficha-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(258px, 1fr));
  gap: 16px;
  margin-top: 24px;
}

.ptc-ficha-card {
  background: var(--ptc-white);
  border: 1px solid var(--ptc-gray-300);
  border-radius: var(--ptc-radius-md);
  padding: 20px 22px;
  box-shadow: var(--ptc-shadow-sm);
}

.ptc-ficha-card h3 {
  margin: 0 0 8px;
  font-size: 16.5px;
  line-height: 1.35;
}

.ptc-ficha-card p {
  font-size: 14.5px;
  line-height: 1.62;
  color: var(--ptc-gray-700);
}

/* Aviso destacado */
.ptc-ficha-nota {
  background: var(--ptc-accent-light);
  border: 1px solid rgba(228, 177, 0, 0.35);
  border-left: 4px solid var(--ptc-accent);
  border-radius: var(--ptc-radius-sm);
  padding: 16px 20px;
  font-size: 15px;
  line-height: 1.62;
}

/* Listas */
.ptc-ficha ul {
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
}

.ptc-ficha ul li {
  position: relative;
  padding-left: 26px;
  margin-top: 9px;
  font-size: 15.5px;
  line-height: 1.6;
}

.ptc-ficha ul li::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 10px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ptc-accent);
}

.ptc-ficha ul.ptc-ficha-no li::before { background: #b3261e; }

/* Tabla comparativa 1 vs 2 años */
.ptc-ficha-tabla-wrap { overflow-x: auto; margin-top: 18px; }

.ptc-ficha-tabla {
  width: 100%;
  min-width: 420px;
  border-collapse: collapse;
  font-size: 15px;
}

.ptc-ficha-tabla th,
.ptc-ficha-tabla td {
  padding: 13px 16px;
  text-align: left;
  border-bottom: 1px solid var(--ptc-gray-300);
}

.ptc-ficha-tabla thead th {
  background: var(--ptc-dark);
  color: var(--ptc-white);
  font-weight: 700;
  font-size: 14px;
  border-bottom: none;
}

.ptc-ficha-tabla thead th:first-child { border-radius: var(--ptc-radius-sm) 0 0 0; }
.ptc-ficha-tabla thead th:last-child { border-radius: 0 var(--ptc-radius-sm) 0 0; }
.ptc-ficha-tabla tbody tr:last-child td { border-bottom: none; }
.ptc-ficha-tabla tbody tr:nth-child(even) { background: var(--ptc-gray-100); }
.ptc-ficha-tabla td:first-child { font-weight: 600; color: var(--ptc-dark); }

/* Cierre */
.ptc-ficha-cierre {
  background: var(--ptc-dark);
  color: var(--ptc-white);
  border-radius: var(--ptc-radius-lg);
  padding: 30px 34px;
  margin-top: 40px;
}

.ptc-ficha-cierre h2 { color: var(--ptc-white); margin: 0 0 12px; font-size: 19px; border-bottom-color: rgba(228, 177, 0, 0.55); }
.ptc-ficha-cierre p { color: rgba(255, 255, 255, 0.86); font-size: 15.5px; }
.ptc-ficha-cierre p + p { margin-top: 12px; }
.ptc-ficha-cierre strong { color: var(--ptc-accent); }
.ptc-ficha-cierre a { color: var(--ptc-accent); text-decoration-color: rgba(228, 177, 0, 0.5); }

@media (max-width: 600px) {
  .ptc-ficha { font-size: 15.5px; }
  .ptc-ficha h2 { font-size: 17.5px; margin-top: 34px; }
  .ptc-ficha-lead { font-size: 16.5px; }
  .ptc-ficha-cierre { padding: 24px 22px; }
  .ptc-ficha-cierre h2 { font-size: 16.5px; }
}

/* =====================================================================
 * v5.5.2 - CORRECCIONES AL PEGAR LA FICHA EN UNA PESTAÑA DE PRODUCTO
 * ---------------------------------------------------------------------
 * Tres problemas reales detectados en producción:
 *  1. wpautop inserta parrafos vacios entre bloques. Dentro de la rejilla
 *     de tarjetas cada uno ocupaba una celda y descolocaba la maqueta;
 *     fuera, dejaba huecos enormes de aire.
 *  2. El tema repinta su propia viñeta encima de la nuestra: salian dos.
 *  3. El tema fija el color del texto de los parrafos con mas peso que
 *     nosotros, y el bloque oscuro de cierre quedaba texto negro sobre
 *     fondo negro. De ahi los !important de esta seccion.
 * ===================================================================== */

.ptc-ficha p:empty,
.ptc-ficha div:empty:not([class]),
.ptc-ficha-cards > p,
.ptc-ficha-cards > br,
.ptc-ficha-tabla-wrap > p,
.ptc-ficha > br {
  display: none !important;
}

.ptc-ficha ul,
.ptc-ficha ul li {
  list-style: none !important;
  list-style-type: none !important;
}

.ptc-ficha ul li::marker { content: "" !important; }

.ptc-ficha-tabla-wrap { margin-top: 18px !important; }

/* Bloque de cierre: se fuerza el contraste */
.ptc-ficha-cierre { background: var(--ptc-dark) !important; }
.ptc-ficha-cierre h2 {
  color: #ffffff !important;
  border-bottom-color: rgba(228, 177, 0, 0.55) !important;
}
.ptc-ficha-cierre p,
.ptc-ficha-cierre li,
.ptc-ficha-cierre span {
  color: rgba(255, 255, 255, 0.9) !important;
}
.ptc-ficha-cierre strong { color: var(--ptc-accent) !important; }
.ptc-ficha-cierre a { color: var(--ptc-accent) !important; }

/* v5.5.3 - El tema declara sus h2 y th con !important desde un selector de
   ID, que pesa mas que cualquier clase nuestra. Se sube la especificidad
   todo lo posible y, en la plantilla, los dos casos criticos llevan ademas
   estilo en linea, que es lo unico que gana con seguridad. */
body .ptc-ficha .ptc-ficha-tabla thead th,
body .ptc-ficha .ptc-ficha-tabla thead th * {
  color: #ffffff !important;
}
body .ptc-ficha .ptc-ficha-cierre h2,
body .ptc-ficha .ptc-ficha-cierre h2 * {
  color: #ffffff !important;
}

/* =====================================================================
 * v5.6.0 - FICHA CORTA
 * ---------------------------------------------------------------------
 * La ficha de producto pasa a ser breve: lo justo para saber que se
 * compra. El detalle largo (tarifas, proceso, exclusiones completas)
 * vive en la pagina de Terminos y Condiciones, a un clic del boton.
 * Verde corporativo #3e615b y gris #f7f7f7 en los avisos.
 * ===================================================================== */

.ptc-ficha-nota {
  background: #f7f7f7 !important;
  border: 1px solid #e2e8f0 !important;
  border-left: 4px solid var(--ptc-accent) !important;
}

/* v5.6.1 - El enlace a Terminos deja de ser boton: dentro del aviso se
   separa un poco del parrafo y nada mas. El aspecto lo pone la clase
   .ptc-btn-terms-link, la misma que usa la tarjeta del plugin. */
.ptc-ficha-nota-cta { margin-top: 13px; }

.ptc-ficha-cierre { background: #3e615b !important; }

.ptc-ficha h3 {
  font-size: 16px;
  font-weight: 800;
  color: #111111;
  text-transform: uppercase;
  letter-spacing: 0.015em;
  margin: 32px 0 0;
  padding-bottom: 7px;
  border-bottom: 2px solid var(--ptc-accent);
}

/* Boton a Terminos y Condiciones */
.ptc-ficha-cta {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 8px;
  padding: 14px 26px;
  background: var(--ptc-accent);
  color: #ffffff !important;
  border-radius: var(--ptc-radius-sm);
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.ptc-ficha-cta:hover {
  background: var(--ptc-accent-hover);
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: var(--ptc-shadow-md);
}

.ptc-ficha-cierre .ptc-ficha-cta {
  background: var(--ptc-accent);
  color: #213130 !important;
}
.ptc-ficha-cierre .ptc-ficha-cta:hover { color: #213130 !important; }

@media (max-width: 600px) {
  .ptc-ficha h3 { font-size: 14.5px; margin-top: 26px; }
  .ptc-ficha-cta { width: 100%; justify-content: center; }
}
