/* Frontend Modern UI Overrides
 * Enfoque: suavizar tipografía, mejor ritmo vertical, espacios consistentes,
 * tarjetas limpias, contenedores más estrechos para legibilidad en blog.
 * Esta hoja no elimina lo previo; sólo sobreescribe lo necesario.
 */

/* 1. Fuente principal moderna */
html { font-size: 100%; }
body.modern-ui { 
  font-family: 'Inter', 'Open Sans', 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  color: #2a2f33;
  background-color: #f8fafc;
  line-height: 1.55;
}

/* Escala tipográfica ligeramente más suave */
body.modern-ui h1 { font-weight:600; letter-spacing:.5px; line-height:1.15; }
body.modern-ui h2 { font-weight:600; letter-spacing:.4px; line-height:1.2; }
body.modern-ui h3 { font-weight:600; letter-spacing:.3px; line-height:1.25; }
body.modern-ui h4, body.modern-ui h5, body.modern-ui h6 { font-weight:600; letter-spacing:.25px; }
body.modern-ui h1 { font-size:clamp(2.1rem, 3.4vw, 3rem); }
body.modern-ui h2 { font-size:clamp(1.9rem, 2.9vw, 2.5rem); }
body.modern-ui h3 { font-size:clamp(1.4rem, 2.2vw, 1.9rem); }
body.modern-ui h4 { font-size:1.25rem; }
body.modern-ui p { font-size:1.02rem; }

/* 2. Variables (fallback simple) */
:root {
  --color-primary: #1b6ea8;
  --color-primary-soft: #3d8fc5;
  --color-bg-card: #ffffff;
  --color-border: #e2e8f0;
  --color-text-light: #5a6472;
  --radius-sm: 4px;
  --radius-md: 8px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.1);
  --shadow-md: 0 4px 12px -2px rgba(0,0,0,.08);
  --container-max: 1140px;
  --container-narrow: 880px;
  --space-1: .25rem; /*4px*/
  --space-2: .5rem;  /*8px*/
  --space-3: .75rem; /*12px*/
  --space-4: 1rem;   /*16px*/
  --space-5: 1.25rem;/*20px*/
  --space-6: 1.5rem; /*24px*/
  --space-8: 2rem;   /*32px*/
  --space-10: 2.5rem;/*40px*/
}

/* 3. Contenedores del blog */
.blog-wrapper { max-width: var(--container-max); margin: 0 auto; padding: var(--space-8) var(--space-4); }
.blog-article-container { max-width: var(--container-narrow); }

@media (min-width: 992px) {
  .blog-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: var(--space-10); align-items: start; }
  .blog-article-container { max-width: 100%; }
}

