.elementor-kit-6{--e-global-color-text:#000000;--e-global-color-primary:#004B62;--e-global-color-secondary:#002A38;--e-global-color-accent:#380B29;--e-global-color-ee51cb2:#63053B;--e-global-color-d825ece:#07E0E0;--e-global-color-85d3cef:#E89EA7;--e-global-color-e3ee045:#F2EBE3;--e-global-color-f8d6168:#F5F4F0;--e-global-color-bc1bd2d:#FFFFFF;--e-global-color-a4c96ed:#000000;--e-global-color-5711574:#F7F7F9;--e-global-color-5eb2c7d:#FFFFFF00;--e-global-typography-primary-font-family:"Alliance No.2";--e-global-typography-primary-font-weight:normal;--e-global-typography-secondary-font-family:"Alliance No.2";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Alliance No.2";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Alliance No.2";--e-global-typography-accent-font-weight:500;--e-global-typography-048def6-font-family:"Alliance No.2";--e-global-typography-048def6-font-size:15px;--e-global-typography-048def6-font-weight:500;font-family:"Alliance No.2", Sans-serif;font-size:16px;font-weight:normal;--e-page-transition-entrance-animation:e-page-transition-slide-out-down;--e-page-transition-exit-animation:e-page-transition-slide-in-down;--e-page-transition-animation-duration:1200ms;--e-preloader-animation:flash;--e-preloader-animation-duration:2000ms;--e-preloader-delay:0ms;--e-preloader-width:60px;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:#000000;font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:#FFFFFF;}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{background-color:#FFFFFF;color:#000000;border-style:solid;border-width:1px 1px 1px 1px;border-color:#000000;border-radius:0px 0px 0px 0px;}.elementor-kit-6 e-page-transition{background-color:var( --e-global-color-5711574 );}.elementor-kit-6 a{font-family:"Alliance No.2", Sans-serif;}.elementor-kit-6 h1{font-family:"Alliance No.2", Sans-serif;font-size:6em;font-weight:400;line-height:1em;}.elementor-kit-6 h2{font-family:"Alliance No.2", Sans-serif;font-size:3.5em;font-weight:400;line-height:1em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;--container-default-padding-top:0.5em;--container-default-padding-right:0.5em;--container-default-padding-bottom:0.5em;--container-default-padding-left:0.5em;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-6 h1{font-size:4em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* =========================
   ROOT & VARIABLES GLOBALES
   ========================= */
:root {
  /* Colores tema */
  --footer-bg-base: linear-gradient(90deg, #333333 0%, #1b1b1b 45%, #000000 100%);
  --footer-glow-color: rgba(170, 120, 75, 0.55);

  /* Tema servicios */
  --puc-theme-main: #004b62;
  --puc-theme-dark: 0, 97, 118;
  --puc-bg-1: #d7ebf2;
  --puc-bg-2: #eef7fa;
  --puc-bg-3: #f8fbfc;
  --puc-bg-4: #d6e8ef;
  --puc-bg-5: #bfdbe4;

  /* Tipografía */
  --font-xxs: clamp(0.625rem, 0.45vw, 0.75rem) !important;
  --font-xs: clamp(0.75rem, 0.7vw, 0.875rem) !important;
  --font-sm: clamp(0.875rem, 0.95vw, 1rem) !important;
  --font-base: clamp(1rem, 1.2vw, 1.125rem) !important;
  --font-md: clamp(1.25rem, 1.8vw, 1.5rem) !important;
  --font-lg: clamp(1.5rem, 2.2vw, 1.75rem) !important;
  --font-xl: clamp(1.75rem, 2.8vw, 2.25rem) !important;
  --font-xxl: clamp(2.25rem, 4vw, 3.5rem) !important;
  --font-xxxl: clamp(3rem, 6vw, 5rem) !important;

  --lh-xxs: 1.3 !important;
  --lh-xs: 1.35 !important;
  --lh-sm: 1.4 !important;
  --lh-base: 1.5 !important;
  --lh-md: 1.35 !important;
  --lh-lg: 1.2 !important;
  --lh-xl: 1.1 !important;
  --lh-xxl: 1.05 !important;
  --lh-xxxl: 1 !important;

  /* Botones */
  --btn-font-sm: clamp(0.6rem, 0.55vw, 0.7rem);
  --btn-font-base: clamp(0.68rem, 0.7vw, 0.8rem);
  --btn-font-lg: clamp(0.75rem, 0.8vw, 0.9rem);
  --btn-lh-sm: 1.2;
  --btn-lh-base: 1.25;
  --btn-lh-lg: 1.25;
  --btn-height-sm: 38px;
  --btn-height-base: 44px;
  --btn-height-lg: 50px;
  --btn-py-sm: .55rem;
  --btn-px-sm: .9rem;
  --btn-py-base: .75rem;
  --btn-px-base: 1.2rem;
  --btn-py-lg: .9rem;
  --btn-px-lg: 1.5rem;
}

/* =========================
   TEMAS
   ========================= */
.theme-defense {
  --footer-glow-color: rgba(0, 75, 98, 0.65);
  --primary: #004b62 !important;
  --inactive: #8F8F8F !important;
}

body.theme-defense,
body.theme-defensa {
  --puc-theme-main: #004b62;
  --puc-theme-dark: 0, 97, 118;
  --puc-bg-1: #d7ebf2;
  --puc-bg-2: #eef7fa;
  --puc-bg-3: #f8fbfc;
  --puc-bg-4: #d6e8ef;
  --puc-bg-5: #bfdbe4;
}

.theme-attack {
  --footer-glow-color: rgba(120, 20, 45, 0.65);
  --primary: #63053b !important;
  --inactive: #8F8F8F !important;
}

body.theme-attack,
body.theme-ataque {
  --puc-theme-main: #63053b;
  --puc-theme-dark: 99, 5, 59;
  --puc-bg-1: #f3d9e7;
  --puc-bg-2: #f8eaf1;
  --puc-bg-3: #fffafd;
  --puc-bg-4: #e7c8d8;
  --puc-bg-5: #d8adc3;
}

/* =========================
   RESET BASE
   ========================= */
html {
  font-size: 16px !important;
  overflow-x: clip;
}

body {
  font-size: 1rem !important;
  overflow-x: clip;
}

ul {
  margin-block-end: .9rem;
}

body.page-id-71 .hide-on-contact {
  display: none !important;
}

/* =========================
   TIPOGRAFÍA
   ========================= */
h1 {
  font-size: var(--font-xxl) !important;
  line-height: var(--lh-xxl) !important;
  margin-block-end: 0;
  margin-block-start: 0;
}

h2 {
  font-size: var(--font-lg) !important;
  line-height: var(--lh-lg) !important;
  margin-block-end: 0;
  margin-block-start: 0;
}

p {
  font-size: var(--font-base) !important;
  line-height: var(--lh-base) !important;
}

.font-caps {
  text-transform: uppercase !important;
}

.font-xxs, .font-xxs * { font-size: var(--font-xxs) !important; line-height: var(--lh-xxs) !important; }
.font-xs,  .font-xs *  { font-size: var(--font-xs)  !important; line-height: var(--lh-xs)  !important; }
.font-sm,  .font-sm *  { font-size: var(--font-sm)  !important; line-height: var(--lh-sm)  !important; }
.font-base,.font-base *{ font-size: var(--font-base)!important; line-height: var(--lh-base)!important; }
.font-md,  .font-md *  { font-size: var(--font-md)  !important; line-height: var(--lh-md)  !important; }
.font-lg,  .font-lg *  { font-size: var(--font-lg)  !important; line-height: var(--lh-lg)  !important; }
.font-xl,  .font-xl *  { font-size: var(--font-xl)  !important; line-height: var(--lh-xl)  !important; }
.font-xxl, .font-xxl * { font-size: var(--font-xxl) !important; line-height: var(--lh-xxl) !important; }
.font-xxxl,.font-xxxl *{ font-size: var(--font-xxxl)!important; line-height: var(--lh-xxxl)!important; }

.font-light *, h2.font-light, h3.font-light, h4.font-light, h5.font-light, div.font-light { font-weight: 300 !important; }
.font-regular *, h2.font-regular, h3.font-regular, h4.font-regular, h5.font-regular { font-weight: 400 !important; }
.font-medium *, h2.font-medium, h3.font-medium, h4.font-medium, h5.font-medium { font-weight: 500 !important; }
.font-bold *, h2.font-bold, h3.font-bold, h4.font-bold, h5.font-bold, .font-base.font-bold { font-weight: 600 !important; }
strong, b, .font-light b, .font-light strong, .font-regular b, .font-regular strong { font-weight: 500 !important; }

.font-crop span { display: block; }

@media (max-width: 767px) {
  :root {
    --font-xxs: clamp(0.56rem, 2.2vw, 0.68rem) !important;
    --font-xs: clamp(0.68rem, 2.6vw, 0.78rem) !important;
    --font-sm: clamp(0.78rem, 3vw, 0.9rem) !important;
    --font-base: clamp(0.9rem, 3.6vw, 1rem) !important;
    --font-md: clamp(1.05rem, 4.4vw, 1.22rem) !important;
    --font-lg: clamp(1.22rem, 5.2vw, 1.45rem) !important;
    --font-xl: clamp(1.45rem, 6.4vw, 1.8rem) !important;
    --font-xxl: clamp(1.8rem, 8vw, 2.35rem) !important;
    --font-xxxl: clamp(2rem, 10vw, 2.8rem) !important;
    --lh-xxs: 1.3 !important;
    --lh-xs: 1.35 !important;
    --lh-sm: 1.38 !important;
    --lh-base: 1.45 !important;
    --lh-md: 1.28 !important;
    --lh-lg: 1.16 !important;
    --lh-xl: 1.08 !important;
    --lh-xxl: 1 !important;
    --lh-xxxl: 0.95 !important;
  }

  .font-crop span { display: inline; }
}

/* =========================
   LINKS
   ========================= */
.elementor-widget-theme-post-content a {
  color: #000000;
  text-decoration: underline !important;
}
.elementor-widget-theme-post-content a:hover {
  color: #fff;
  background-color: #000;
  text-decoration: none !important;
}
p > a,
.elementor-widget-text-editor a {
  color: #000 !important;
}
p > a:hover,
.elementor-widget-text-editor a:hover {
  color: #000 !important;
  text-decoration: underline !important;
}

/* =========================
   BORDES UTILITARIOS
   ========================= */
.border-top    { border-top:    0.5px solid #000; }
.border-bottom { border-bottom: 0.5px solid #000; }
.border-left   { border-left:   0.5px solid #000; }
.border-right  { border-right:  0.5px solid #000; }

/* =========================
   FONDOS / BACKGROUNDS
   ========================= */
.bg-gris {
  background-color: #f7f7f9;
}

.bg-home {
  position: relative;
  overflow: hidden;
  background: #ffffff;
}
.bg-home::before {
  content: "";
  position: absolute;
  width: 55vw;
  height: 55vw;
  left: -28vw;
  top: -24vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(204,160,122,0.75) 0%, rgba(204,160,122,0.35) 35%, rgba(204,160,122,0.12) 58%, transparent 78%);
  filter: blur(70px);
  opacity: 0.9;
  z-index: 0;
  animation: warmMove 12s ease-in-out infinite alternate;
}
.bg-home::after {
  content: "";
  position: absolute;
  width: 110vw;
  height: 45vw;
  left: -30vw;
  bottom: -30vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(120,92,145,0.95) 0%, rgba(120,92,145,0.65) 30%, rgba(120,92,145,0.30) 55%, transparent 82%);
  filter: blur(75px);
  opacity: 1;
  z-index: 0;
  animation: purpleMove 14s ease-in-out infinite alternate;
}
.bg-home > * { z-index: 1; }

@keyframes warmMove {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(20px,16px) scale(1.04); }
}
@keyframes purpleMove {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(26px,-18px) scale(1.05); }
}

.bg-defensa {
  position: relative;
  overflow: hidden;
  background: #ffffff;
}
.bg-defensa::before {
  content: "";
  position: absolute;
  width: 100vw;
  height: 100vw;
  left: 40vw;
  top: 40vh;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0,75,98,1) 0%, rgba(0,75,98,0.75) 18%, rgba(0,75,98,0.35) 38%, transparent 80%);
  filter: blur(20px);
  opacity: 1;
  z-index: 0;
  animation: darkBlueMove 10s ease-in-out infinite alternate;
}
.bg-defensa::after {
  content: "";
  position: absolute;
  width: 70vw;
  height: 70vw;
  left: -35vw;
  top: -35vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(177,208,229,1) 0%, rgba(177,208,229,0.55) 35%, transparent 72%);
  filter: blur(100px);
  opacity: 0.95;
  z-index: 0;
  animation: lightBlueMove 13s ease-in-out infinite alternate;
}
.bg-defensa > * { z-index: 1; }

