.elementor-18094 .elementor-element.elementor-element-9703aaa{--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-18094 .elementor-element.elementor-element-f11b657{--display:flex;}/* Start custom CSS for text-editor, class: .elementor-element-bb1b3ab */: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%);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;color:#1a1a1a;background:#ffffff}

/* Hero */
.hero-modern{
  background:var(--arc-gradient-1);
  position:relative;overflow:hidden;
  min-height:80vh;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
}
@keyframes float{
  0%,100%{transform:translate(0,0) rotate(0deg)}
  33%{transform:translate(-20px,-20px) rotate(1deg)}
  66%{transform:translate(20px,-10px) rotate(-1deg)}
}
.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}
}

/* 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; cursor: zoom-in;
}
.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)}}

/* Floating card */
.floating-card{
  background:#fff;border-radius:20px;padding:2rem;
  box-shadow:0 20px 60px rgba(12,42,107,.15);position:relative;overflow:hidden;transition:.3s
}
.floating-card::before{
  content:'';position:absolute;top:-50%;right:-50%;width:200%;height:200%;
  background:radial-gradient(circle,var(--arc-secondary) 0%,transparent 70%);
  opacity:.05;animation:rotate 30s linear infinite
}
.floating-card:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 30px 80px rgba(12,42,107,.2)}

/* CTA */
.cta-modern{
  background:var(--arc-gradient-2);color:#fff;padding:1rem 2.5rem;border-radius:50px;
  font-weight:700;text-decoration:none;display:inline-block;position:relative;overflow:hidden;
  transition:.3s;box-shadow:0 10px 30px rgba(122,173,210,.3)
}
.cta-modern:hover{transform:translateY(-3px);box-shadow:0 15px 40px rgba(122,173,210,.4)}

/* Badge SEO Local */
.local-badge{
  background:linear-gradient(135deg,#FFD700 0%,#FFA500 100%);
  color:var(--arc-primary);padding:.5rem 1rem;border-radius:25px;font-weight:700;font-size:.9rem;
  display:inline-block;animation:badge-shine 3s ease-in-out infinite
}
@keyframes badge-shine{
  0%,100%{box-shadow:0 4px 15px rgba(255,215,0,.3)}
  50%{box-shadow:0 4px 20px rgba(255,215,0,.5)}
}

/* WhatsApp Button */
.whatsapp-float{
  position:fixed;bottom:30px;right:30px;background:#25D366;color:#fff;border-radius:50%;
  width:60px;height:60px;display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 30px rgba(37,211,102,.3);z-index:100;transition:.3s;
  animation:whatsapp-pulse 2s ease-in-out infinite
}
@keyframes whatsapp-pulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.05)}
}
.whatsapp-float:hover{transform:scale(1.1);box-shadow:0 15px 40px rgba(37,211,102,.4)}

/* Responsive */
@media (max-width:768px){
  .hero-modern{min-height:70vh}
}

/* Accesibilidad */
*:focus-visible{outline:3px solid var(--arc-secondary);outline-offset:2px}

/* Lightbox overlay helper (se combina con clases utilitarias del HTML) */
.lightbox-hidden{display:none}/* 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 */