/* 4. Tarjeta artículo */
.blog-article { background: var(--color-bg-card); padding: var(--space-8) var(--space-8) var(--space-6); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); border: 1px solid var(--color-border); }
.blog-article h1, .blog-article h2, .blog-article h3 { color: #1f2933; letter-spacing: .5px; }
.blog-article p { font-size: 1.025rem; color: #2e363f; }
.blog-article p + p { margin-top: var(--space-4); }

/* 5. Sidebar */
.blog-sidebar { position: sticky; top: 100px; display: flex; flex-direction: column; gap: var(--space-8); }
.blog-card { background: var(--color-bg-card); padding: var(--space-6); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.blog-card h4, .blog-card h5 { margin-top: 0; margin-bottom: var(--space-4); font-weight: 600; font-size: 1.05rem; color: #24323f; }
.blog-card ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.blog-card li a { display: block; padding: var(--space-2) var(--space-2); border-radius: var(--radius-sm); color: var(--color-text-light); font-weight: 500; font-size: .95rem; line-height: 1.3; }
.blog-card li a:hover { background: #f1f5f9; color: var(--color-primary); text-decoration: none; }

/* 6. Meta separadores */
.divider { height:1px; width:100%; background: var(--color-border); margin: var(--space-6) 0 var(--space-4); }

/* 7. Cabecera de sección reutilizable */
.section-heading { font-size: clamp(1.85rem, 2.4vw, 2.4rem); font-weight: 600; margin: 0 0 var(--space-6); line-height: 1.15; letter-spacing: .5px; }
.section-heading span { color: var(--color-primary); }

/* 8. Ajustes de enlaces genéricos */
body.modern-ui a { transition: color .25s, background-color .25s, box-shadow .25s; }
body.modern-ui a:focus { outline: 2px solid var(--color-primary-soft); outline-offset: 2px; }

/* 9. FB plugin spacing */
.fb-comments, .fb-like { margin-top: var(--space-6); }

/* 10. Utilities de espaciado mínimos */
.mt-0 { margin-top:0!important; } .mt-2 { margin-top: var(--space-2)!important; } .mt-4 { margin-top: var(--space-4)!important; } .mt-6 { margin-top: var(--space-6)!important; } .mt-8 { margin-top: var(--space-8)!important; }
.mb-0 { margin-bottom:0!important; } .mb-2 { margin-bottom: var(--space-2)!important; } .mb-4 { margin-bottom: var(--space-4)!important; } .mb-6 { margin-bottom: var(--space-6)!important; } .mb-8 { margin-bottom: var(--space-8)!important; }
.pt-0 { padding-top:0!important; } .pt-4 { padding-top:var(--space-4)!important; } .pt-8 { padding-top:var(--space-8)!important; }
.pb-0 { padding-bottom:0!important; } .pb-4 { padding-bottom:var(--space-4)!important; } .pb-8 { padding-bottom:var(--space-8)!important; }

/* 11. Imagenes dentro del cuerpo del post */
.blog-article img { max-width: 100%; height: auto; border-radius: var(--radius-sm); box-shadow: 0 2px 8px -2px rgba(0,0,0,.12); margin: var(--space-6) auto; display:block; }

/* 12. Ajustes de listas dentro del cuerpo */
.blog-article ul, .blog-article ol { padding-left: 1.25rem; margin: var(--space-4) 0 var(--space-6); }
.blog-article li { margin-bottom: var(--space-2); }

/* 13. Tabla dentro del contenido */
.blog-article table { width:100%; border-collapse: collapse; font-size: .95rem; margin: var(--space-6) 0; }
.blog-article table th, .blog-article table td { border:1px solid var(--color-border); padding: .6rem .75rem; }
.blog-article table th { background:#f1f5f9; font-weight:600; }

/* 14. Ajuste header ya existente - suavizar color títulos w3l_header */
.w3l_header { letter-spacing:.5px; font-weight:600; }

/* 15. Banner spacing override para modern-ui (menos alto) */
body.modern-ui .banner1, body.modern-ui .banner-small { padding: 60px 0 40px; }

/* 16. Accesibilidad: focus visible */
:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }

/* 17. Animación sutil fade-in contenido principal */
.fade-in { opacity:0; transform: translateY(8px); animation: fadeInUp .6s ease .05s forwards; }
@keyframes fadeInUp { to { opacity:1; transform: translateY(0); } }

/* ====== HOME MODERN ====== */
.hero-modern { position:relative; min-height: clamp(480px,72vh,640px); display:flex; align-items:center; overflow:hidden; color:#f2f8fc; background:#0c3049 center/cover no-repeat; }
.hero-modern[data-rotating="true"] { transition: background-image 1.2s ease-in-out; }
.hero-modern:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 25% 35%, rgba(255,255,255,.18), transparent 60%); mix-blend-mode:overlay; opacity:.4; pointer-events:none; }
.hero-modern:after { content:""; position:absolute; inset:0; background:linear-gradient(190deg, rgba(9,28,44,.78) 0%, rgba(9,28,44,.68) 45%, rgba(9,28,44,.55) 70%, rgba(9,28,44,.35) 100%); pointer-events:none; }
.hero-inner { position:relative; z-index:2; max-width:1180px; margin:0 auto; width:100%; padding: clamp(3rem,7vw,5rem) 1.25rem 3.5rem; display:grid; gap:2.5rem; }
@media(min-width:900px){ .hero-inner { grid-template-columns:minmax(0,640px) 1fr; } }
.hero-pretitle { text-transform:uppercase; letter-spacing:2.5px; font-size:.72rem; font-weight:600; color:#8fd2ff; margin-bottom:.75rem; }
.hero-modern h1 { margin:0 0 1rem; font-size: clamp(2.15rem,4.2vw,3.2rem); background: linear-gradient(90deg,#ffffff,#bfeaff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-description { font-size:1.12rem; line-height:1.55; max-width:560px; color:#d8e9f3; text-shadow:0 2px 6px rgba(0,0,0,.4); }
.hero-gallery-preview { display:none; }
@media(min-width:900px){ .hero-gallery-preview { display:grid; gap:1rem; grid-template-columns:repeat(2,140px); align-content:start; } .hero-thumb { position:relative; border-radius:14px; overflow:hidden; aspect-ratio:4/3; background:#173444; box-shadow:0 4px 14px -3px rgba(0,0,0,.35); } .hero-thumb img{ width:100%; height:100%; object-fit:cover; filter:brightness(.85); transition:.6s; } .hero-thumb:before { content:""; position:absolute; inset:0; background:linear-gradient(160deg,rgba(27,110,168,.6),rgba(36,147,214,.25)); opacity:.35; } .hero-thumb:hover img{ transform:scale(1.07); filter:brightness(.95); } }
.hero-indicators { position:absolute; bottom:1.25rem; left:50%; transform:translateX(-50%); display:flex; gap:.55rem; z-index:3; }
.hero-indicators button { width:9px; height:9px; border-radius:50%; border:none; background:rgba(255,255,255,.4); padding:0; cursor:pointer; transition:.35s; }
.hero-indicators button.active { background:#ffffff; box-shadow:0 0 0 4px rgba(255,255,255,.25); }
.hero-fade-enter { opacity:0; transform:translateY(18px); }
.hero-fade-enter.hero-fade-enter-active { opacity:1; transform:translateY(0); transition: .85s cubic-bezier(.16,.8,.24,1); }
.home-hero { position:relative; overflow:hidden; background:linear-gradient(125deg,#0e3d5c 0%, #1b6ea8 55%, #2493d6 100%); color:#fff; }
.home-hero-inner { max-width:1180px; margin:0 auto; padding: clamp(3rem,9vw,6rem) 1.25rem clamp(2.5rem,6vw,4rem); display:grid; gap:3rem; }
@media(min-width:900px){ .home-hero-inner { grid-template-columns: 1fr 520px; align-items:center; } }
.home-hero h1 span { color:#a6e3ff; }
.home-hero .hero-text { font-size:1.12rem; max-width:620px; margin-top:1rem; color:#e6f4ff; }
.home-hero .hero-actions { margin-top:2rem; display:flex; gap:1rem; flex-wrap:wrap; }
.btn-modern { --btn-bg: var(--color-primary); --btn-bg-hover:#155682; background:var(--btn-bg); color:#fff; padding:.9rem 1.4rem; border-radius:var(--radius-md); font-weight:600; font-size:.95rem; letter-spacing:.4px; box-shadow:var(--shadow-sm); transition:.3s; display:inline-flex; gap:.5rem; align-items:center; }
.btn-modern:hover { background:var(--btn-bg-hover); text-decoration:none; box-shadow:var(--shadow-md); }
.btn-outline { --btn-bg:transparent; background:transparent; color:#fff; border:1px solid rgba(255,255,255,.55); }
.btn-outline:hover { background:rgba(255,255,255,.1); }

/* Features grid */
.features-section { padding: clamp(3rem,7vw,5rem) 1.25rem; max-width:1180px; margin:0 auto; }
.section-eyebrow { text-transform:uppercase; font-size:.72rem; font-weight:600; letter-spacing:2px; color: var(--color-primary); margin-bottom:.75rem; }
.features-grid { display:grid; gap:2rem; margin-top:2.5rem; }
@media(min-width:680px){ .features-grid { grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); } }
.feature-card { background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-md); padding:1.5rem 1.4rem 1.55rem; position:relative; overflow:hidden; display:flex; flex-direction:column; gap:.75rem; box-shadow:var(--shadow-sm); transition:.35s; }
.feature-card:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 30% 20%, rgba(36,147,214,.18), transparent 70%); opacity:0; transition:.5s; }
.feature-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.feature-card:hover:before { opacity:1; }
.feature-icon { width:42px; height:42px; background:linear-gradient(140deg,#1b6ea8,#2493d6); color:#fff; display:flex; align-items:center; justify-content:center; border-radius:10px; font-size:1.1rem; box-shadow:0 4px 12px -2px rgba(0,0,0,.25); }
.feature-card h4 { margin:0; font-size:1.05rem; }
.feature-card p { margin:0; font-size:.92rem; line-height:1.45; color:var(--color-text-light); }

/* Servicios / Portafolio grid (reemplazo de col-md-4) */
.service-gallery { display:grid; gap:1.75rem; margin-top:2.5rem; }
@media(min-width:640px){ .service-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:980px){ .service-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.service-card { position:relative; border-radius:14px; overflow:hidden; aspect-ratio: 4/3; background:#d9e3ec; box-shadow:var(--shadow-sm); cursor:pointer; }
.service-card img { width:100%; height:100%; object-fit:cover; display:block; filter:brightness(.9); transition:.55s; }
.service-card:hover img { transform:scale(1.06); filter:brightness(.8); }
.service-card .service-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(10,28,44,.78), rgba(10,28,44,.35) 55%, rgba(10,28,44,.08)); display:flex; flex-direction:column; justify-content:flex-end; padding:1.15rem 1.15rem 1.25rem; color:#f5f9fc; }
.service-card h4 { margin:0 0 .35rem; font-size:1.08rem; letter-spacing:.35px; line-height:1.2; color:#f0f6fa; text-shadow:0 2px 4px rgba(0,0,0,.35); }
.service-meta { font-size:.72rem; letter-spacing:1.2px; text-transform:uppercase; opacity:.95; color:#c2d9e8; font-weight:600; text-shadow:0 1px 3px rgba(0,0,0,.4); }
.service-card:hover .service-overlay { background:linear-gradient(to top, rgba(10,28,44,.85), rgba(10,28,44,.4) 55%, rgba(10,28,44,.1)); }

/* Stats (reemplazo de 4 col-md-3) */
.stats-modern { background:#fff; border-top:1px solid #e5eef5; border-bottom:1px solid #e5eef5; position:relative; }
.stats-modern.bg-image { background:#0d2535; border:none; }
.stats-modern.bg-image:before { content:""; position:absolute; inset:0; background-image:var(--stats-bg); background-size:cover; background-position:center; background-repeat:no-repeat; filter:brightness(.55) saturate(1.05); opacity:.9; }
.stats-modern.bg-image:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(9,28,44,.72) 0%, rgba(9,28,44,.65) 45%, rgba(9,28,44,.55) 100%); }
.stats-modern.bg-image .stats-modern-inner { position:relative; }
.stats-modern.bg-image .stat-value { color:#f2f8fb; text-shadow:0 2px 6px rgba(0,0,0,.45); }
.stats-modern.bg-image .stat-label { color:#d2e2eb; }
.stats-modern.bg-image .stat-icon { box-shadow:0 6px 18px -4px rgba(0,0,0,.5); }
.stats-modern-inner { max-width:1180px; margin:0 auto; padding: clamp(2.5rem,6vw,4.5rem) 1.25rem; display:grid; gap:2rem; }
@media(min-width:680px){ .stats-modern-inner { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1020px){ .stats-modern-inner { grid-template-columns:repeat(4,1fr); } }
.stat-card { text-align:center; position:relative; padding: .5rem 0; }
.stat-icon { width:54px; height:54px; margin:0 auto 1rem; background:linear-gradient(135deg,#1b6ea8,#2493d6); display:flex; align-items:center; justify-content:center; color:#fff; border-radius:16px; font-size:1.3rem; box-shadow:0 4px 14px -3px rgba(0,0,0,.25); }
.stat-value { font-size:clamp(1.7rem,2.2vw,2.1rem); font-weight:600; letter-spacing:.5px; }
.stat-label { font-size:.82rem; font-weight:500; text-transform:uppercase; letter-spacing:1.5px; margin-top:.35rem; color:var(--color-text-light); }

/* CTA strip reemplazo medile */
.cta-strip { display:grid; gap:1.5rem; background:linear-gradient(115deg,#0c3049,#115075 45%,#1471a6); color:#e8f4fa; padding: clamp(1.8rem,4vw,2.6rem) 1.5rem; align-items:center; position:relative; overflow:hidden; }
.cta-strip:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 75% 40%, rgba(255,255,255,.18), transparent 60%); mix-blend-mode:overlay; opacity:.45; }
.cta-strip h4 { color:#f4fbff; text-shadow:0 2px 8px rgba(0,0,0,.4); }
.cta-strip .btn-modern { box-shadow:0 4px 14px -3px rgba(0,0,0,.5); }
.cta-strip .btn-outline { backdrop-filter: blur(3px); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.35); }
.cta-strip .btn-outline:hover { background:rgba(255,255,255,.18); }
@media(min-width:780px){ .cta-strip { grid-template-columns:1fr auto; } }
.cta-strip h4 { margin:0; font-size:clamp(1.2rem,1.8vw,1.55rem); font-weight:500; letter-spacing:.5px; }

/* Policy grid modern (reemplazo col-md-4) */
.policy-modern { padding: clamp(3rem,7vw,5rem) 1.25rem; max-width:1180px; margin:0 auto; }
.policy-grid { display:grid; gap:2rem; margin-top:2.5rem; }
@media(min-width:640px){ .policy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:980px){ .policy-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.policy-card-modern { background:#fff; border:1px solid var(--color-border); padding:1.6rem 1.4rem 1.7rem; border-radius: var(--radius-md); display:flex; flex-direction:column; gap:.65rem; box-shadow:var(--shadow-sm); position:relative; overflow:hidden; transition:.4s; }
.policy-card-modern:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 65% 90%, rgba(27,110,168,.25), transparent 70%); opacity:0; transition:.6s; }
.policy-card-modern:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.policy-card-modern:hover:before { opacity:1; }
.policy-card-modern .pm-icon { width:44px; height:44px; background:linear-gradient(135deg,#1b6ea8,#2493d6); color:#fff; display:flex; align-items:center; justify-content:center; border-radius:12px; font-size:1.15rem; box-shadow:0 4px 12px -3px rgba(0,0,0,.35); }
.policy-card-modern h4 { margin:0; font-size:1.05rem; letter-spacing:.4px; }
.policy-card-modern p { margin:0; font-size:.9rem; line-height:1.45; color:var(--color-text-light); }

/* Pequeños ajustes responsive extra */
@media (max-width:480px){ .hero-actions { flex-direction:column; align-items:stretch; } }

/* Banner compacto para detalles */
.banner1.banner-compact, .banner-small.banner-compact { min-height:110px; padding:38px 0 34px; display:flex; align-items:center; }
.banner1.banner-compact .w3_agileits_service_banner_info { padding:0 1.25rem; }
.banner1.banner-compact{background-size:cover!important; background-position:center!important;}
.banner1.banner-compact .w3_agileits_service_banner_info h2 { font-size:1.9rem; margin:0; }
.no-banner-space { margin-top: -40px; }

/* ====== BUSINESS PAGE MODERN ====== */
.business-header-modern { position:relative; background:linear-gradient(135deg,#0e3d5c,#114b70 55%,#15608c); color:#e9f5fb; padding: clamp(3rem,8vw,5rem) 1.25rem 2.8rem; overflow:hidden; }
.business-header-modern:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 20% 25%, rgba(255,255,255,.16), transparent 60%); mix-blend-mode:overlay; opacity:.45; }
.business-header-modern .bh-inner { position:relative; max-width:1180px; margin:0 auto; display:grid; gap:1.75rem; }
.business-header-modern h1 { margin:0; font-size:clamp(2rem,3.5vw,2.8rem); background:linear-gradient(90deg,#fff,#c7edff); -webkit-background-clip:text; background-clip:text; color:transparent; letter-spacing:.5px; }
.business-header-modern p { margin:0; max-width:720px; font-size:1.05rem; line-height:1.55; color:#d2e8f3; }

.business-toolbar { max-width:1180px; margin:-1.5rem auto 0; display:flex; flex-wrap:wrap; gap:.85rem 1rem; background:#fff; border:1px solid var(--color-border); padding:.9rem 1rem; border-radius:14px; box-shadow:0 4px 18px -6px rgba(0,0,0,.12); position:relative; z-index:2; }
.business-toolbar form { display:flex; flex:1 1 260px; gap:.6rem; }
.business-toolbar input[type="search"] { flex:1; border:1px solid #d3dde5; border-radius:10px; padding:.55rem .85rem; font-size:.9rem; background:#f5f9fc; transition:.25s; }
.business-toolbar input[type="search"]:focus { outline:none; border-color:#1b6ea8; background:#fff; box-shadow:0 0 0 3px rgba(27,110,168,.15); }
.filter-badges { display:flex; gap:.5rem; flex-wrap:wrap; }
.filter-badges button, .filter-chip { border:none; background:#f1f5f9; color:#394b58; padding:.45rem .7rem; font-size:.72rem; letter-spacing:1px; text-transform:uppercase; border-radius:20px; cursor:pointer; font-weight:600; transition:.25s; }
.filter-badges button.active, .filter-badges button:hover { background:#1b6ea8; color:#fff; box-shadow:0 4px 10px -3px rgba(0,0,0,.35); }
.results-count { font-size:.75rem; font-weight:600; letter-spacing:1px; margin-left:auto; align-self:center; color:var(--color-text-light); }

.services-grid-wrapper { max-width:1180px; margin:2.5rem auto 3.5rem; padding:0 1.25rem; }
.services-grid-wrapper .service-gallery { margin-top:1.75rem; }

.service-card.large { aspect-ratio: 5/3; }
.service-card .category-badge { position:absolute; top:.75rem; left:.75rem; background:rgba(0,0,0,.45); color:#fff; font-size:.65rem; padding:.3rem .55rem; border-radius:6px; letter-spacing:1px; font-weight:600; text-transform:uppercase; backdrop-filter: blur(3px); }
.service-card:hover .category-badge { background:rgba(0,0,0,.6); }

/* Empty / loading states */
.empty-state { text-align:center; padding:3rem 1rem; border:2px dashed #c7d6e0; border-radius:16px; background:#fff; }
.empty-state h3 { margin:0 0 .75rem; font-size:1.3rem; }
.empty-state p { margin:0 0 1.25rem; font-size:.95rem; color:var(--color-text-light); }
.skeleton-grid { display:grid; gap:1.5rem; }
@media(min-width:640px){ .skeleton-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:980px){ .skeleton-grid { grid-template-columns:repeat(3,1fr); } }
.skeleton-card { height:220px; background:linear-gradient(90deg,#eff4f8 25%,#e3edf3 37%,#eff4f8 63%); background-size:400% 100%; border-radius:14px; animation:skeleton 1.2s ease infinite; }
@keyframes skeleton { 0%{background-position:0 0;} 100%{background-position:-135% 0;} }

/* ====== BUSINESS DETAIL ====== */
.service-detail-wrapper { max-width:1280px; margin:0 auto; padding: clamp(3rem,7vw,4.5rem) 1.25rem 4rem; }
.service-detail-layout { display:grid; gap:3rem; }
@media(min-width:980px){ .service-detail-layout { grid-template-columns:minmax(0,1fr) 320px; align-items:start; } }
.service-article-card { background:#fff; border:1px solid var(--color-border); border-radius:18px; padding:2.25rem 2.1rem 2.4rem; box-shadow:0 6px 28px -10px rgba(0,0,0,.15); position:relative; overflow:hidden; }
.service-article-card:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 85% 20%, rgba(27,110,168,.15), transparent 70%); opacity:.65; pointer-events:none; }
.service-article-card h1 { margin:0 0 1rem; font-size:clamp(1.55rem,2.4vw,2.05rem); letter-spacing:.6px; color:#195077; }
.service-article-card hr.section-divider { border:none; height:2px; width:100%; background:linear-gradient(90deg,#195077,#1b6ea8 45%, transparent); margin:1.15rem 0 1.6rem; }
.service-content { font-size:1.02rem; line-height:1.6; color:#2b343b; }
.service-content p { margin:0 0 1.15rem; }
.service-content strong { color:#1b4f73; }
.service-content h2, .service-content h3 { margin:2.2rem 0 1rem; line-height:1.25; font-weight:600; letter-spacing:.4px; color:#14374e; }
.service-content ul { margin:0 0 1.5rem 1.2rem; padding:0; }
.service-content ul li { margin-bottom:.5rem; }
.toc-floating { background:#fff; border:1px solid var(--color-border); border-radius:16px; padding:1.4rem 1.3rem 1.55rem; position:sticky; top:90px; display:flex; flex-direction:column; gap:1.4rem; box-shadow:0 6px 20px -8px rgba(0,0,0,.12); }
.toc-floating h4 { margin:0 0 .35rem; font-size:1rem; letter-spacing:.5px; font-weight:600; color:#1c425b; }
.toc-floating nav ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.4rem; }
.toc-floating nav a { display:block; font-size:.8rem; letter-spacing:.5px; text-transform:uppercase; color:#4b5a66; font-weight:600; padding:.4rem .45rem; border-radius:6px; transition:.25s; }
.toc-floating nav a:hover, .toc-floating nav a.active { background:#f1f6fa; color:#1b6ea8; text-decoration:none; }
.related-services { display:flex; flex-direction:column; gap:.75rem; }
.related-services a { font-size:.85rem; line-height:1.3; color:#2a3d49; font-weight:500; padding:.5rem .55rem; border-radius:6px; background:#f4f8fb; transition:.25s; display:block; }
.related-services a:hover { background:#e7f1f7; color:#1b6ea8; text-decoration:none; }
.service-meta-bar { display:flex; flex-wrap:wrap; gap:.65rem; margin-bottom:1.25rem; }
.badge-soft { background:#e7f1f7; color:#1b567f; font-size:.62rem; padding:.4rem .6rem; border-radius:20px; letter-spacing:1px; font-weight:600; text-transform:uppercase; }
.share-inline { display:flex; gap:.5rem; margin-left:auto; }
.share-inline a { width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; background:#1b6ea8; color:#fff; border-radius:10px; font-size:.85rem; box-shadow:0 3px 10px -3px rgba(0,0,0,.35); transition:.3s; }
.share-inline a:hover { background:#155682; text-decoration:none; }
.contact-cta { margin-top:2.8rem; padding:1.6rem 1.55rem 1.8rem; background:linear-gradient(135deg,#1b6ea8,#2493d6); border-radius:16px; color:#fff; position:relative; overflow:hidden; }
.contact-cta:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 75% 30%, rgba(255,255,255,.25), transparent 65%); opacity:.4; }
.contact-cta h4 { margin:0 0 .6rem; font-size:1.1rem; letter-spacing:.4px; font-weight:600; }
.contact-cta p { margin:0 0 1rem; font-size:.85rem; line-height:1.4; color:#ecf7ff; }
.contact-cta a.btn-modern { --btn-bg:#fff; --btn-bg-hover:#e6eef4; color:#11405d; box-shadow:0 4px 14px -4px rgba(0,0,0,.4); }
.service-breadcrumbs { font-size:.72rem; letter-spacing:1.2px; text-transform:uppercase; font-weight:600; color:#4a5a66; margin-bottom:1rem; display:flex; gap:.5rem; flex-wrap:wrap; }
.service-breadcrumbs a { color:#1b6ea8; }
.service-breadcrumbs a:hover { text-decoration:underline; }
.fb-block { margin-top:2.5rem; }
.service-floating-actions { position:fixed; bottom:1.25rem; right:1.25rem; display:flex; flex-direction:column; gap:.65rem; z-index:60; }
.service-floating-actions a { width:46px; height:46px; border-radius:14px; background:#1b6ea8; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 20px -6px rgba(0,0,0,.4); font-size:1.05rem; transition:.3s; }
.service-floating-actions a:hover { background:#155682; }

/* ====== PORTAFOLIO (Clientes) ====== */
.portfolio-header { max-width:1180px; margin:0 auto; padding: clamp(3rem,7vw,4.2rem) 1.25rem 1.5rem; text-align:center; }
.portfolio-header h1 { margin:0 0 .85rem; font-size:clamp(2rem,3.2vw,2.6rem); letter-spacing:.5px; }
.portfolio-header p { margin:0 auto; max-width:720px; font-size:1.02rem; color:#4a5a66; }
.clients-toolbar { max-width:1180px; margin:0 auto 1.5rem; padding:0 1.25rem; display:flex; flex-wrap:wrap; gap:.75rem; }
.clients-toolbar input[type="search"] { flex:1; border:1px solid #d1dde5; background:#f5f9fc; border-radius:12px; padding:.6rem .85rem; font-size:.9rem; transition:.25s; }
.clients-toolbar input[type="search"]:focus { outline:none; background:#fff; border-color:#1b6ea8; box-shadow:0 0 0 3px rgba(27,110,168,.18); }
.clients-grid-wrapper { max-width:1180px; margin:0 auto; padding:0 1.25rem 4rem; }
.clients-grid { display:grid; gap:1rem; }
@media(min-width:600px){ .clients-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:880px){ .clients-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(min-width:1160px){ .clients-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.client-card { position:relative; display:flex; align-items:center; gap:.75rem; background:#ffffff; border:1px solid var(--color-border); padding:.9rem .95rem; border-radius:14px; box-shadow:0 4px 14px -6px rgba(0,0,0,.08); font-size:.83rem; font-weight:500; color:#2c3e47; letter-spacing:.3px; line-height:1.3; transition:.35s; overflow:hidden; }
.client-card:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 85% 20%, rgba(27,110,168,.18), transparent 70%); opacity:0; transition:.6s; }
.client-card:hover { transform:translateY(-4px); box-shadow:0 10px 28px -10px rgba(0,0,0,.25); }
.client-card:hover:before { opacity:1; }
.client-icon { width:38px; height:38px; background:linear-gradient(135deg,#1b6ea8,#2493d6); color:#fff; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1rem; box-shadow:0 3px 10px -3px rgba(0,0,0,.35); flex-shrink:0; }
.client-card span { display:block; }
.clients-empty { text-align:center; padding:3rem 1rem; border:2px dashed #c7d6e0; border-radius:16px; background:#fff; }
.clients-empty h3 { margin:0 0 .85rem; font-size:1.35rem; }
.clients-empty p { margin:0; font-size:.95rem; color:#5a6772; }
.clients-count { font-size:.7rem; font-weight:600; letter-spacing:1.2px; color:#5b6a74; margin-left:auto; align-self:center; }
.highlight-filter { background:#1b6ea8!important; color:#fff!important; }
/* Enhancements */
.clients-grid.compact .client-card { padding:.6rem .7rem; font-size:.75rem; border-radius:10px; }
.clients-grid.compact .client-icon { width:30px; height:30px; font-size:.85rem; }
.client-card.mark { box-shadow:0 0 0 3px rgba(36,147,214,.35), 0 6px 20px -8px rgba(0,0,0,.35); }
.client-card .hl { background: linear-gradient(90deg,#ffe89c,#ffd15c); padding:0 2px; border-radius:4px; }
.clients-alpha-group { margin-top:2.5rem; }
.clients-alpha-title { font-size:.72rem; letter-spacing:2px; font-weight:700; color:#5d6f7a; margin:2.2rem 0 .75rem; text-transform:uppercase; position:relative; padding-left:1.1rem; }
.clients-alpha-title:before { content:""; position:absolute; left:0; top:50%; width:6px; height:6px; background:linear-gradient(135deg,#1b6ea8,#2493d6); border-radius:50%; transform:translateY(-50%); }
.clients-view-toggle { display:flex; gap:.4rem; }
.clients-view-toggle button { border:1px solid #c5d2db; background:#fff; padding:.45rem .7rem; font-size:.65rem; font-weight:600; letter-spacing:1px; border-radius:8px; cursor:pointer; text-transform:uppercase; color:#48606f; transition:.25s; }
.clients-view-toggle button.active, .clients-view-toggle button:hover { background:#1b6ea8; color:#fff; border-color:#1b6ea8; }
.portfolio-header { position:relative; }
.portfolio-header:after { content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:120px; height:1px; background:linear-gradient(90deg,transparent,#1b6ea8,transparent); opacity:.6; }

/* ====== ABOUT PAGE (Quiénes Somos) ====== */
.about-intro { max-width:1180px; margin:0 auto; padding: clamp(3rem,7vw,5rem) 1.25rem 1rem; display:grid; gap:2.5rem; }
@media(min-width:920px){ .about-intro-inner { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:3rem; align-items:start; } }
.about-intro-text p { margin:0 0 1.15rem; font-size:1.02rem; line-height:1.6; color:#2c353c; }
.about-intro-highlights { display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); align-content:start; }
.feature-card.mini { padding:1.1rem 1rem 1.2rem; gap:.55rem; }
.feature-card.mini h4 { font-size:1rem; }
.about-values-grid .feature-card { position:relative; }
.about-values-grid .feature-card:after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 85% 80%, rgba(27,110,168,.18), transparent 75%); opacity:0; transition:.6s; }
.about-values-grid .feature-card:hover:after { opacity:1; }

.about-quote-modern { max-width:980px; margin:0 auto; padding: clamp(2.5rem,6vw,4rem) 1.25rem 4.5rem; text-align:center; position:relative; }
.about-quote-modern:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 70% 30%, rgba(27,110,168,.08), transparent 70%); pointer-events:none; }
.about-quote-inner { display:flex; flex-direction:column; gap:1.5rem; align-items:center; }
.about-quote-logo img { max-height:90px; width:auto; filter:drop-shadow(0 4px 10px rgba(0,0,0,.15)); }
.about-quote-text { position:relative; font-size:clamp(1.15rem,1.8vw,1.45rem); line-height:1.5; font-weight:500; max-width:820px; margin:0 auto; color:#21343f; }
.about-quote-text p { margin:0; }
.quote-mark { color:#1b6ea8; display:inline-block; }
.quote-mark.left { margin-right:.5rem; }
.quote-mark.right { margin-left:.5rem; }
@media(min-width:720px){ .about-quote-text { font-size:clamp(1.25rem,1.9vw,1.55rem); } }

/* ====== BLOG INDEX ====== */
.blog-list-wrapper { max-width:1180px; margin:0 auto; padding: clamp(3rem,7vw,5rem) 1.25rem 4rem; display:grid; gap:2.5rem; }
.blog-list-header { text-align:center; }
.blog-list-header h1 { margin:0 0 .85rem; font-size:clamp(2rem,3.2vw,2.6rem); letter-spacing:.5px; }
.blog-list-header p { margin:0 auto; max-width:760px; font-size:1.02rem; color:#4a5a66; }
.blog-toolbar { display:flex; flex-wrap:wrap; gap:.85rem; justify-content:space-between; align-items:center; background:#fff; border:1px solid var(--color-border); padding:.85rem 1rem; border-radius:14px; box-shadow:0 4px 18px -6px rgba(0,0,0,.12); }
.blog-toolbar form { display:flex; flex:1 1 260px; gap:.6rem; }
.blog-toolbar input[type="search"] { flex:1; border:1px solid #d3dde5; border-radius:10px; padding:.55rem .85rem; font-size:.9rem; background:#f5f9fc; transition:.25s; }
.blog-toolbar input[type="search"]:focus { outline:none; border-color:#1b6ea8; background:#fff; box-shadow:0 0 0 3px rgba(27,110,168,.15); }
.blog-grid { display:grid; gap:2rem; }
@media(min-width:640px){ .blog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1040px){ .blog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.post-card { background:#fff; border:1px solid var(--color-border); border-radius:18px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 4px 16px -6px rgba(0,0,0,.1); position:relative; transition:.4s; }
.post-card:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 75% 20%, rgba(27,110,168,.18), transparent 70%); opacity:0; transition:.6s; }
.post-card:hover { transform:translateY(-6px); box-shadow:0 12px 32px -14px rgba(0,0,0,.28); }
.post-card:hover:before { opacity:1; }
.post-card { position:relative; }
.post-card-link { position:absolute; inset:0; z-index:5; text-indent:-9999px; overflow:hidden; border-radius:inherit; }
.post-card .post-body, .post-card .post-media { position:relative; z-index:10; }
.post-readmore { position:relative; z-index:15; }
.post-media { position:relative; aspect-ratio: 16/10; overflow:hidden; background:#d8e2ea; }
.post-media img { width:100%; height:100%; object-fit:cover; display:block; filter:brightness(.92); transition:transform .7s, filter .7s; }
.post-card:hover .post-media img { transform:scale(1.07); filter:brightness(.85); }
.post-body { padding:1.25rem 1.15rem 1.55rem; display:flex; flex-direction:column; gap:.85rem; flex:1; }
.post-tags { display:flex; flex-wrap:wrap; gap:.4rem; }
.post-tag { background:#e7f1f7; color:#1b567f; font-size:.62rem; padding:.38rem .55rem; border-radius:14px; letter-spacing:1px; font-weight:600; text-transform:uppercase; line-height:1; transition:.25s; }
.post-tag:hover { background:#1b6ea8; color:#fff; text-decoration:none; }
.post-title { margin:0; font-size:1.1rem; line-height:1.25; letter-spacing:.4px; }
.post-title a { color:#173a52; display:inline-block; }
.post-title a:hover { color:#1b6ea8; text-decoration:none; }
.post-excerpt { margin:0; font-size:.9rem; line-height:1.5; color:#4a5a66; }
.post-meta { margin-top:auto; display:flex; align-items:center; gap:.75rem; font-size:.68rem; letter-spacing:1.2px; text-transform:uppercase; color:#63727c; font-weight:600; }
.post-readmore { margin-left:auto; font-size:.7rem; letter-spacing:1.2px; background:#1b6ea8; color:#fff; padding:.55rem .85rem; border-radius:10px; font-weight:600; display:inline-flex; align-items:center; gap:.35rem; transition:.3s; }
.post-readmore:hover { background:#155682; text-decoration:none; }
.blog-pagination { display:flex; gap:.4rem; flex-wrap:wrap; margin:1rem 0 0; }
.blog-pagination .page-link, .blog-pagination a, .blog-pagination span { border:1px solid var(--color-border); background:#fff; padding:.55rem .85rem; border-radius:10px; font-size:.75rem; font-weight:600; letter-spacing:.5px; color:#3b4d59; display:inline-flex; align-items:center; justify-content:center; min-width:38px; transition:.25s; }
.blog-pagination .active span, .blog-pagination a:hover { background:#1b6ea8; color:#fff; border-color:#1b6ea8; text-decoration:none; }
.empty-posts { text-align:center; padding:3rem 1.25rem; border:2px dashed #c7d6e0; border-radius:18px; background:#fff; }
.empty-posts h3 { margin:0 0 .75rem; font-size:1.3rem; }
.empty-posts p { margin:0; font-size:.95rem; color:#5a6772; }

/* ====== BLOG POST ENHANCEMENTS ====== */
.post-hero { position:relative; background:linear-gradient(135deg,#0e3d5c,#114b70 55%,#15608c); color:#e9f5fb; display:flex; align-items:flex-end; min-height: clamp(240px,38vh,360px); overflow:hidden; }
.post-hero.has-image { background:#0d2535; }
.post-hero.has-image:before { content:""; position:absolute; inset:0; background:var(--post-hero-img, none) center/cover no-repeat; filter:brightness(.55); }
.post-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(9,28,44,.15) 0%, rgba(9,28,44,.7) 75%); }
.post-hero-inner { position:relative; z-index:2; width:100%; max-width:1180px; margin:0 auto; padding: clamp(2.5rem,6vw,3.75rem) 1.25rem clamp(2rem,4vw,2.75rem); display:flex; flex-direction:column; gap:1.25rem; }
.post-breadcrumbs { font-size:.62rem; letter-spacing:1.4px; text-transform:uppercase; font-weight:600; color:#c4dbe7; display:flex; gap:.55rem; flex-wrap:wrap; }
.post-breadcrumbs a { color:#9ed4f2; }
.post-breadcrumbs a:hover { text-decoration:underline; }
.post-hero h1 { margin:0; font-size:clamp(1.9rem,3.1vw,2.6rem); line-height:1.15; letter-spacing:.6px; background:linear-gradient(90deg,#ffffff,#cbefff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.post-meta-bar { display:flex; flex-wrap:wrap; gap:.6rem .8rem; font-size:.64rem; letter-spacing:1.2px; text-transform:uppercase; font-weight:600; color:#d2e8f3; }
.post-meta-bar .meta-item { display:inline-flex; gap:.35rem; align-items:center; }
.post-meta-bar i { font-size:.75rem; opacity:.85; }
.tag-chips { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.3rem; }
.tag-chip { background:#e7f1f7; color:#1b567f; font-size:.58rem; padding:.4rem .65rem; border-radius:18px; letter-spacing:1px; font-weight:600; text-transform:uppercase; transition:.25s; }
.tag-chip:hover { background:#1b6ea8; color:#fff; text-decoration:none; }
.share-inline-modern { display:flex; gap:.55rem; }
.share-inline-modern a { width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; background:#1b6ea8; color:#fff; border-radius:12px; font-size:.9rem; box-shadow:0 4px 14px -4px rgba(0,0,0,.4); transition:.3s; }
.share-inline-modern a:hover { background:#155682; text-decoration:none; }
.reading-progress { position:fixed; top:0; left:0; height:4px; background:linear-gradient(90deg,#1b6ea8,#2493d6); width:0%; z-index:200; box-shadow:0 0 0 1px rgba(0,0,0,.05); transition:width .1s linear; }
.blog-article .post-intro { font-size:1.05rem; line-height:1.55; color:#25323a; margin:0 0 1.8rem; font-weight:400; }
.blog-article .post-intro strong { color:#1b567f; }
.blog-sidebar .sticky-box { position:sticky; top:90px; display:flex; flex-direction:column; gap:1.4rem; }
.post-hero.compact { min-height:180px; }
.post-hero.compact .post-hero-inner { padding: clamp(1.6rem,4vw,2.4rem) 1.25rem clamp(1.2rem,3vw,1.8rem); gap:.9rem; }
.post-hero.compact h1 { font-size:clamp(1.55rem,2.4vw,2.05rem); }
.post-hero.ultra-compact { min-height:110px; }
.post-hero.ultra-compact .post-hero-inner { padding:1.1rem 1.1rem 1.15rem; }
.post-hero.no-text .post-hero-inner h1, .post-hero.no-text .post-hero-inner .post-breadcrumbs, .post-hero.no-text .post-hero-inner .post-meta-bar, .post-hero.no-text .post-hero-inner .tag-chips { display:none!important; }
.banner1.banner-tiny, .banner-small.banner-tiny { min-height:60px; padding:24px 0 20px; display:flex; align-items:center; }

/* ====== NAV MODERNO ====== */
.site-nav-modern { position:relative; background:#f8fafc; border-bottom:1px solid #e3edf3; box-shadow:0 2px 4px -2px rgba(0,0,0,.05); }
.site-nav-inner { max-width:1280px; margin:0 auto; padding:.85rem 1.25rem; display:flex; align-items:center; gap:2rem; }
.site-brand { display:flex; align-items:center; gap:.75rem; font-weight:600; font-size:1rem; color:#163447; text-decoration:none; letter-spacing:.4px; }
.site-brand img { height:46px; width:auto; display:block; }
.primary-links { list-style:none; margin:0; padding:0; display:flex; gap:1.6rem; flex:1; }
.primary-links li { margin:0; }
.primary-links a { position:relative; display:inline-flex; align-items:center; gap:.4rem; font-size:.78rem; letter-spacing:1.6px; text-transform:uppercase; font-weight:600; color:#223642; padding:.35rem 0; transition:.35s; text-decoration:none; }
.primary-links a:before { content:""; position:absolute; left:0; bottom:0; height:2px; width:0%; background:linear-gradient(90deg,#1b6ea8,#2493d6); transition:.4s cubic-bezier(.55,.1,.25,1); border-radius:2px; }
.primary-links a:hover:before { width:100%; }
.primary-links .active > a, .primary-links a.active { color:#1b6ea8; }
.primary-links .active > a:before, .primary-links a.active:before { width:100%; }
.auth-actions { display:flex; gap:.6rem; }
.auth-actions a { --btn-bg:#1b6ea8; background:var(--btn-bg); color:#fff!important; padding:.55rem .95rem; border-radius:26px; font-size:.68rem; letter-spacing:1.4px; font-weight:600; text-transform:uppercase; display:inline-flex; gap:.4rem; align-items:center; text-decoration:none; box-shadow:0 3px 10px -4px rgba(0,0,0,.25); transition:.3s; }
.auth-actions a:hover { background:#155682; }
.auth-actions a:nth-child(2){ --btn-bg:#2493d6; }
.nav-toggle { display:none; position:relative; width:38px; height:38px; border-radius:10px; border:1px solid #c9d6df; background:#fff; align-items:center; justify-content:center; cursor:pointer; transition:.35s; }
.nav-toggle span, .nav-toggle:before, .nav-toggle:after { content:""; display:block; width:18px; height:2px; background:#173a52; position:absolute; transition:.4s; border-radius:2px; }
.nav-toggle span { top:50%; left:50%; transform:translate(-50%,-50%); }
.nav-toggle:before { top:12px; left:50%; transform:translateX(-50%); }
.nav-toggle:after { bottom:12px; left:50%; transform:translateX(-50%); }
.nav-toggle.open:before { transform:translate(-50%,7px) rotate(45deg); }
.nav-toggle.open:after { transform:translate(-50%,-7px) rotate(-45deg); }
.nav-toggle.open span { opacity:0; }
@media (max-width:980px){
  .primary-links { position:absolute; top:100%; left:0; right:0; background:#ffffff; flex-direction:column; padding:1rem 1.25rem 1.4rem; gap:.2rem; border-bottom:1px solid #e3edf3; box-shadow:0 16px 28px -12px rgba(0,0,0,.18); transform:translateY(-18px); opacity:0; pointer-events:none; transition:.45s cubic-bezier(.55,.1,.25,1); }
  .primary-links.open { transform:translateY(0); opacity:1; pointer-events:auto; }
  .primary-links a { padding:.6rem 0; }
  .auth-actions { display:none; }
  .nav-toggle { display:inline-flex; }
}

/* ====== FOOTER MODERNO ====== */
.footer-modern { background:#f8fafc; border-top:1px solid #e3edf3; margin-top:4rem; font-size:.85rem; line-height:1.5; color:#2d3b45; }
.footer-modern.footer-has-bg { position:relative; background:#0f2535; color:#d8e6ef; }
.footer-modern.footer-has-bg:before { content:""; position:absolute; inset:0; background:var(--footer-bg, linear-gradient(135deg,#0e3d5c,#114b70 55%,#15608c)); background-size:cover; background-position:center; filter:brightness(.55) saturate(1.05); }
.footer-modern.footer-has-bg:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(9,28,44,.75) 0%, rgba(9,28,44,.82) 60%, rgba(9,28,44,.9) 100%); mix-blend-mode:normal; }
.footer-modern.footer-has-bg .footer-top,
.footer-modern.footer-has-bg .newsletter-bar,
.footer-modern.footer-has-bg .footer-contact-band,
.footer-modern.footer-has-bg .footer-meta { position:relative; z-index:2; }
.footer-modern.footer-has-bg .footer-top { color:#d8e6ef; }
.footer-modern.footer-has-bg a { color:#9ed4f2; }
.footer-modern.footer-has-bg a:hover { color:#ffffff; }
.footer-modern.footer-has-bg .footer-col h3 { color:#ffffff; }
.footer-modern.footer-has-bg .footer-col h3:after { background:linear-gradient(90deg,#58b7ec,#9ed4f2); }
.footer-modern.footer-has-bg .footer-nav li a:before { color:#58b7ec; }
.footer-modern.footer-has-bg .newsletter-bar { background:rgba(13,37,53,.75); backdrop-filter:blur(4px); }
.footer-modern.footer-has-bg .footer-contact-band { background:linear-gradient(115deg,#15608c,#1b6ea8); }
.footer-modern.footer-has-bg .footer-meta { background:#081823; color:#7fa0b2; }
.footer-separator { height:70px; background:linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(15,37,53,.08) 40%, rgba(15,37,53,.25) 100%); margin-top:4rem; }
.footer-modern a { color:#1b567f; }
.footer-modern a:hover { color:#155682; text-decoration:none; }
.footer-top { max-width:1280px; margin:0 auto; padding: clamp(2.8rem,6vw,4.2rem) 1.25rem 2.5rem; display:grid; gap:2.5rem; }
@media(min-width:820px){ .footer-top { grid-template-columns:320px 1fr 320px; align-items:start; } }
.footer-col h3 { margin:.15rem 0 1.15rem; font-size:1.05rem; letter-spacing:.6px; font-weight:600; position:relative; padding-bottom:.6rem; }
.footer-col h3:after { content:""; position:absolute; left:0; bottom:0; width:110px; height:2px; background:linear-gradient(90deg,#1b6ea8,#2493d6); border-radius:2px; }
.footer-brand { display:flex; flex-direction:column; gap:1rem; }
.footer-brand img { max-width:180px; height:auto; }
.footer-brand p { margin:0; font-size:.83rem; color:#485964; }
.footer-nav ul { list-style:none; padding:0; margin:0; display:grid; gap:.35rem; }
.footer-nav li a { display:inline-flex; gap:.55rem; align-items:center; font-size:.75rem; letter-spacing:1.3px; text-transform:uppercase; font-weight:600; color:#214055; position:relative; padding:.4rem 0; }
.footer-nav li a:before { content:"\2192"; font-size:.8rem; color:#1b6ea8; opacity:.9; }
.footer-nav li a:hover { color:#1b6ea8; }
.footer-social { display:flex; flex-direction:column; gap:1rem; }
.fb-embed-wrapper { background:#fff; border:1px solid #d8e3ea; border-radius:14px; padding:.75rem; box-shadow:0 2px 6px -2px rgba(0,0,0,.08); }
.whatsapp-inline { margin-top:1.1rem; }
.whatsapp-inline a { display:inline-flex; align-items:center; gap:.45rem; background:#2493d6; color:#fff!important; padding:.65rem 1.1rem; border-radius:30px; font-size:.7rem; letter-spacing:1.3px; font-weight:600; text-transform:uppercase; box-shadow:0 4px 14px -6px rgba(0,0,0,.35); transition:.35s; }
.whatsapp-inline a:hover { background:#1b6ea8; }

.newsletter-bar { background:#19456b; color:#e2f1f9; margin-top:0; }
.newsletter-inner { max-width:1280px; margin:0 auto; padding:1.6rem 1.25rem; display:grid; gap:1rem; }
@media(min-width:760px){ .newsletter-inner { grid-template-columns:1fr auto; align-items:center; } }
.newsletter-form { display:flex; gap:.85rem; width:100%; }
.newsletter-form input[type=email] { flex:1; border:1px solid #0f3652; background:#fff; border-radius:10px; padding:.85rem .95rem; font-size:.85rem; transition:.25s; color:#1c303d; }
.newsletter-form input[type=email]:focus { outline:none; border-color:#1b6ea8; box-shadow:0 0 0 3px rgba(27,110,168,.25); }
.newsletter-form button { --btn-bg:#2493d6; background:var(--btn-bg); color:#fff; border:none; border-radius:12px; font-size:.75rem; letter-spacing:1.2px; font-weight:600; padding:.85rem 1.4rem; cursor:pointer; display:inline-flex; align-items:center; gap:.5rem; box-shadow:0 4px 14px -4px rgba(0,0,0,.4); transition:.3s; }
.newsletter-form button:hover { background:#1b6ea8; }

.footer-contact-band { background:#2493d6; color:#fff; margin-top:0; }
.contact-band-inner { max-width:1280px; margin:0 auto; padding:1.9rem 1.25rem; display:grid; gap:2rem; text-align:center; }
@media(min-width:780px){ .contact-band-inner { grid-template-columns:repeat(4,1fr); } }
.contact-item { display:flex; flex-direction:column; gap:.65rem; font-size:.75rem; letter-spacing:.4px; }
.contact-item i { font-size:1.15rem; opacity:.9; }
.contact-item a { color:#fff; font-weight:600; }
.contact-item a:hover { text-decoration:underline; }

.footer-meta { background:#0d2535; color:#9fb4c2; font-size:.7rem; letter-spacing:1.4px; text-transform:uppercase; }
.footer-meta-inner { max-width:1280px; margin:0 auto; padding:.95rem 1.25rem; display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; justify-content:space-between; }
.footer-meta a { color:#fff; }
.footer-meta a:hover { color:#9ed4f2; }
.blog-mini-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.35rem; }
.blog-mini-list li a { position:relative; display:block; padding:.45rem .55rem .55rem 1rem; border-radius:8px; font-size:.8rem; line-height:1.25; font-weight:500; color:#2a3d49; background:linear-gradient(90deg,#f5f9fc,#ffffff); border:1px solid #e2e8f0; transition:.3s; }
.blog-mini-list li a:before { content:""; position:absolute; left:.45rem; top:50%; width:6px; height:6px; background:linear-gradient(135deg,#1b6ea8,#2493d6); border-radius:50%; transform:translateY(-50%); opacity:.85; }
.blog-mini-list li a:hover { background:#eef6fa; border-color:#c3d5e2; color:#155682; text-decoration:none; box-shadow:0 4px 14px -6px rgba(0,0,0,.15); }
.blog-mini-list li a:active { transform:translateY(1px); }
.blog-card h5 { font-size:.95rem; letter-spacing:.3px; }
/* ====== CONTACT PAGE ====== */
.contact-wrapper { max-width:1180px; margin:0 auto; padding: clamp(3rem,7vw,5rem) 1.25rem 4rem; display:grid; gap:2.75rem; }
.contact-header { text-align:center; }
.contact-header h1 { margin:0 0 .85rem; font-size:clamp(2rem,3.2vw,2.6rem); letter-spacing:.5px; }
.contact-header p { margin:0 auto; max-width:640px; font-size:1rem; color:#4a5a66; }
.contact-layout { display:grid; gap:2.5rem; }
@media(min-width:940px){ .contact-layout { grid-template-columns:minmax(0,1fr) 320px; align-items:start; } }
.contact-form-card { background:#fff; border:1px solid var(--color-border); border-radius:22px; padding:2.2rem 2rem 2.4rem; box-shadow:0 6px 26px -10px rgba(0,0,0,.15); position:relative; overflow:hidden; }
.contact-form-card:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 85% 20%, rgba(27,110,168,.15), transparent 70%); opacity:.5; pointer-events:none; }
.form-modern { display:grid; gap:1.3rem 1.4rem; }
@media(min-width:640px){ .form-modern.two-col { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.form-group-modern { display:flex; flex-direction:column; gap:.4rem; position:relative; }
.form-group-modern label { font-size:.7rem; letter-spacing:1.5px; font-weight:600; text-transform:uppercase; color:#4c5c67; }
.form-group-modern input,.form-group-modern textarea { border:1px solid #d1dbe3; background:#f5f9fc; border-radius:12px; padding:.85rem .95rem; font-size:.9rem; font-family:inherit; color:#25323a; resize:vertical; min-height:54px; transition:.28s; }
.form-group-modern textarea { min-height:150px; }
.form-group-modern input:focus,.form-group-modern textarea:focus { outline:none; background:#fff; border-color:#1b6ea8; box-shadow:0 0 0 3px rgba(27,110,168,.18); }
.form-error { font-size:.65rem; color:#b64040; font-weight:600; margin-top:.25rem; letter-spacing:.5px; }
.contact-actions { margin-top:1rem; display:flex; gap:1rem; }
.contact-actions .btn-modern { --btn-bg:#1b6ea8; --btn-bg-hover:#155682; padding:.95rem 1.5rem; font-size:.85rem; letter-spacing:.8px; }
.contact-info-aside { display:flex; flex-direction:column; gap:1.25rem; }
.info-card { background:#fff; border:1px solid var(--color-border); border-radius:18px; padding:1.25rem 1.15rem 1.35rem; display:flex; gap:.85rem; align-items:flex-start; box-shadow:0 4px 14px -6px rgba(0,0,0,.1); position:relative; overflow:hidden; transition:.4s; }
.info-card:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 75% 25%, rgba(27,110,168,.18), transparent 70%); opacity:0; transition:.6s; }
.info-card:hover { transform:translateY(-4px); box-shadow:0 10px 28px -12px rgba(0,0,0,.25); }
.info-card:hover:before { opacity:1; }
.info-icon { width:46px; height:46px; background:linear-gradient(135deg,#1b6ea8,#2493d6); color:#fff; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:1.15rem; box-shadow:0 4px 12px -4px rgba(0,0,0,.35); flex-shrink:0; }
.info-text h4 { margin:0 0 .25rem; font-size:.9rem; letter-spacing:.5px; font-weight:600; color:#173b53; }
.info-text p { margin:0; font-size:.78rem; line-height:1.35; color:#4d5d67; }
.contact-small-email { font-size:.7rem; word-break:break-all; line-height:1.25; }
.contact-small-email .link-email { color:#1b6ea8; font-weight:600; }
.contact-small-email .link-email:hover { text-decoration:underline; }
.map-wrapper { margin-top:3rem; background:#0d2535; position:relative; }
.map-wrapper .map-heading { text-align:center; padding: clamp(2.5rem,6vw,4rem) 1.25rem 1.25rem; color:#f2f8fb; }
.map-heading h2 { margin:0 0 .75rem; font-size:clamp(1.9rem,2.7vw,2.4rem); letter-spacing:.5px; }
.map-heading p { margin:0; font-size:.95rem; color:#c2d8e4; }
.map-embed { aspect-ratio:16/7; width:100%; overflow:hidden; position:relative; }
.map-embed iframe { width:100%; height:100%; border:0; display:block; }
.map-wrapper.no-map { padding:0 1.25rem 2.5rem; background:#0d2535; }
.map-wrapper.no-map .map-heading { padding: clamp(2rem,5vw,2.8rem) 0 0; }
.map-wrapper.no-map .map-heading h2 { margin-bottom:.35rem; }
.map-wrapper.no-map .map-heading p { font-size:.8rem; opacity:.75; }
.map-wrapper.no-map .map-embed { display:none; }