@keyframes darkBlueMove {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(-18px,-14px) scale(1.03); }
}
@keyframes lightBlueMove {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(18px,14px) scale(1.02); }
}

.bg-ataque {
  position: relative;
  overflow: hidden;
  background: #ffffff;
}
.bg-ataque::before {
  content: "";
  position: absolute;
  width: 150vw;
  height: 150vw;
  left: 38vw;
  top: 28vh;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(99,5,59,0.95) 0%, rgba(99,5,59,0.72) 24%, rgba(99,5,59,0.42) 46%, rgba(99,5,59,0.16) 64%, transparent 84%);
  filter: blur(65px);
  opacity: 1;
  z-index: 0;
  animation: darkAttackMove 10s ease-in-out infinite alternate;
}
.bg-ataque::after {
  content: "";
  position: absolute;
  width: 75vw;
  height: 75vw;
  left: -38vw;
  top: 58vh;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,205,235,0.95) 0%, rgba(255,205,235,0.5) 35%, transparent 72%);
  filter: blur(100px);
  opacity: 0.85;
  z-index: 0;
  animation: lightAttackMove 13s ease-in-out infinite alternate;
}
.bg-ataque > * { position: relative; z-index: 1; }

@keyframes darkAttackMove {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(-18px,-14px) scale(1.03); }
}
@keyframes lightAttackMove {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(18px,14px) scale(1.02); }
}

