/**
 * AGP · Agentes Portuarios S.A.S. - Global CSS Variables & System Tokens
 */
:root {
  --agp-ink: #101727;
  --agp-ink-2: #18233d;
  --agp-ink-dark: #080c15;
  --agp-yellow: #ffbd00;
  --agp-yellow-hover: #e5aa00;
  --agp-yellow-soft: #ffd54f;
  --agp-paper: #f6f6f3;
  --agp-white: #ffffff;
  --agp-line: #d8d9dc;
  --agp-line-dark: #2b3344;
  --agp-muted: #667084;
  --agp-gray-bg: #e8e9ea;
  --agp-radius-lg: 2.1rem;
  --agp-radius-md: 1.35rem;
  --agp-radius-sm: 0.85rem;
  --agp-max: 1440px;
  --agp-pad: clamp(1.25rem, 3.5vw, 3.5rem);
  --agp-font: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --agp-font-serif: Georgia, "Times New Roman", serif;
  --agp-shadow-sm: 0 4px 12px rgba(16, 23, 39, 0.06);
  --agp-shadow-md: 0 12px 40px rgba(16, 23, 39, 0.14);
  --agp-shadow-lg: 0 24px 60px rgba(16, 23, 39, 0.2);
  --agp-transition: all 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Base resets within AGP components */
.agp-widget-wrap {
  font-family: var(--agp-font);
  color: var(--agp-ink);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
}

.agp-widget-wrap *,
.agp-widget-wrap *::before,
.agp-widget-wrap *::after {
  box-sizing: border-box;
}

.agp-section-pad {
  width: 100%;
  box-sizing: border-box;
}

/* Unified Container & Max-Width Standard for All AGP Widgets */
.agp-container,
.agp-nav-shell,
.agp-rate-static-content,
.agp-hero-grid,
.agp-trust-strip,
.agp-intro-container,
.agp-services-container,
.agp-process-container,
.agp-digital-grid,
.agp-commitment-card,
.agp-coverage-container,
.agp-contact-panel,
.agp-contact-page-grid,
.agp-page-hero-grid,
.agp-locations-layout,
.agp-location-cta > div,
.agp-footer-main,
.agp-footer-bottom {
  width: 100%;
  max-width: var(--agp-max, 1440px);
  margin-inline: auto;
  box-sizing: border-box;
}

.agp-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.76rem;
  font-weight: 760;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #5d6574;
}

.agp-kicker.light {
  color: #aeb6c6;
}

.agp-button {
  min-height: 3.35rem;
  padding: 0.9rem 1.6rem;
  border-radius: 999px;
  border: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 760;
  font-size: 0.95rem;
  transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  cursor: pointer;
  text-decoration: none;
  line-height: 1;
}

.agp-button:hover {
  transform: translateY(-2px);
}

.agp-button-dark {
  background: var(--agp-ink);
  color: var(--agp-white) !important;
}

.agp-button-dark:hover {
  background: var(--agp-ink-2);
  box-shadow: 0 6px 20px rgba(16, 23, 39, 0.25);
}

.agp-button-yellow {
  background: var(--agp-yellow);
  color: var(--agp-ink) !important;
  border: 0;
}

.agp-button-yellow:hover {
  background: var(--agp-yellow-hover);
  box-shadow: 0 6px 20px rgba(255, 189, 0, 0.35);
}

.agp-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding-block: 0.25rem;
  border-bottom: 1px solid currentColor;
  font-weight: 740;
  font-size: 0.92rem;
  text-decoration: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.agp-text-link:hover {
  opacity: 0.85;
  transform: translateX(2px);
}

.agp-dark-link {
  color: var(--agp-ink);
}

/* Animations */
.agp-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.agp-reveal.is-visible {
  opacity: 1;
  transform: none;
}

@keyframes agp-ticker-roll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@keyframes agp-spin {
  to { transform: rotate(360deg); }
}

@keyframes agp-pulse {
  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(72, 168, 114, 0.7); }
  70% { transform: scale(1); box-shadow: 0 0 0 10px rgba(72, 168, 114, 0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(72, 168, 114, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .agp-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .agp-ticker-track,
  .agp-rate-track {
    animation: none !important;
  }
}

/* v1.1.4 · Margen lateral universal (blindado): Elementor guarda "padding: 40px 0 40px 0" en cada sección
   y eso dejaba el contenido pegado a las paredes. Aquí el gutter lateral se impone siempre. */
.agp-widget-wrap .agp-section-pad,
.agp-widget-wrap.agp-trust-strip-wrapper,
.agp-widget-wrap .agp-nav-shell,
.agp-widget-wrap .agp-rate-static-content,
.agp-widget-wrap .agp-footer-main,
.agp-widget-wrap .agp-footer-bottom {
  padding-inline: var(--agp-pad, clamp(1.25rem, 3.5vw, 3.5rem)) !important;
}
