.elementor-18059 .elementor-element.elementor-element-6f68a07{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-18059 .elementor-element.elementor-element-af06893{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}/* Start custom CSS for text-editor, class: .elementor-element-3a7da1e *//* Fuente (opcional si no la cargas en el tema) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700;900&display=swap');

/* Variables de marca */
:root {
  --arc-primary:#0c2a6b;
  --arc-primary-light:#1c3faa;
  --arc-secondary:#7aadd2;
  --arc-black:#000000;
  --arc-white:#ffffff;
  --arc-gradient-1:linear-gradient(135deg,#0c2a6b 0%,#1c3faa 100%);
  --arc-gradient-2:linear-gradient(135deg,#7aadd2 0%,#5A8FBA 100%);
}

/* Reset básico */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  line-height:1.6;
  color:#1a1a1a;
  background:#ffffff;
}

/* ===== HERO ===== */
.hero-modern {
  background:var(--arc-gradient-1);
  position:relative;
  overflow:hidden;
  min-height:85vh;
  display:flex;
  align-items:center;
}
.hero-modern::before{
  content:'';
  position:absolute;
  width:150%;
  height:150%;
  background:
    radial-gradient(circle at 20% 80%, rgba(122,173,210,.3) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(28,63,170,.3) 0%, transparent 50%),
    radial-gradient(circle at 40% 40%, rgba(122,173,210,.2) 0%, transparent 50%);
  animation:float 20s ease-in-out infinite;
}
.hero-content{ position:relative; z-index:10; }

.shape{ position:absolute; opacity:.1; }
.shape-1{
  width:300px; height:300px; background:var(--arc-secondary);
  border-radius:50%; top:-150px; right:-150px; animation:pulse 4s ease-in-out infinite;
}
.shape-2{
  width:200px; height:200px; background:var(--arc-white);
  clip-path:polygon(50% 0%,0% 100%,100% 100%); bottom:10%; left:5%;
  animation:rotate 20s linear infinite;
}

@keyframes rotate{ from{transform:rotate(0)} to{transform:rotate(360deg)} }
@keyframes pulse{ 0%,100%{transform:scale(1);opacity:.1} 50%{transform:scale(1.1);opacity:.15} }
@keyframes float{
  0%,100%{ transform:translate(0,0) rotate(0deg); }
  33%{ transform:translate(-20px,-20px) rotate(1deg); }
  66%{ transform:translate(20px,-10px) rotate(-1deg); }
}

/* ===== CARDS ===== */
.service-card{
  background:#fff; border-radius:20px; padding:2rem; position:relative; overflow:hidden;
  box-shadow:0 10px 30px rgba(12,42,107,.1);
  transition:.4s cubic-bezier(.175,.885,.32,1.275);
  border:1px solid rgba(122,173,210,.1);
}
.service-card::before{
  content:''; position:absolute; top:0; left:0; width:100%; height:4px;
  background:var(--arc-gradient-2); transform:scaleX(0); transform-origin:left;
  transition:transform .3s ease;
}
.service-card:hover::before{ transform:scaleX(1); }
.service-card:hover{
  transform:translateY(-8px); box-shadow:0 20px 40px rgba(12,42,107,.15);
}

.article-card{
  background:#fff; border-radius:20px; overflow:hidden;
  box-shadow:0 10px 30px rgba(12,42,107,.08); transition:.3s;
  border:1px solid rgba(122,173,210,.1);
}
.article-card:hover{ transform:translateY(-5px); box-shadow:0 20px 40px rgba(12,42,107,.12); }
.article-image{ width:100%; height:250px; object-fit:cover; transition:transform .3s ease; }
.article-card:hover .article-image{ transform:scale(1.05); }
.article-content{ padding:2rem; }
.article-tag{
  display:inline-block; background:var(--arc-gradient-2); color:#fff;
  padding:.25rem .75rem; border-radius:20px; font-size:.85rem; font-weight:600; margin-bottom:1rem;
}

/* ===== COUNTERS ===== */
.stat-counter{
  font-size:3rem; font-weight:900; background:var(--arc-gradient-2);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:gradient 3s ease infinite;
}
@keyframes gradient{ 0%,100%{ filter:hue-rotate(0) } 50%{ filter:hue-rotate(10deg) } }

/* ===== LISTA DE SERVICIOS ===== */
.service-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(250px,1fr));
  gap:1rem; margin-top:1rem;
}
.service-item{
  background:#fff; padding:.75rem 1rem; border-radius:10px;
  border-left:3px solid var(--arc-secondary); transition:.3s;
  font-size:.95rem; color:#4a5568;
}
.service-item:hover{
  background:linear-gradient(90deg,rgba(122,173,210,.1) 0%, transparent 100%);
  transform:translateX(5px); color:var(--arc-primary); font-weight:500;
}/* End custom CSS */
/* Start custom CSS for global, class: .elementor-global-18035 *//* ====== ARC · Estilos para Elementor (solo CSS) ====== */
/* Recomendado: envolver la sección con la clase "catalog-section"
   desde las Opciones avanzadas del Contenedor en Elementor. */