.bg-dark-right {
  position: relative;
  overflow: clip;
  background:
    radial-gradient(circle at 82% 6%, rgba(155,115,165,0.45), transparent 26%),
    radial-gradient(circle at 88% 78%, rgba(190,135,80,0.55), transparent 34%),
    radial-gradient(circle at 54% 48%, rgba(25,80,105,0.38), transparent 36%),
    linear-gradient(90deg, #000000 0%, #02040f 42%, #1d2528 68%, #7a5a42 100%);
  border-radius: 8px;
}
.bg-dark-right::before {
  content: "";
  position: absolute;
  width: 70vw;
  height: 70vw;
  right: -22vw;
  bottom: -32vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(190,135,80,0.6), transparent 62%);
  filter: blur(80px);
  opacity: 0.8;
  mix-blend-mode: screen;
  animation: warmLightMoveRight 8s ease-in-out infinite alternate;
  z-index: 0;
}
.bg-dark-right::after {
  content: "";
  position: absolute;
  width: 55vw;
  height: 55vw;
  right: -10vw;
  top: -22vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(145,105,165,0.5), transparent 60%);
  filter: blur(90px);
  opacity: 0.75;
  mix-blend-mode: screen;
  animation: purpleLightMoveRight 10s ease-in-out infinite alternate;
  z-index: 0;
}
.bg-dark-right > * { position: relative; z-index: 1; }

@keyframes warmLightMoveRight {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(-70px,-45px) scale(1.12); }
}
@keyframes purpleLightMoveRight {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(-45px,60px) scale(1.08); }
}

.bg-dark-left {
  position: relative;
  overflow: clip;
  background:
    radial-gradient(circle at 18% 6%, rgba(155,115,165,0.45), transparent 26%),
    radial-gradient(circle at 12% 78%, rgba(190,135,80,0.55), transparent 34%),
    radial-gradient(circle at 46% 48%, rgba(25,80,105,0.38), transparent 36%),
    linear-gradient(90deg, #7a5a42 0%, #1d2528 32%, #02040f 58%, #000000 100%);
  border-radius: 8px;
}
.bg-dark-left::before {
  content: "";
  position: absolute;
  width: 70vw;
  height: 70vw;
  left: -22vw;
  bottom: -32vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(190,135,80,0.6), transparent 62%);
  filter: blur(80px);
  opacity: 0.8;
  mix-blend-mode: screen;
  animation: warmLightMoveLeft 8s ease-in-out infinite alternate;
  z-index: 0;
}
.bg-dark-left::after {
  content: "";
  position: absolute;
  width: 55vw;
  height: 55vw;
  left: -10vw;
  top: -22vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(145,105,165,0.5), transparent 60%);
  filter: blur(90px);
  opacity: 0.75;
  mix-blend-mode: screen;
  animation: purpleLightMoveLeft 10s ease-in-out infinite alternate;
  z-index: 0;
}
.bg-dark-left > * { position: relative; z-index: 1; }

@keyframes warmLightMoveLeft {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(70px,-45px) scale(1.12); }
}
@keyframes purpleLightMoveLeft {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(45px,60px) scale(1.08); }
}

.footer-bg {
  position: relative;
  overflow: hidden;
  background: var(--footer-bg-base);
  border-radius: 8px;
}
.footer-bg::before {
  content: "";
  position: absolute;
  width: 80vw;
  height: 80vw;
  left: -30vw;
  bottom: -40vw;
  border-radius: 50%;
  background: radial-gradient(circle, var(--footer-glow-color), transparent 62%);
  filter: blur(70px);
  opacity: 0.85;
  mix-blend-mode: screen;
  animation: warmLightMove 8s ease-in-out infinite alternate;
  z-index: 0;
}
.footer-bg > * { position: relative; z-index: 1; }

.footer-bg-dark {
  position: relative;
  overflow: hidden;
  background: linear-gradient(90deg, #333333 0%, #1b1b1b 45%, #000000 100%);
  border-radius: 8px;
}
.footer-bg-dark::before {
  content: "";
  position: absolute;
  width: 80vw;
  height: 80vw;
  left: -30vw;
  bottom: -40vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(170,120,75,0.55), transparent 62%);
  filter: blur(70px);
  opacity: 0.85;
  mix-blend-mode: screen;
  animation: warmLightMove 8s ease-in-out infinite alternate;
  z-index: 0;
}
.footer-bg-dark > * { position: relative; z-index: 1; }

@keyframes warmLightMove {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(80px,-45px) scale(1.12); }
}

/* =========================
   LÍNEAS VERTICALES
   ========================= */