:root {
  --arc-primary: #0c2a6b;
  --arc-primary-light: #1c3faa;
  --arc-secondary: #7aadd2;
  --arc-black: #000000;
  --arc-white: #ffffff;
  --arc-gradient-1: linear-gradient(135deg, #0c2a6b 0%, #1c3faa 100%);
  --arc-gradient-2: linear-gradient(135deg, #7aadd2 0%, #5A8FBA 100%);
}

/* Reset mínimo */
.catalog-section * {
  box-sizing: border-box;
}

/* Fondo y espaciados de la sección */
.catalog-section {
  padding: 4rem 0;
  background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color: #1a1a1a;
  line-height: 1.6;
}

/* Contenedor máx. ancho */
.catalog-section .accordion-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* Título y subtítulo */
.catalog-section .section-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  text-align: center;
  margin: 0 0 1rem 0;
  color: var(--arc-primary);
  letter-spacing: -0.025em;
}

.catalog-section .section-subtitle {
  text-align: center;
  color: #64748b;
  margin: 0 auto 3rem auto;
  max-width: 48rem;
  font-size: 1.125rem;
}

/* Acordeón */
.catalog-section .accordion-modern {
  background: #ffffff;
  border-radius: 16px;
  margin-bottom: 1rem;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(12, 42, 107, 0.08);
  transition: all 0.3s ease;
  border: 1px solid rgba(122, 173, 210, 0.1);
  opacity: 1;                 /* para animaciones por IntersectionObserver si lo usas */
  transform: translateY(0);   /* valores seguros por si no hay JS */
}

.catalog-section .accordion-modern:hover {
  box-shadow: 0 8px 25px rgba(12, 42, 107, 0.12);
  transform: translateY(-2px);
}

.catalog-section .accordion-header {
  background: var(--arc-gradient-1);
  color: #ffffff;
  padding: 1.5rem 2rem;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.catalog-section .accordion-header::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 -100%;
  width: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  transition: left 0.5s ease;
}

.catalog-section .accordion-header:hover::before {
  left: 100%;
}

.catalog-section .accordion-header:hover {
  background: linear-gradient(135deg, var(--arc-primary-light) 0%, #2c4fba 100%);
}

.catalog-section .accordion-icon {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.catalog-section .accordion-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
}

.catalog-section .accordion-toggle {
  width: 30px;
  height: 30px;
  border: 2px solid #ffffff;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, background 0.3s ease;
  font-size: 1.25rem;
  background: rgba(255, 255, 255, 0.1);
}

.catalog-section .accordion-toggle.active {
  transform: rotate(45deg);
  background: rgba(255, 255, 255, 0.2);
}

/* Cuerpo del acordeón (usar clase .active vía JS de Elementor o tuyo) */
.catalog-section .accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  background: #f8fafc;
}

.catalog-section .accordion-body.active {
  max-height: 2500px; /* suficiente para el contenido */
}

.catalog-section .accordion-content {
  padding: 2rem;
}

.catalog-section .accordion-description {
  color: #64748b;
  margin: 0 0 1.5rem 0;
  font-weight: 500;
}

/* Grid de servicios */
.catalog-section .service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
}

/* Tarjetas de servicio (compatible con <div> y <a>) */
.catalog-section .service-item {
  display: block; /* para que <a.service-item> y <div.service-item> luzcan igual */
  background: #ffffff;
  padding: 0.875rem 1.25rem;
  border-radius: 10px;
  border-left: 3px solid var(--arc-secondary);
  transition: all 0.3s ease;
  font-size: 0.95rem;
  color: #475569;
  position: relative;
  overflow: hidden;
  text-decoration: none; /* evita subrayado en enlaces */
}

.catalog-section .service-item::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, rgba(122,173,210,0.1) 0%, transparent 100%);
  transition: width 0.3s ease;
}

.catalog-section .service-item:hover::before {
  width: 100%;
}

.catalog-section .service-item:hover {
  transform: translateX(5px);
  color: var(--arc-primary);
  font-weight: 500;
  box-shadow: 0 4px 12px rgba(122, 173, 210, 0.15);
}

/* Insignia destacada */
.catalog-section .highlight-badge {
  display: inline-block;
  background: var(--arc-gradient-2);
  color: #ffffff;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 600;
  margin-left: 0.5rem;
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.8; }
}

/* Responsive */
@media (max-width: 768px) {
  .catalog-section .accordion-header {
    padding: 1.25rem 1.5rem;
  }
  .catalog-section .accordion-title {
    font-size: 1rem;
  }
  .catalog-section .service-grid {
    grid-template-columns: 1fr;
  }
  .catalog-section .accordion-content {
    padding: 1.5rem;
  }
}

/* Opcional: transición de entrada si usas IntersectionObserver */
.catalog-section .accordion-modern[data-reveal="pending"] {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s ease;
}
.catalog-section .accordion-modern[data-reveal="show"] {
  opacity: 1;
  transform: translateY(0);
}/* End custom CSS */