.line-top-white,
.line-top-black,
.line-bottom-white,
.line-bottom-black {
  position: relative;
  overflow-x: clip;
  overflow-y: visible;
}
.line-top-white,
.line-top-black {
  padding-top: 120px !important;
}
.line-bottom-white,
.line-bottom-black {
  padding-bottom: 120px !important;
}
.line-top-white::before,
.line-top-black::before {
  content: "";
  position: absolute;
  left: calc(50% - 0.5px);
  top: 0;
  width: 1px;
  height: 120px;
  z-index: 10;
  pointer-events: none;
}
.line-top-white::before  { background: #fff; }
.line-top-black::before  { background: #000; }

.line-bottom-white::after,
.line-bottom-black::after {
  content: "";
  position: absolute;
  left: calc(50% - 0.5px);
  bottom: 0;
  width: 1px;
  height: 120px;
  z-index: 10;
  pointer-events: none;
}
.line-bottom-white::after { background: #fff; }
.line-bottom-black::after { background: #000; }

@media (max-width: 767px) {
  .line-top-white,
  .line-top-black  { padding-top: 60px !important; }
  .line-bottom-white,
  .line-bottom-black { padding-bottom: 60px !important; }
  .line-top-white::before,
  .line-top-black::before  { height: 60px; }
  .line-bottom-white::after,
  .line-bottom-black::after { height: 60px; }
}

/* =========================
   CORNER FRAME
   ========================= */
.corner-frame {
  position: relative;
  padding: clamp(10px, 2vw, 24px);
}
.corner-frame::before,
.corner-frame::after {
  content: "";
  position: absolute;
  inset: 0px;
  pointer-events: none;
  background:
    linear-gradient(#004b62,#004b62) top left    / 10px 1px no-repeat,
    linear-gradient(#004b62,#004b62) top left    / 1px 10px no-repeat,
    linear-gradient(#004b62,#004b62) top right   / 10px 1px no-repeat,
    linear-gradient(#004b62,#004b62) top right   / 1px 10px no-repeat,
    linear-gradient(#004b62,#004b62) bottom left / 10px 1px no-repeat,
    linear-gradient(#004b62,#004b62) bottom left / 1px 10px no-repeat,
    linear-gradient(#004b62,#004b62) bottom right/ 10px 1px no-repeat,
    linear-gradient(#004b62,#004b62) bottom right/ 1px 10px no-repeat;
}

/* =========================
   ANIMACIONES GLOBALES
   ========================= */
.fade-up {
  opacity: 0;
  transform: translateY(-40px);
  transition: opacity 0.8s ease, transform 0.8s cubic-bezier(.2,.65,.3,1);
}
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

.fx-letters-words-drop .elementor-heading-title,
.fx-letters-words-drop {
  line-height: 1.08;
}
.fx-letters-words-drop .word-wrap {
  display: inline-block;
  overflow: hidden;
  vertical-align: baseline;
  padding-top: 0.08em;
  padding-bottom: 0.08em;
  white-space: nowrap;
}
.fx-letters-words-drop .char {
  display: inline-block;
  opacity: 0;
  will-change: transform, opacity, filter;
}
.fx-letters-words-drop.from-bottom .char { transform: translateY(100%); }
.fx-letters-words-drop.from-top .char    { transform: translateY(-100%); }
.fx-letters-words-drop.is-visible .char {
  animation: charDrop 0.75s cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes charDrop {
  to { transform: translateY(0); opacity: 1; }
}

.discover-more {
  position: relative;
}
.discover-more::after {
  content: "";
  position: absolute;
  left: 50%;
  top: calc(100%);
  transform: translateX(-50%);
  width: 1px;
  height: calc(100vh - 100% - 18px);
  min-height: 80px;
  max-height: 180px;
  background: #004b62;
  opacity: 1;
  animation: scroll-line-down 2.8s cubic-bezier(0.65,0,0.35,1) infinite;
}
@keyframes scroll-line-down {
  0%   { clip-path: inset(0 0 100% 0); }
  45%  { clip-path: inset(0 0 0 0); }
  60%  { clip-path: inset(0 0 0 0); }
  100% { clip-path: inset(100% 0 0 0); }
}

/* =========================
   GRILLA DECORATIVA
   ========================= */
.dapper-grid-wrap {
  width: var(--grid-size, 10vw);
  height: var(--grid-size, 10vw);
}
.dapper-grid-4x4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(4, 1fr);
  width: 100%;
  height: 100%;
}
.dapper-grid-4x4 span {
  display: block;
  background: var(--grid-color, var(--e-global-color-primary));
  opacity: 0;
  animation: dapperCellBlink var(--dur, 3s) linear infinite;
  animation-delay: var(--delay, 0s);
}
.dapper-grid-4x4 span.off {
  background: transparent;
  animation: none;
  opacity: 0;
}
@keyframes dapperCellBlink {
  0%   { opacity: 0; }
  20%  { opacity: 0; }
  40%  { opacity: 1; }
  80%  { opacity: 0; }
  100% { opacity: 0; }
}

/* =========================
   HEADER
   ========================= */
.header-menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.15);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .25s ease, visibility .25s ease;
}
/* DESKTOP: todo el header fijo */
.header-menu-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
}
/* TABLET + MOBILE */
@media (max-width: 1024px) {

  /* El header queda por encima del contenido, pero sube con la página */
  .header-menu-wrapper {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 9998;

    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  /* Anula el fondo blanco del sistema hide-scroll-header */
  .hide-scroll-header,
  .hide-scroll-header.header-scrolled {
    background: transparent !important;
    border-bottom: none !important;
  }

  /* Evita que el header completo se oculte */
  .hide-scroll-header.header-hidden {
    transform: none !important;
  }

  /* Solo el hamburger queda fijo */
  .pucara-hamburger {
    position: fixed !important;
    top: 20px;
    right: 20px;
    z-index: 9999;

    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;

    display: flex !important;
    align-items: center;
    justify-content: center;

    padding: 10px !important;
    box-sizing: border-box;

    border-radius: 50% !important;
    background-color: rgba(255, 255, 255, 0.82) !important;
  }

  .pucara-hamburger img,
  .pucara-hamburger svg {
    width: 28px !important;
    height: 28px !important;
    object-fit: contain;
    display: block;
  }
}
header:has(.header-menu-wrapper .e-n-menu-item .e-n-menu-dropdown-icon:hover) .header-menu-overlay,
header:has(.header-menu-wrapper .e-n-menu-item .e-n-menu-dropdown-icon[aria-expanded="true"]) .header-menu-overlay {
  opacity: 1;
  visibility: visible;
}

.hide-scroll-header {
  transition: transform 0.35s ease, background-color 0.35s ease, border-color 0.35s ease;
  background-color: transparent;
  border-bottom: 1px solid transparent;
}
.hide-scroll-header.header-hidden   { transform: translateY(-100%); }
.hide-scroll-header.header-scrolled {
  background: linear-gradient(216deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 51%, rgba(255,255,255,1) 100%);
  border-bottom: 1px solid #f5f4f0 !important;
}

.hide-scroll-header .main-menu,
.hide-scroll-header .main-lang { color: #000000; }
.hide-scroll-header .main-menu a,
.hide-scroll-header .main-lang a { color: inherit; }

.hide-scroll-header.header-scrolled .main-menu,
.hide-scroll-header.header-scrolled .main-lang { color: #000000; }
.hide-scroll-header.header-scrolled .main-menu a,
.hide-scroll-header.header-scrolled .main-lang a {
  color: #000000 !important;
  border-color: #000000 !important;
}
.hide-scroll-header.header-scrolled .main-menu a::before,
.hide-scroll-header.header-scrolled .main-menu a::after,
.hide-scroll-header.header-scrolled .main-lang a::before,
.hide-scroll-header.header-scrolled .main-lang a::after {
  background: #000000 !important;
  border-color: #000000 !important;
}

.hide-scroll-header .main-logo img { transition: filter 0.35s ease; }

/* =========================
   SUBMENU SERVICIOS
   ========================= */
.services-loop .elementor-loop-container {
  display: flex;
  gap: 10px;
}
.services-loop .e-loop-item {
  flex-grow: 1;
  flex-basis: 0;
  min-width: 0;
  transition: flex-grow .5s cubic-bezier(.22,1,.36,1), background-color .35s ease;
  background: #f8f8f8;
  border-radius: 5px;
}
.services-loop .e-loop-item > * { height: 100%; }
.services-loop:hover .e-loop-item { flex-grow: 1; }
.services-loop .e-loop-item:hover { flex-grow: 1.3; background-color: #f2f2f2; }

.service-item .arrow-wrapper { display: flex; justify-content: flex-end; }
.service-item .arrow-box {
  width: 33px; height: 33px;
  background: #fff;
  border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
  transition: background .35s ease;
}
.service-item .arrow-menu {
  width: 15px; height: 15px;
  display: block; fill: #000;
  position: absolute;
  transform: rotate(90deg);
  transition: transform .35s ease, fill .35s ease;
}
.service-item:hover .arrow-box { background: #000; }
.service-item:hover .arrow-box .arrow-menu { fill: #fff; }
.service-item .arrow-main   { transform: rotate(90deg) translate(0,0); }
.service-item .arrow-second { transform: translate(-34px,-34px) rotate(90deg); }
.service-item:hover .arrow-box .arrow-main   { transform: translate(34px,34px) rotate(90deg); }
.service-item:hover .arrow-box .arrow-second { transform: translate(0,0) rotate(90deg); }

/* =========================
   BOTONES
   ========================= */
.elementor-button {
  --btn-bg: #000000;
  --btn-color: #ffffff;
  --btn-border: transparent;
  --btn-fill: #ffffff;
  --btn-fill-text: #000000;
  --btn-fill-border: transparent;
  --btn-radius: 5px;
  --btn-shadow: 0 10px 24px rgba(0,0,0,.14);

  appearance: none;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: var(--btn-height-base);
  padding: var(--btn-py-base) var(--btn-px-base) !important;
  border-radius: var(--btn-radius) !important;
  border: 0px !important;
  background: var(--btn-bg) !important;
  color: var(--btn-color) !important;
  text-decoration: none;
  overflow: hidden;
  isolation: isolate;
  font-weight: 600 !important;
  font-size: var(--btn-font-base) !important;
  line-height: var(--btn-lh-base) !important;
  text-transform: uppercase;
  transition: color .22s ease, border-color .22s ease, transform .28s cubic-bezier(.22,1,.36,1), box-shadow .28s cubic-bezier(.22,1,.36,1), background-color .22s ease;
}
.elementor-button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--btn-fill);
  transform: translateY(101%);
  transition: transform .32s cubic-bezier(.22,1,.36,1);
  z-index: 0;
}
.elementor-button:hover::before { transform: translateY(0); }
.elementor-button .elementor-button-text,
.elementor-button .elementor-button-icon,
.elementor-button > span { position: relative; z-index: 1; }
.elementor-button:hover,
.elementor-button:hover .elementor-button-text,
.elementor-button:hover .elementor-button-icon { color: var(--btn-fill-text) !important; }
.elementor-button:hover {
  border-color: var(--btn-fill-border) !important;
  transform: translateY(-3px);
  box-shadow: var(--btn-shadow);
}
.elementor-button:active  { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.10); }
.elementor-button:focus-visible { outline: 2px solid rgba(59,99,255,.35); outline-offset: 3px; }

.btn-dark .elementor-button  { --btn-bg:#000; --btn-color:#fff; --btn-fill:#3b63ff; --btn-fill-text:#fff; border:0 !important; }
.btn-light .elementor-button { --btn-bg:#fff; --btn-color:#000; --btn-fill:#000;    --btn-fill-text:#fff; border:0 !important; }
.btn-outline .elementor-button {
  --btn-bg: transparent; --btn-color: #000; --btn-border: #000;
  --btn-fill: #000; --btn-fill-text: #fff; --btn-fill-border: #000;
  border: 1px solid #000000 !important;
}
.btn-sm .elementor-button { min-height:var(--btn-height-sm); padding:var(--btn-py-sm) var(--btn-px-sm) !important; font-size:var(--btn-font-sm) !important; line-height:var(--btn-lh-sm) !important; }
.btn-lg .elementor-button { min-height:var(--btn-height-lg); padding:var(--btn-py-lg) var(--btn-px-lg) !important; font-size:var(--btn-font-lg) !important; line-height:var(--btn-lh-lg) !important; }

/* =========================
   SERVICES OUTCOME CARDS
   ========================= */
.services-outcome {
  background: var(--primary);
  border: 0;
}

/* =========================
   SERVICES HOME
   ========================= */
.services-home-item .arrow,
.services-home-item .arrow * {
  fill: #fff !important;
  width: 30px;
  height: 30px;
}

/* =========================
   SERVICES PAGES
   ========================= */
.icon-services {
  min-height: 10em;
}

/* =========================
   NEWS & RESOURCES
   ========================= */
.noticia .arrow-wrapper { display: flex; justify-content: flex-end; }
.noticia .arrow-box {
  width: 33px; height: 33px;
  border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
  transition: background .35s ease;
}
.noticia .arrow-menu {
  width: 15px; height: 15px;
  display: block; fill: #fff;
  position: absolute;
  transform: rotate(90deg);
  transition: transform .35s ease, fill .35s ease;
}
.noticia:hover .arrow-box { background: #fff; }
.noticia:hover .arrow-box .arrow-menu { fill: #000; }
.noticia .arrow-main  { transform: rotate(180deg) translate(0,0); }
.noticia .arrow-second { transform: translate(34px,-34px) rotate(180deg); }
.noticia:hover .arrow-box .arrow-main  { transform: translate(-34px,34px) rotate(180deg); }
.noticia:hover .arrow-box .arrow-second { transform: translate(0,0) rotate(180deg); }

/* =========================
   PUC THREE — SECCIÓN SERVICIOS
   ========================= */
.puc-three {
  position: relative;
  height: 300vh;
}
.puc-three__sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  display: grid;
  grid-template-columns: 100px minmax(0,1fr) minmax(420px,1fr);
  overflow: hidden;
  background: #fff;
}
.puc-three__numbers {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
  padding-left: 48px;
}
.puc-three__num {
  position: relative;
  font-size: 14px;
  line-height: 1;
  color: var(--puc-theme-main);
  opacity: .28;
  transition: opacity .25s ease, transform .25s ease;
}
.puc-three__num::before {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(100% + 18px);
  width: 0;
  height: 1px;
  background: var(--puc-theme-main);
  opacity: 0;
  transition: width .25s ease, opacity .25s ease;
}
.puc-three__num.is-active { opacity: 1; transform: translateX(6px); }
.puc-three__num.is-active::before { width: 100vw; opacity: 1; }

.puc-three__text-window { height: 100vh; overflow: hidden; }
.puc-three__text-track  { will-change: transform; }
.puc-three__panel {
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: 84px;
  max-width: 720px;
}
.puc-three__panel h2,
.puc-three__panel h3 { color: var(--puc-theme-main); }
.puc-three__panel h2  { margin-bottom: 24px; }
.puc-three__panel p   { margin-bottom: 0; }
.puc-three__panel ul  { margin: 24px 0; padding-left: 20px; }
.puc-three__panel li  { margin-bottom: 12px; }
.puc-three__lead { color: var(--puc-theme-main); padding-bottom: 10px; }

.puc-three__visual {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-left: .5px solid var(--puc-theme-main);
  background:
    radial-gradient(circle at 100% 100%, rgba(var(--puc-theme-dark),.95) 0%, rgba(var(--puc-theme-dark),.72) 12%, rgba(var(--puc-theme-dark),.32) 22%, rgba(var(--puc-theme-dark),0) 38%),
    linear-gradient(135deg, var(--puc-bg-1) 0%, var(--puc-bg-2) 34%, var(--puc-bg-3) 52%, var(--puc-bg-4) 76%, var(--puc-bg-5) 100%);
}
.puc-three__visual::before {
  content: "";
  position: absolute;
  width: 70%; aspect-ratio: 1;
  right: -18%; bottom: -18%;
  z-index: 0; border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--puc-theme-dark),.45) 0%, rgba(var(--puc-theme-dark),.22) 34%, rgba(var(--puc-theme-dark),0) 70%);
  animation: pucGlowMove 8s ease-in-out infinite alternate;
}
.puc-three__visual::after {
  content: "";
  position: absolute;
  inset: -20%;
  z-index: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.42) 45%, transparent 60%);
  transform: translateX(-35%);
  opacity: .45;
  animation: pucLightSweep 7s ease-in-out infinite;
}
.puc-three__graphic-wrap {
  position: absolute; inset: 0; z-index: 2;
  display: flex; align-items: center; justify-content: center;
}
.puc-three__image {
  position: absolute;
  width: min(60%, 420px);
  height: auto; max-height: 54vh;
  object-fit: contain;
  opacity: 0;
  transform: translateY(8px) scale(.985);
  transition: opacity .42s ease, transform .42s ease;
}
.puc-three__image.is-visible { opacity: 1; transform: translateY(0) scale(1); }

.puc-three__corner { position: absolute; width: 1em; height: 1em; z-index: 3; pointer-events: none; }
.puc-three__corner--tl { top: 2em;    left: 2em;  border-top: 1px solid var(--puc-theme-main); border-left:  1px solid var(--puc-theme-main); }
.puc-three__corner--tr { top: 2em;    right: 2em; border-top: 1px solid var(--puc-theme-main); border-right: 1px solid var(--puc-theme-main); }
.puc-three__corner--bl { bottom: 2em; left: 2em;  border-bottom: 1px solid var(--puc-theme-main); border-left:  1px solid var(--puc-theme-main); }
.puc-three__corner--br { bottom: 2em; right: 2em; border-bottom: 1px solid var(--puc-theme-main); border-right: 1px solid var(--puc-theme-main); }

@keyframes pucGlowMove {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(-8%,-6%) scale(1.18); }
}
@keyframes pucLightSweep {
  0%   { transform: translateX(-45%); }
  55%  { transform: translateX(25%); }
  100% { transform: translateX(25%); }
}

@media (max-width: 1024px) {
  .puc-three { height: auto; }
  .puc-three__sticky {
    position: relative; height: auto;
    grid-template-columns: 72px 1fr;
    grid-template-rows: auto auto;
    overflow: visible;
  }
  .puc-three__visual {
    position: sticky; top: 0;
    grid-column: 1 / -1; grid-row: 1;
    height: 25vh; z-index: 5;
    border-left: none;
    border-bottom: .5px solid var(--puc-theme-main);
  }
  .puc-three__image { max-height: 20vh; }
  .puc-three__numbers {
    position: sticky; top: 25vh;
    grid-column: 1; grid-row: 2;
    align-self: start; height: auto;
    flex-direction: column; justify-content: flex-start;
    gap: 18px;
    padding: 2.2em 0 4em 1em;
    z-index: 4;
  }
  .puc-three__num::before { display: block; right: calc(100% + .65em); }
  .puc-three__num.is-active::before { width: 100vw; opacity: 1; }
  .puc-three__text-window { grid-column: 2; grid-row: 2; height: auto; overflow: visible; }
  .puc-three__text-track  { transform: none !important; }
  .puc-three__panel { height: auto; min-height: 58vh; padding: 2em 1em 2em 0; justify-content: flex-start; max-width: none; }
  .puc-three__corner { width: 0.5em; height: 0.5em; }
  .puc-three__corner--tl { top: 20%; left: 20%; }
  .puc-three__corner--tr { top: 20%; right: 20%; }
  .puc-three__corner--bl { bottom: 20%; left: 20%; }
  .puc-three__corner--br { bottom: 20%; right: 20%; }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .puc-three__visual  { height: 35vh; }
  .puc-three__image   { max-height: 30vh; width: min(55%, 360px); }
  .puc-three__numbers { top: 35vh; }
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Alliance No.2';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://pucara.io/wp-content/uploads/Alliance-No.2-Regular.woff2') format('woff2');
}
@font-face {
	font-family: 'Alliance No.2';
	font-style: normal;
	font-weight: 300;
	font-display: auto;
	src: url('https://pucara.io/wp-content/uploads/Alliance-No.2-Light.woff2') format('woff2');
}
@font-face {
	font-family: 'Alliance No.2';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://pucara.io/wp-content/uploads/Alliance-No.2-Medium.woff2') format('woff2');
}
@font-face {
	font-family: 'Alliance No.2';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://pucara.io/wp-content/uploads/Alliance-No.2-Bold.woff2') format('woff2');
}
/* End Custom Fonts CSS */