@import url('https://fonts.googleapis.com/css2?family=Google+Sans+Flex:opsz,wght@6..144,1..1000&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
@font-face {
  font-family: "Alverata";
  src: url("../fonts/Alverata.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
body.page-index.page-index {
  --navy: #13242c;
  --navy-deep: #0b1922;
  --teal: #07545b;
  --orange: #d76620;
  --orange-soft: #e98a4b;
  --ice: #e8f0f1;
  --ivory: #f7f5f1;
  --white: #ffffff;
  --ink: #1a2a32;
  --muted: #667178;
  --border: rgba(19, 36, 44, 0.17);
  --shadow-sm: 0 12px 30px rgba(11, 25, 34, 0.1);
  --shadow-lg: 0 28px 70px rgba(11, 25, 34, 0.18);
  --container: 1180px;
  --header-height: 76px;
}
body.page-index * {
  box-sizing: border-box;
  margin: 0;
}
body.page-index.page-index {
  scroll-behavior: smooth;
}
body.page-index {
  min-width: 320px;
  color: var(--ink);
  background: var(--white);
  font-family: "Montserrat", Arial, sans-serif;
  line-height: 1.6;
  overflow-x: hidden;
}
body.page-index.menu-open,
body.page-index.modal-open {
  overflow: hidden;
}
body.page-index a {
  color: inherit;
  text-decoration: none;
}
body.page-index button,
body.page-index input,
body.page-index select,
body.page-index textarea {
  font: inherit;
}
body.page-index button {
  color: inherit;
}
body.page-index h1,
body.page-index h2,
body.page-index h3 {
  color: var(--navy);
  font-family: "Alverata", Georgia, serif;
  line-height: 1.08;
}
body.page-index h1 {
  font-size: 54px;
}
body.page-index h2 {
  font-size: 32px;
  letter-spacing: -0.035em;
  text-transform: uppercase;
}
body.page-index p {
  color: var(--ink);
  font-size: 15px !important;
  text-align: justify;
}
.texto-inversiones {
  color: rgba(255, 255, 255, 0.82) !important;
}
body.page-index .container,
body.page-nosotros .container,
body.page-inversiones .container,
body.page-portafolio .container,
body.page-perspectivas .container {
  width: min(calc(100% - 40px), var(--container));
  margin-inline: auto;
}
body.page-index .section {
  position: relative;
  padding: 80px 0;
}
body.page-index .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  color: var(--orange);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
body.page-index .eyebrow::before {
  width: 42px;
  height: 2px;
  background: currentColor;
  content: "";
}
body.page-index .eyebrow-light {
  color: var(--orange-soft);
}
body.page-index .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 0 24px;
  border: 1px solid transparent;
  cursor: pointer;
  font-size: 0.76rem;
  font-weight: 700;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease;
}
body.page-index .button:hover,
body.page-index .button:focus-visible {
  transform: translateY(-3px);
}
body.page-index .button-primary {
  color: var(--white);
  background: var(--orange);
  box-shadow: 0 13px 32px rgba(215, 102, 32, 0.28);
}
body.page-index .button-outline-light {
  color: var(--white);
  border-color: rgba(255, 255, 255, 0.65);
  background: transparent;
}
body.page-index .button-outline-light:hover,
body.page-index .button-outline-light:focus-visible {
  color: var(--navy);
  background: var(--white);
}
body.page-index .button-dark {
  color: var(--white);
  background: var(--navy);
}
body.page-index .text-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 30px;
  font-size: 0.77rem;
  font-weight: 700;
  justify-content: flex-end;
}
body.page-index .page-progress span {
  display: block;
  width: 0;
  height: 100%;
  background: #D46A1F;
}
body.page-index .site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  color: var(--white);
  border-bottom: 1px solid rgba(255, 255, 255, 0.13);
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
body.page-index .site-header.scrolled {
  background: rgba(34, 21, 11, 0.96);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(16px);
}
body.page-index .brand {
  display: inline-flex;
  align-items: center;
  min-width: 130px;
}
body.page-index .brand-fallback {
  color: var(--orange);
  font-family: "Alverata", Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
}
body.page-index .hero {
  position: relative;
  display: flex;
  align-items: center;
  padding: 140px 0 95px;
  color: var(--white);
  background-position: center;
  background-size: cover;
  overflow: hidden;
}
body.page-index .hero::after {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: 90px 90px;
  content: "";
  pointer-events: none;
}
body.page-index .hero-content {
  position: relative;
  z-index: 2;
}
body.page-index .hero h1 {
  max-width: 630px;
  color: var(--white);
  text-transform: uppercase;
}
body.page-index .hero p {
  max-width: 680px;
  margin-top: 24px;
}
body.page-index .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  margin-top: 32px;
}
body.page-index .hero-scroll {
  position: absolute;
  right: 25px;
  bottom: 75px;
  z-index: 2;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}
body.page-index .section-intro {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 70px;
  align-items: flex-end;
  margin-bottom: 52px;
}
body.page-index .section-intro.compact {
  align-items: end;
}
body.page-index .section-intro h2 em {
  color: var(--orange);
  font-style: normal;
}
body.page-index .section-intro p {
  max-width: 620px;
}
body.page-index .about {
  background: var(--white);
  overflow: hidden;
}
body.page-index .flip-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
  perspective: 1500px;
  gap: 1px
}
body.page-index .flip-card {
  min-height: 215px;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  perspective: 1000px;
  outline: none;
  text-align: center !important;
}
body.page-index .flip-card-inner {
  position: relative;
  width: 100%;
  height: 215px;
  transition: transform 0.65s cubic-bezier(0.2, 0.72, 0.2, 1);
  transform-style: preserve-3d;
}
body.page-index .flip-card.is-flipped .flip-card-inner {
  transform: rotateY(180deg);
}
body.page-index .flip-face {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  text-align: center;
  backface-visibility: hidden;
}
body.page-index .flip-face p {
    width: 100%;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
body.page-index .flip-back {
  color: var(--white);
  background: var(--navy);
  transform: rotateY(180deg);
}
body.page-index .flip-face h3 {
  margin-top: 17px;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 0.77rem;
  font-weight: 700;
  text-transform: uppercase;
}
body.page-index .flip-face small {
  margin-top: 10px;
  color: #859097;
  font-size: 0.58rem;
}
body.page-index .flip-back span {
  color: var(--orange-soft);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
body.page-index .flip-back p {
  margin-top: 13px;
  color: var(--white);
}
body.page-index .flip-back small {
  color: rgba(255, 255, 255, 0.55);
}
body.page-index .service-icon {
  width: 55px;
  height: 55px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--navy);
}
body.page-index .service-icon img {
  width: 32px;
  height: 32px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
body.page-index .flip-card:focus-visible {
  box-shadow: inset 0 0 0 3px var(--orange);
}
body.page-index .metrics {
  background: var(--ice);
}
body.page-index .metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
body.page-index .metric {
  min-height: 145px;
  padding: 32px 35px;
  border-right: 1px solid rgba(19, 36, 44, 0.12);
}
body.page-index .metric:last-child {
  border-right: 0;
}
body.page-index .metric strong {
  display: block;
  margin-bottom: 12px;
  color: var(--navy);
  font-family: "Alverata", Georgia, serif;
  font-size: clamp(2rem, 3.4vw, 3.3rem);
  line-height: 1;
}
body.page-index .metric span {
  display: block;
  color: #59666c;
  font-size: 15px;
}
body.page-index .investment-areas {
  background: var(--white);
  overflow: hidden;
}
body.page-index .sector-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 18px;
}
body.page-index .sector-card.sector-wide {
  grid-column: span 3;
}
body.page-index .sector-card:hover,
body.page-index .sector-card:focus-visible {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
}
body.page-index .sector-card img {
  z-index: -3;
  object-fit: cover;
  transition: transform 0.65s ease;
}
body.page-index .sector-card span {
  margin-bottom: auto;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.67rem;
  font-weight: 700;
}
body.page-index .philosophy {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  min-height: 660px;
  background: var(--navy);
  overflow: hidden;
}
body.page-index .philosophy-media {
  position: relative;
  min-height: 660px;
  overflow: hidden;
}
body.page-index .philosophy-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.page-index .philosophy-filter {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(9, 17, 43, 0.534), rgba(255, 254, 254, 0.075)),
    linear-gradient(0deg, rgba(11, 25, 34, 0.055), rgba(243, 244, 245, 0.062));
  mix-blend-mode: multiply;
  pointer-events: none;
}
body.page-index .philosophy-copy {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 25px max(40px, calc((100vw - var(--container)) / 2));
  padding-left: 70px;
  color: var(--white);
}
body.page-index .philosophy-copy::after {
  position: absolute;
  right: -120px;
  bottom: -150px;
  width: 360px;
  height: 360px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  box-shadow: 0 0 0 35px transparent, 0 0 0 36px rgba(255, 255, 255, 0.12), 0 0 0 70px transparent, 0 0 0 71px rgba(255, 255, 255, 0.08);
  content: "";
}
body.page-index .philosophy-copy h2 {
  max-width: 650px;
  color: var(--white);
  font-size: 32px;
  text-transform: uppercase;
}
body.page-index .philosophy-copy>p {
  max-width: 680px;
  margin-top: 20px;
}
body.page-index .principles {
  position: relative;
  z-index: 2;
  margin-top: 24px;
  list-style: none;
  counter-reset: principles;
}
body.page-index .principles li {
  display: grid;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.13);
  counter-increment: principles;
}
body.page-index .principles strong {
  color: var(--white);
  font-size: 13px;
  text-transform: uppercase;
  font-weight: 700;
}
body.page-index .principles strong::before {
  margin-right: 7px;
  color: var(--white);
  content: "0" counter(principles);
}
body.page-index .principles span {
  color: rgba(255, 255, 255, 0.6);
  font-size: 15px;
}
body.page-index .portfolio-preview {
  background: var(--white);
}
body.page-index .portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-inline: auto;
}
body.page-index .portfolio-card {
  min-height: 210px;
  display: flex;
  flex-direction: column;
  padding: 20px;
  border: 1px solid #0b1922;
  background: var(--white);
  box-shadow: 0 4px 0 transparent;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
body.page-index .portfolio-card:hover {
  border-color: var(--orange);
  box-shadow: var(--shadow-sm);
  transform: translateY(-6px);
}
body.page-index .portfolio-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.company-isotype-slot img {
  width: 80%;
  height: 80%;
  object-fit: contain;
  display: block;
}
body.page-index .portfolio-top small {
  color: var(--ink);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-align: right;
  text-transform: uppercase;
}
body.page-index .portfolio-card h3 {
  margin-top: 28px;
  color: var(--navy);
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 0.83rem;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
}
body.page-index .portfolio-more {
  margin-top: auto;
  padding: 18px 0 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 0.8rem;
  font-weight: 600;
}
body.page-index .portfolio-more span {
  transition: transform 0.25s ease;
}
body.page-index .portfolio-more:hover span {
  display: inline-block;
  transform: translateX(5px);
}
body.page-index .portfolio-cta {
  display: flex;
  justify-content: center;
  margin-top: 42px;
}
body.page-index .presence {
  color: var(--white);
  background: var(--navy);
  overflow: hidden;
}
body.page-index .presence-intro {
  max-width: 860px;
  margin: 0 auto 20px;
  text-align: right;
}
body.page-index .presence-intro .eyebrow {
  justify-content: flex-end;
}
body.page-index .presence-intro h2 {
  color: var(--white);
  text-transform: uppercase;
}
body.page-index .presence-intro p {
  max-width: 650px;
  margin: 17px 0 0 auto;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.84rem;
}
body.page-index .map-stage {
  position: relative;
  min-height: 400px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    radial-gradient(circle at 22% 50%, rgba(215, 102, 32, 0.26), transparent 22%),
    radial-gradient(circle at 76% 52%, rgba(7, 84, 91, 0.42), transparent 30%),
    #435058;
  box-shadow: var(--shadow-lg);
}
body.page-index .map-stage-label {
  position: absolute;
  top: 55px;
  left: 50%;
  max-width: 330px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.8rem;
  text-align: center;
  transform: translateX(-50%);
}
body.page-index .map-line {
  position: absolute;
  top: 55%;
  right: 10%;
  left: 10%;
  height: 1px;
  background: linear-gradient(90deg, var(--orange), var(--ice), #79bfc6);
}
body.page-index .location {
  position: absolute;
  top: 55%;
  width: 230px;
  padding: 47px 10px 10px;
  border: 0;
  color: var(--white);
  background: transparent;
  cursor: pointer;
  text-align: center;
  transform: translate(-50%, -20px);
}
body.page-index .location-madrid {
  left: 23%;
}
body.page-index .location-cdmx {
  left: 50%;
  transform: translate(-50%, -145px);
}
body.page-index .location-houston {
  left: 77%;
}
body.page-index .location-dot {
  position: absolute;
  top: 0;
  left: 50%;
  width: 19px;
  height: 19px;
  border: 6px solid var(--white);
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.07);
  transform: translateX(-50%);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
body.page-index .location-cdmx .location-dot {
  background: var(--ice);
}
body.page-index .location-houston .location-dot {
  background: #83c4ca;
}
body.page-index .location:hover .location-dot,
body.page-index .location:focus-visible .location-dot {
  box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.11);
  transform: translateX(-50%) scale(1.18);
}
body.page-index .location small {
  display: block;
  color: var(--orange-soft);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
body.page-index .location strong {
  display: block;
  margin-top: 3px;
  font-family: "Alverata", Georgia, serif;
  font-size: 1.1rem;
  text-transform: uppercase;
}
body.page-index .map-preview {
  position: absolute;
  z-index: 20;
  bottom: calc(100% + 12px);
  left: 50%;
  width: 230px;
  padding: 7px;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.28);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 12px);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
  pointer-events: none;
}
body.page-index .location:hover .map-preview,
body.page-index .location:focus-visible .map-preview {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
body.page-index .map-preview iframe {
  width: 100%;
  height: 130px;
  border: 0;
  pointer-events: none;
}
body.page-index .map-preview b {
  display: block;
  padding: 7px 5px 3px;
  color: var(--navy);
  font-size: 0.8rem;
  text-align: left;
}
body.page-index .contact {
  background: var(--white);
}
body.page-index .contact-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 80px;
  align-items: center;
}
body.page-index .contact-copy h2 {
  color: var(--teal);
  text-transform: uppercase;
}
body.page-index .contact-details {
  margin-top: 30px;
}
body.page-index .contact-details div {
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}
body.page-index .contact-details small {
  display: block;
  margin-bottom: 4px;
  color: var(--orange);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
body.page-index .contact-details strong {
  color: var(--navy);
  font-size: 0.8rem;
}
body.page-index .contact-form {
  padding: 34px;
  background: var(--white);
  box-shadow: var(--shadow-lg);
}
body.page-index .form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
body.page-index .field {
  display: grid;
  gap: 7px;
}
body.page-index .field-full {
  grid-column: 1 / -1;
}
body.page-index .field span {
  color: var(--navy);
  font-size: 0.8rem;
  font-weight: 700;
}
body.page-index .field input,
body.page-index .field select,
body.page-index .field textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 3px;
  color: var(--ink);
  background: #f6f6f5;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
body.page-index .field input,
body.page-index .field select {
  min-height: 40px;
  padding: 0 14px;
}
body.page-index .field textarea {
  padding: 13px 14px;
  resize: vertical;
}
body.page-index .field input:focus,
body.page-index .field select:focus,
body.page-index .field textarea:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 4px rgba(7, 84, 91, 0.08);
}
body.page-index .field-honeypot {
  position: absolute;
  left: -10000px;
}
body.page-index .contact-form .button {
  margin-top: 20px;
  border: 0;
}
body.page-index .form-status {
  display: none;
  margin-bottom: 18px;
  padding: 12px 14px;
  border-left: 3px solid var(--teal);
  background: var(--ice);
  font-size: 0.76rem;
}
body.page-index .form-status.visible {
  display: block;
}
body.page-index .form-status.error {
  border-color: #b83434;
  background: #fff0f0;
}
body.page-index dialog {
  border: 0;
}
body.page-index dialog::backdrop {
  background: rgba(5, 16, 23, 0.82);
  backdrop-filter: blur(5px);
}
body.page-index .content-modal-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  min-height: 540px;
}
body.page-index .content-modal-media {
  min-height: 540px;
  background: var(--navy);
}
body.page-index .content-modal-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.page-index .content-modal-copy {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 65px 52px;
  background: var(--white);
}
body.page-index .content-modal-copy h2 {
  font-size: clamp(2rem, 4vw, 3.8rem);
}
body.page-index .content-modal-copy p {
  margin-top: 21px;
  font-size: 0.92rem;
}
body.page-index .modal-close {
  position: absolute;
  top: 17px;
  right: 17px;
  z-index: 4;
  width: 42px;
  height: 42px;
  border: 1px solid var(--border);
  border-radius: 50%;
  color: var(--navy);
  background: var(--white);
  cursor: pointer;
  font-size: 1.35rem;
}
body.page-index .map-modal {
  width: min(1000px, calc(100% - 30px));
  max-height: calc(100vh - 30px);
  padding: 0;
  box-shadow: 0 35px 90px rgba(0, 0, 0, 0.36);
  overflow: hidden;
}
body.page-index .map-modal-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
  padding: 25px 80px 25px 28px;
  color: var(--white);
  background: var(--navy);
}
body.page-index .map-modal-header span {
  color: var(--orange-soft);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
body.page-index .map-modal-header h2 {
  margin-top: 3px;
  color: var(--white);
  font-size: 1.65rem;
}
body.page-index .map-modal-header p {
  margin-top: 5px;
  color: rgba(255, 255, 255, 0.62);
  font-size: 15px;
}
body.page-index .map-modal iframe {
  width: 100%;
  height: min(610px, calc(100vh - 150px));
  border: 0;
}
body.page-index .decor-rings {
  position: absolute;
  z-index: 0;
  width: 230px;
  height: 230px;
  border: 1px solid rgba(7, 84, 91, 0.3);
  border-radius: 50%;
  box-shadow: 0 0 0 34px transparent, 0 0 0 35px rgba(7, 84, 91, 0.22), 0 0 0 68px transparent, 0 0 0 69px rgba(7, 84, 91, 0.14);
  pointer-events: none;
}
body.page-index .decor-rings-top {
  top: -150px;
  right: -70px;
}
body.page-index .decor-rings-right {
  top: 125px;
  right: -150px;
  border-color: rgba(215, 102, 32, 0.46);
  box-shadow: 0 0 0 34px transparent, 0 0 0 35px rgba(215, 102, 32, 0.3), 0 0 0 68px transparent, 0 0 0 69px rgba(215, 102, 32, 0.2);
}
body.page-index .decor-rings-left {
  top: -120px;
  left: -140px;
  border-color: rgba(255, 255, 255, 0.25);
  box-shadow: 0 0 0 34px transparent, 0 0 0 35px rgba(255, 255, 255, 0.18), 0 0 0 68px transparent, 0 0 0 69px rgba(255, 255, 255, 0.1);
}
body.page-index .reveal-up,
body.page-index .reveal-left,
body.page-index .reveal-right,
body.page-index .reveal-scale {
  opacity: 0;
  transition:
    opacity 0.75s ease var(--delay, 0ms),
    transform 0.75s cubic-bezier(0.2, 0.72, 0.2, 1) var(--delay, 0ms);
}
body.page-index .reveal-up {
  transform: translateY(34px);
}
body.page-index .reveal-left {
  transform: translateX(-45px);
}
body.page-index .reveal-right {
  transform: translateX(45px);
}
body.page-index .reveal-scale {
  transform: scale(0.94);
}
body.page-index .is-visible {
  opacity: 1;
  transform: none;
}
@media (max-width: 1050px) {
  body.page-index .flip-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  body.page-index .portfolio-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 900px) {
  body.page-index .section {
    padding: 82px 0;
  }
  body.page-index .menu-toggle {
    display: block;
  }
  body.page-index .hero {
    min-height: 620px;
    background-position: 66% center;
  }
  body.page-index .section-intro,
  body.page-index .philosophy,
  body.page-index .contact-grid {
    grid-template-columns: 1fr;
  }
  body.page-index .section-intro {
    gap: 25px;
  }
  body.page-index h1 {
    font-size: 32px;
  }
  body.page-index h2 {
    font-size: 24px;
  }
  body.page-index .philosophy-media {
    min-height: 470px;
  }
  body.page-index .philosophy-copy {
    padding: 65px 35px;
  }
  body.page-index .metrics-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  body.page-index .metric:nth-child(2) {
    border-right: 0;
  }
  body.page-index .metric:nth-child(-n
    +2) {
    border-bottom: 1px solid rgba(19, 36, 44, 0.12);
  }
  body.page-index .sector-card,
  body.page-index .sector-card.sector-wide {
    grid-column: span 3;
  }
  body.page-index .presence-intro {
    text-align: left;
  }
  body.page-index .presence-intro .eyebrow {
    justify-content: flex-start;
  }
  body.page-index .presence-intro p {
    margin-left: 0;
  }
}
@media (max-width: 680px) {
  body.page-index.page-index {
    --header-height: 70px;
  }
  body.page-index .container {
    width: min(calc(100% - 28px), var(--container));
  }
  body.page-index .hero {
    min-height: 680px;
    padding: 125px 0 75px;
    background-position: 70% center;
  }
  body.page-index .hero-actions,
  body.page-index .hero-actions .button {
    width: 100%;
  }
  body.page-index .hero-scroll {
    display: none;
  }
  body.page-index .flip-grid,
  body.page-index .metrics-grid,
  body.page-index .portfolio-grid,
  body.page-index .form-grid,
  body.page-index .metric {
    min-height: 125px;
    border-right: 0;
    border-bottom: 1px solid rgba(19, 36, 44, 0.12);
  }
  body.page-index .metric:last-child {
    border-bottom: 0;
  }
  body.page-index .sector-grid {
    grid-template-columns: 1fr;
  }
  body.page-index .sector-card,
  body.page-index .sector-card.sector-wide {
    grid-column: auto;
    min-height: 270px;
  }
  body.page-index .philosophy-media {
    min-height: 400px;
  }
  body.page-index .philosophy-copy {
    padding: 55px 24px;
  }
  body.page-index .principles li {
    grid-template-columns: 1fr;
    gap: 5px;
  }
  body.page-index .field-full {
    grid-column: auto;
  }
  body.page-index .contact-form {
    padding: 25px 20px;
  }
  body.page-index .map-stage {
    min-height: 760px;
  }
  body.page-index .map-stage-label {
    top: 35px;
    width: calc(100% - 40px);
  }
  body.page-index .map-line {
    top: 14%;
    bottom: 10%;
    left: 50%;
    width: 1px;
    height: auto;
  }
  body.page-index .location {
    top: auto;
    left: 50%;
    width: 220px;
    transform: translateX(-50%);
  }
  body.page-index .location-madrid {
    top: 170px;
  }
  body.page-index .location-cdmx {
    top: 370px;
  }
  body.page-index .location-houston {
    top: 570px;
  }
  body.page-index .map-preview {
    width: 205px;
  }
  body.page-index .content-modal-grid {
    grid-template-columns: 1fr;
  }
  body.page-index .content-modal-media {
    min-height: 240px;
    max-height: 240px;
  }
  body.page-index .content-modal-copy {
    padding: 55px 28px 38px;
  }
  body.page-index .footer-brand {
    grid-column: auto;
  }
  body.page-index .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.page-index *,
  body.page-index *::before,
  body.page-index *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
body.page-nosotros.page-nosotros {
  --azul-principal: #0b1d2d;
  --azul-secundario: #142f46;
  --azul-claro: #204967;
  --dorado: #df6c23;
  --dorado-claro: #ef7d31;
  --marfil: #faebe1;
  --blanco: #ffffff;
  --gris-claro: #eef0f1;
  --gris-texto: #63707a;
  --texto: #1a2731;
  --borde: rgba(11, 29, 45, 0.12);
  --sombra: 0 22px 55px rgba(10, 28, 42, 0.10);
  --radio: 4px;
  --contenedor: 1000px;
}
body.page-nosotros * {
  margin: 0;
  box-sizing: border-box;
}
body.page-nosotros.page-nosotros {
  scroll-behavior: smooth;
}
body.page-nosotros {
  font-family: "Montserrat", "DM Sans", sans-serif;
  color: var(--texto);
  background-color: var(--blanco);
  line-height: 1.7;
  overflow-x: hidden;
}
body.page-nosotros.menu-abierto {
  overflow: hidden;
}
body.page-nosotros img {
  display: block;
  width: 100%;
}
body.page-nosotros a {
  color: inherit;
  text-decoration: none;
}
body.page-nosotros button {
  font: inherit;
}
body.page-nosotros ul {
  list-style: none;
}
body.page-nosotros h1,
body.page-nosotros h2,
body.page-nosotros h3,
body.page-nosotros h4 {
  font-family: "Alverata", "Playfair Display", serif;
  line-height: 1.15;
  font-weight: 600;
}
body.page-nosotros p {
  color: var(--gris-texto);
}
body.page-nosotros .contenedor {
  width: min(calc(100% - 48px), var(--contenedor));
  margin-inline: auto;
}
body.page-nosotros .seccion {
  padding: 80px 0;
}
body.page-nosotros .seccion-suave {
  background: var(--marfil);
}
body.page-nosotros .eyebrow {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 18px;
  color: var(--dorado);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
}
body.page-nosotros .eyebrow::before {
  content: "";
  width: 40px;
  height: 1px;
  background: currentColor;
}
body.page-nosotros .titulo-seccion {
  margin-bottom: 24px;
  font-size: 32px;
}
body.page-nosotros .texto-intro {
  max-width: 550px;
  font-size: 15px;
}
body.page-nosotros .boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 54px;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: var(--radio);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition:
    color 0.3s ease,
    background-color 0.3s ease,
    border-color 0.3s ease,
    transform 0.3s ease;
}
body.page-nosotros .boton:hover {
  transform: translateY(-2px);
}
body.page-nosotros .boton-dorado {
  color: var(--azul-principal);
  background: var(--dorado-claro);
}
body.page-nosotros .boton-dorado:hover {
  background: var(--blanco);
}
body.page-nosotros .boton-contorno {
  color: var(--blanco);
  border-color: rgba(255, 255, 255, 0.45);
}
body.page-nosotros .boton-contorno:hover {
  color: var(--azul-principal);
  background: var(--blanco);
  border-color: var(--blanco);
}
body.page-nosotros .boton svg {
  width: 18px;
  height: 18px;
}
body.page-nosotros .encabezado {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease,
    border-color 0.3s ease;
}
body.page-nosotros .encabezado.scrolled {
  background: rgba(11, 29, 45, 0.97);
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
  backdrop-filter: blur(12px);
}
body.page-nosotros .barra-navegacion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 88px;
}
body.page-nosotros .logo {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--blanco);
}
body.page-nosotros .logo-imagen {
  width: 132px;
  height: auto;
  object-fit: contain;
}
body.page-nosotros .logo-fallback {
  display: none;
  align-items: center;
  gap: 12px;
}
body.page-nosotros .logo-marca {
  display: grid;
  place-items: center;
  width: 47px;
  height: 47px;
  border: 1px solid rgba(216, 196, 156, 0.8);
  color: var(--dorado-claro);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 1.05rem;
}
body.page-nosotros .logo-texto {
  display: flex;
  flex-direction: column;
  line-height: 1.18;
}
body.page-nosotros .logo-texto strong {
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 1.03rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
body.page-nosotros .logo-texto span {
  margin-top: 4px;
  color: var(--dorado-claro);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
body.page-nosotros .menu {
  display: flex;
  align-items: center;
  gap: 31px;
}
body.page-nosotros .menu a {
  position: relative;
  color: rgba(255, 255, 255, 0.82);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color 0.3s ease;
}
body.page-nosotros .menu a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -10px;
  left: 0;
  height: 1px;
  background: var(--dorado-claro);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s ease;
}
body.page-nosotros .menu a:hover,
body.page-nosotros .menu a.activo {
  color: var(--blanco);
}
body.page-nosotros .menu a:hover::after,
body.page-nosotros .menu a.activo::after {
  transform: scaleX(1);
  transform-origin: left;
}
body.page-nosotros .menu-movil {
  display: none;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: transparent;
  cursor: pointer;
}
body.page-nosotros .menu-movil span,
body.page-nosotros .menu-movil span::before,
body.page-nosotros .menu-movil span::after {
  display: block;
  width: 22px;
  height: 1px;
  background: var(--blanco);
  transition: transform 0.3s ease;
}
body.page-nosotros .menu-movil span {
  position: relative;
}
body.page-nosotros .menu-movil span::before,
body.page-nosotros .menu-movil span::after {
  content: "";
  position: absolute;
  left: 0;
}
body.page-nosotros .menu-movil span::before {
  top: -7px;
}
body.page-nosotros .menu-movil span::after {
  top: 7px;
}
body.page-nosotros .menu-movil.activo span {
  background: transparent;
}
body.page-nosotros .menu-movil.activo span::before {
  top: 0;
  transform: rotate(45deg);
}
body.page-nosotros .menu-movil.activo span::after {
  top: 0;
  transform: rotate(-45deg);
}
body.page-nosotros .hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background-image: url("../media/hero-nosotros.webp");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  overflow: hidden;
  color: var(--blanco);
}
body.page-nosotros .hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,
      rgba(7, 20, 32, 0.2),
      transparent 45%);
  pointer-events: none;
}
body.page-nosotros .hero-contenido {
  position: relative;
  z-index: 2;
  max-width: 700px;
  padding-top: 65px;
}
body.page-nosotros .hero .eyebrow {
  color: var(--blanco);
}
body.page-nosotros .hero h1 {
  margin-bottom: 28px;
  color: var(--blanco);
  font-size: 54px;
  font-weight: 600;
  letter-spacing: -0.045em;
}
body.page-nosotros .hero h1 span {
  display: block;
  color: #D46A1F;
  font-style: italic;
}
body.page-nosotros .hero-descripcion {
  max-width: 640px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 15px;
}
body.page-nosotros .hero-botones {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin-top: 37px;
}
body.page-nosotros .hero-indicador {
  position: absolute;
  right: 60px;
  bottom: 54px;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 13px;
  color: rgba(255, 255, 255, .65);
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  transform: rotate(90deg);
  transform-origin: right center;
}
body.page-nosotros .hero-indicador::after {
  content: "";
  width: 66px;
  height: 1px;
  background: var(--dorado-claro);
}
body.page-nosotros .presentacion-grid {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: clamp(60px, 8vw, 130px);
  align-items: start;
}
body.page-nosotros .numero-seccion {
  color: #b8dadd;
  font-family: "Alverata", "Playfair Display", serif;
  font-size: clamp(5rem, 10vw, 9rem);
  line-height: 0.8;
  opacity: 0.48;
}
body.page-nosotros .presentacion-titulo {
  margin-top: 28px;
  color: #075b64;
  font-size: 32px;
}
body.page-nosotros .presentacion-contenido {
  padding-top: 10px;
}
body.page-nosotros .presentacion-contenido .destacado {
  margin-bottom: 28px;
  color: var(--azul-principal);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 16px;
  line-height: 1.5;
  text-align: justify;
}
body.page-nosotros .presentacion-contenido p+p {
  margin-top: 21px;
  font-size: 15px;
  text-align: justify;
}
body.page-nosotros .frase-destacada {
  position: relative;
  margin-top: 37px;
  padding: 30px 32px 30px 38px;
  border-left: 2px solid var(--dorado);
  background: var(--marfil);
}
body.page-nosotros .frase-destacada p {
  color: var(--azul-principal);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 1.3rem;
  font-style: italic;
}
.revelar {
  opacity: 0;
  transform: translateY(40px);
  transition:
    opacity .8s ease,
    transform .8s ease;
}
.revelar.visible {
  opacity: 1;
  transform: translateY(0);
}
.historia-encabezado {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 12px;
}
.historia-encabezado .eyebrow {
  margin-bottom: 22px;
}
.historia-encabezado .titulo-seccion {
  max-width: 650px;
  margin: 0 auto 28px;
  color: var(--azul-principal);
  line-height: 1.15;
  text-align: center;
}
.historia-encabezado p {
  max-width: 720px;
  margin: 0 auto;
  font-size: 15px;
  line-height: 1.8;
  text-align: center;
  padding: 12px 0;
}
.historia-linea {
  margin-top: 70px;
}
.historia-encabezado .eyebrow {
  position: relative;
  display: inline-block;
  color: #D46A1F;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: .9rem;
  font-weight: 600;
  padding: 0 80px;
  margin-bottom: 28px;
}
.historia-encabezado .eyebrow::before,
.historia-encabezado .eyebrow::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 50px;
  height: 1px;
  background: #D46A1F;
  transform: translateY(-50%);
}
.historia-encabezado .eyebrow::before {
  left: 0;
}
.historia-encabezado .eyebrow::after {
  right: 0;
}
body.page-nosotros .historia-encabezado .titulo-seccion {
  margin-bottom: 0;
}
body.page-nosotros .historia-linea {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}
body.page-nosotros .historia-linea::before {
  content: "";
  position: absolute;
  top: 25px;
  right: 0;
  left: 0;
  height: 1px;
  background: #d76620;
}
body.page-nosotros .historia-item {
  position: relative;
  padding-top: 62px;
}
body.page-nosotros .historia-punto {
  position: absolute;
  top: 17px;
  left: 0;
  width: 17px;
  height: 17px;
  border: 4px solid var(--marfil);
  border-radius: 50%;
  background: var(--dorado);
  box-shadow: 0 0 0 1px var(--dorado);
}
body.page-nosotros .historia-item span {
  display: block;
  margin-bottom: 11px;
  color: var(--dorado);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
body.page-nosotros .historia-item h3 {
  margin-bottom: 13px;
  color: var(--azul-principal);
  font-size: 1.42rem;
}
body.page-nosotros .historia-item p {
  font-size: 15px;
}
body.page-nosotros .proposito {
  background:
    linear-gradient(rgba(11, 29, 45, 0.88),
      rgba(11, 29, 45, 0.88)),
    url("../media/Proposito.png") center / cover fixed;
  color: var(--blanco);
}
body.page-nosotros .proposito-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
body.page-nosotros .proposito-card {
  position: relative;
  min-height: 400px;
  padding: 70px 65px;
  overflow: hidden;
}
body.page-nosotros .proposito-card:first-child {
  border-right: 1px solid rgba(228, 238, 240, 20);
}
body.page-nosotros .proposito-numero {
  position: absolute;
  top: 28px;
  right: 38px;
  color: rgba(216, 196, 156, 0.1);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 8rem;
  line-height: 1;
}
body.page-nosotros .proposito-card .eyebrow {
  color: var(--dorado-claro);
}
body.page-nosotros .proposito-card h2 {
  margin-bottom: 25px;
  font-size: 32px;
}
body.page-nosotros .proposito-card p {
  position: relative;
  z-index: 1;
  max-width: 500px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 15px;
}
body.page-nosotros .valores-encabezado {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  align-items: end;
  margin-bottom: 65px;
}
body.page-nosotros .valores-encabezado .titulo-seccion {
  max-width: 600px;
  margin-bottom: 0;
}
body.page-nosotros .valores-encabezado p {
  max-width: 490px;
}
body.page-nosotros .valores-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--borde);
  border-left: 1px solid var(--borde);
}
body.page-nosotros .valor-card {
  position: relative;
  min-height: 305px;
  padding: 40px 35px;
  border-right: 1px solid var(--borde);
  border-bottom: 1px solid var(--borde);
  background: var(--blanco);
  overflow: hidden;
  transition:
    transform 0.35s ease,
    color 0.35s ease,
    background-color 0.35s ease,
    box-shadow 0.35s ease;
}
body.page-nosotros .valor-card::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -70px;
  width: 150px;
  height: 150px;
  border: 1px solid #e7a97c;
  border-radius: 50%;
  transition: transform 0.45s ease;
}
body.page-nosotros .valor-card:hover {
  z-index: 2;
  color: var(--blanco);
  box-shadow: var(--sombra);
  transform: translateY(-8px);
}
body.page-nosotros .valor-card:hover::after {
  transform: scale(1.5);
}
body.page-nosotros .valor-indice {
  display: block;
  color: #8db4ba;
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 56px;
  font-weight: 700;
  letter-spacing: 0.17em;
}
body.page-nosotros .valor-card h3 {
  margin-bottom: 14px;
  color: var(--azul-principal);
  font-size: 1.55rem;
  transition: color 0.35s ease;
}
body.page-nosotros .valor-card p {
  font-size: 15px;
  transition: color 0.35s ease;
}
body.page-nosotros .equipo {
  background: var(--azul-principal);
  color: var(--blanco);
}
body.page-nosotros .equipo .titulo-seccion {
  color: var(--blanco);
}
body.page-nosotros .equipo .texto-intro {
  color: rgba(255, 255, 255, 0.62);
}
body.page-nosotros .equipo-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  margin-top: 24px;
}
body.page-nosotros .persona-card {
  display: grid;
  grid-template-columns: 215px 1fr;
  min-height: 330px;
  background: rgba(255, 255, 255, 0.035);
  transition:
    transform 0.35s ease,
    background-color 0.35s ease,
    border-color 0.35s ease;
}
body.page-nosotros .persona-card:hover {
  border-color: rgba(216, 196, 156, 0.55);
  background: rgba(255, 255, 255, 0.06);
  transform: translateY(-7px);
}
body.page-nosotros .persona-imagen {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 330px;
  background:
    linear-gradient(145deg, var(--azul-claro), var(--azul-secundario));
  overflow: hidden;
}
body.page-nosotros .persona-imagen::before,
body.page-nosotros .persona-imagen::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(216, 196, 156, 0.2);
  border-radius: 50%;
}
body.page-nosotros .persona-imagen::before {
  width: 190px;
  height: 190px;
}
body.page-nosotros .persona-imagen::after {
  width: 270px;
  height: 270px;
}
body.page-nosotros .persona-iniciales {
  position: relative;
  z-index: 2;
  color: var(--dorado-claro);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 3.3rem;
}
body.page-nosotros .persona-contenido {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 24px;
}
body.page-nosotros .persona-contenido span {
  margin-bottom: 15px;
  color: var(--dorado-claro);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body.page-nosotros .persona-contenido h3 {
  margin-bottom: 10px;
  font-size: 24px;
}
body.page-nosotros .persona-contenido p {
  color: rgba(255, 255, 255, 0.6);
  font-size: 15px;
}
body.page-nosotros .enlace-perfil {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  width: fit-content;
  margin-top: 28px;
  color: var(--dorado-claro);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
body.page-nosotros .enlace-perfil::after {
  content: "";
  width: 33px;
  height: 1px;
  background: currentColor;
  transition: width 0.3s ease;
}
body.page-nosotros .enlace-perfil:hover::after {
  width: 48px;
}
body.page-nosotros .filosofia-encabezado {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 70px;
  align-items: end;
  margin-bottom: 70px;
}
body.page-nosotros .filosofia-encabezado .titulo-seccion {
  margin-bottom: 0;
}
body.page-nosotros .filosofia-frase {
  padding-left: 30px;
  border-left: 1px solid var(--dorado);
}
body.page-nosotros .filosofia-frase strong {
  display: block;
  margin-bottom: 12px;
  color: var(--azul-principal);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 1.45rem;
}
body.page-nosotros .filosofia-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: var(--borde);
  border: 1px solid var(--borde);
}
body.page-nosotros .filosofia-card {
  position: relative;
  min-height: 360px;
  padding: 18px 27px;
  background: var(--blanco);
  transition:
    background-color 0.35s ease,
    transform 0.35s ease;
}
body.page-nosotros .filosofia-icono {
  display: grid;
  place-items: center;
  width: 75px;
  height: 75px;
  margin-bottom: 22px;
  border: 1px solid var(--borde);
  border-radius: 50px;
  color: var(--dorado);
}
body.page-nosotros .filosofia-icono svg {
  width: 25px;
  height: 25px;
}
body.page-nosotros .filosofia-card h3 {
  margin-bottom: 15px;
  color: var(--azul-principal);
  font-size: 16px;
}
body.page-nosotros .filosofia-card p {
  font-size: 15px;
}
body.page-nosotros .capacidades {
  position: relative;
  background: var(--marfil);
  overflow: hidden;
}
body.page-nosotros .capacidades::before {
  content: "";
  position: absolute;
  top: -220px;
  right: -220px;
  width: 600px;
  height: 600px;
  border: 1px solid rgba(185, 154, 98, 0.16);
  border-radius: 50%;
  box-shadow:
    0 0 0 70px rgba(185, 154, 98, 0.035),
    0 0 0 140px rgba(185, 154, 98, 0.025);
}
body.page-nosotros .capacidades-grid {
  position: relative;
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 100px;
  align-items: start;
}
body.page-nosotros .capacidades-lista {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid rgba(11, 29, 45, 0.16);
}
body.page-nosotros .capacidad-item {
  display: flex;
  gap: 17px;
  padding: 24px 20px 24px 0;
  border-bottom: 1px solid rgba(11, 29, 45, 0.16);
  align-items: center;
}
body.page-nosotros .capacidad-item:nth-child(odd) {
  border-right: 1px solid rgba(11, 29, 45, 0.16);
}
body.page-nosotros .capacidad-item:nth-child(even) {
  padding-left: 25px;
}
body.page-nosotros .capacidad-numero {
  flex: 0 0 auto;
  color: var(--dorado);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 0.9rem;
}
body.page-nosotros .capacidad-item h3 {
  color: var(--azul-principal);
  font-family: "Montserrat", "DM Sans", sans-serif;
  font-size: 15px;
  font-weight: 600;
}
body.page-nosotros .presencia {
  padding: 80px 0;
  background: var(--blanco);
}
body.page-nosotros .presencia-contenido {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 70px;
  align-items: center;
  padding: 57px 65px;
  border: 1px solid var(--borde);
}
body.page-nosotros .presencia-titulo {
  max-width: 270px;
}
body.page-nosotros .presencia-titulo span {
  display: block;
  margin-bottom: 9px;
  color: var(--dorado);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
body.page-nosotros .presencia-titulo h2 {
  color: var(--azul-principal);
  font-size: 2rem;
}
body.page-nosotros .ciudades {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
body.page-nosotros .ciudad {
  padding: 5px 40px;
  border-left: 1px solid var(--borde);
}
body.page-nosotros .ciudad strong {
  display: block;
  color: var(--azul-principal);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 1.4rem;
}
body.page-nosotros .ciudad span {
  color: var(--gris-texto);
  font-size: 0.76rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
body.page-nosotros .cta {
  position: relative;
  padding: 42px 0;
  color: var(--blanco);
  overflow: hidden;
  background: var(--navy);
}
body.page-nosotros .cta-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
body.page-nosotros .cta::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg,
      rgba(11, 29, 45, 0.98),
      rgba(11, 29, 45, 0.76));
}
body.page-nosotros .cta-contenido {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 70px;
}
body.page-nosotros .cta-texto {
  max-width: 730px;
}
body.page-nosotros .cta h2 {
  margin-bottom: 22px;
  font-size: 32px;
}
body.page-nosotros .cta p {
  max-width: 670px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 15px;
}
body.page-nosotros .revelar.visible {
  opacity: 1;
}
@media (max-width: 1100px) {
  body.page-nosotros .menu {
    gap: 20px;
  }
  body.page-nosotros .menu a {
    font-size: 0.68rem;
  }
  body.page-nosotros .equipo-grid {
    grid-template-columns: 1fr;
  }
  body.page-nosotros .filosofia-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  body.page-nosotros .capacidades-grid {
    gap: 65px;
  }
}
@media (max-width: 900px) {
  body.page-nosotros .seccion {
    padding: 85px 0;
  }
  body.page-nosotros .menu-movil {
    display: flex;
  }
  body.page-nosotros .menu {
    position: fixed;
    top: 0;
    right: -100%;
    bottom: 0;
    z-index: -1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: min(100%, 430px);
    padding: 110px 50px 50px;
    background: var(--azul-principal);
    box-shadow: -20px 0 50px rgba(0, 0, 0, 0.25);
    transition: right 0.35s ease;
  }
  body.page-nosotros .menu.activo {
    right: 0;
  }
  body.page-nosotros .menu a {
    width: 100%;
    padding: 15px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    font-family: "Alverata", "Playfair Display", serif;
    font-size: 1.5rem;
    letter-spacing: 0;
    text-transform: none;
  }
  body.page-nosotros .menu a::after {
    display: none;
  }
  body.page-nosotros .hero {
    min-height: 700px;
  }
  body.page-nosotros .hero-indicador {
    display: none;
  }
  body.page-nosotros .presentacion-grid,
  body.page-nosotros .historia-encabezado,
  body.page-nosotros .filosofia-encabezado,
  body.page-nosotros .capacidades-grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }
  body.page-nosotros .presentacion-lateral {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 30px;
    align-items: end;
  }
  body.page-nosotros .presentacion-titulo {
    margin-top: 0;
  }
  body.page-nosotros .historia-linea {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 55px;
  }
  body.page-nosotros .historia-linea::before {
    display: none;
  }
  body.page-nosotros .historia-item {
    padding-top: 0;
    padding-left: 30px;
    border-left: 1px solid rgba(185, 154, 98, 0.35);
  }
  body.page-nosotros .historia-punto {
    top: 4px;
    left: -9px;
  }
  body.page-nosotros .proposito-card {
    padding: 60px 45px;
  }
  body.page-nosotros .valores-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  body.page-nosotros .filosofia-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  body.page-nosotros .presencia-contenido {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  body.page-nosotros .presencia-titulo {
    max-width: none;
  }
  body.page-nosotros .ciudad:first-child {
    border-left: none;
    padding-left: 0;
  }
  body.page-nosotros .cta-contenido {
    align-items: flex-start;
    flex-direction: column;
  }
}
@media (max-width: 650px) {
  body.page-nosotros .contenedor {
    width: min(calc(100% - 34px), var(--contenedor));
  }
  body.page-nosotros .seccion {
    padding: 72px 0;
  }
  body.page-nosotros .barra-navegacion {
    min-height: 75px;
  }
  body.page-nosotros .logo-marca {
    width: 40px;
    height: 40px;
  }
  body.page-nosotros .logo-texto strong {
    font-size: 0.88rem;
  }
  body.page-nosotros .logo-texto span {
    font-size: 0.53rem;
    letter-spacing: 0.13em;
  }
  body.page-nosotros .hero {
    min-height: 670px;
    padding: 150px 0 70px;
    background-position: 61% center;
  }
  body.page-nosotros .hero h1 {
    font-size: clamp(2.7rem, 14vw, 4.3rem);
  }
  body.page-nosotros .hero-botones {
    flex-direction: column;
  }
  body.page-nosotros .hero-botones .boton {
    width: 100%;
  }
  body.page-nosotros .presentacion-lateral {
    display: block;
  }
  body.page-nosotros .numero-seccion {
    margin-bottom: 35px;
  }
  body.page-nosotros .historia-linea,
  body.page-nosotros .proposito-grid,
  body.page-nosotros .valores-grid,
  body.page-nosotros .filosofia-grid,
  body.page-nosotros .capacidades-lista,
  body.page-nosotros .ciudades {
    grid-template-columns: 1fr;
  }
  body.page-nosotros .proposito-card {
    min-height: auto;
    padding: 55px 28px;
  }
  body.page-nosotros .proposito-card:first-child {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  }
  body.page-nosotros .valores-encabezado {
    align-items: flex-start;
    flex-direction: column;
    gap: 25px;
  }
  body.page-nosotros .valor-card {
    min-height: 270px;
  }
  body.page-nosotros .persona-card {
    grid-template-columns: 1fr;
  }
  body.page-nosotros .persona-imagen {
    min-height: 260px;
  }
  body.page-nosotros .persona-contenido {
    padding: 35px 28px;
  }
  body.page-nosotros .filosofia-card {
    min-height: auto;
  }
  body.page-nosotros .filosofia-icono {
    margin-bottom: 42px;
  }
  body.page-nosotros .capacidad-item,
  body.page-nosotros .capacidad-item:nth-child(even) {
    padding: 22px 0;
    border-right: none;
  }
  body.page-nosotros .presencia-contenido {
    padding: 38px 27px;
  }
  body.page-nosotros .ciudad {
    padding: 22px 0;
    border-top: 1px solid var(--borde);
    border-left: none;
  }
  body.page-nosotros .ciudad:first-child {
    border-top: none;
  }
  body.page-nosotros .cta {
    padding: 85px 0;
  }
  body.page-nosotros .cta .boton {
    width: 100%;
  }
  body.page-nosotros .footer-grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }
  body.page-nosotros .footer-marca {
    grid-column: auto;
  }
  body.page-nosotros .footer-final {
    align-items: flex-start;
    flex-direction: column;
  }
  body.page-nosotros .footer-legales {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
}
body.page-inversiones.page-inversiones {
  --azul: #10232d;
  --azul-profundo: #071724;
  --verde: #005864;
  --naranja: #ed6b0c;
  --gris: #d9dcdd;
  --gris-texto: #434b50;
  --blanco: #ffffff;
  --borde: #24404a;
  --contenedor: 1000px;
  --titulo: "Alverata", "Playfair Display", Georgia, serif;
  --texto: "MontserratLocal", "Montserrat", Arial, sans-serif;
}
body.page-inversiones * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body.page-inversiones.page-inversiones {
  scroll-behavior: smooth;
}
body.page-inversiones {
  font-family: var(--texto);
  color: var(--azul);
  background: var(--blanco);
  line-height: 1.55;
  overflow-x: hidden;
}
body.page-inversiones.bloqueado {
  overflow: hidden;
}
body.page-inversiones a {
  color: inherit;
  text-decoration: none;
}
body.page-inversiones button {
  font: inherit;
}
body.page-inversiones img {
  display: block;
  max-width: 100%;
}
body.page-inversiones h1,
body.page-inversiones h2,
body.page-inversiones h3 {
  font-family: var(--titulo);
  line-height: 1.08;
}
body.page-inversiones .contenedor {
  width: min(calc(100% - 56px), var(--contenedor));
  margin-inline: auto;
}
body.page-inversiones .etiqueta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  color: var(--verde);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
body.page-inversiones .etiqueta::before {
  content: "";
  width: 36px;
  height: 1px;
  background: currentColor;
}
body.page-inversiones .titulo-seccion {
  color: var(--verde);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -0.035em;
}
body.page-inversiones .progreso {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2500;
  width: 100%;
  height: 3px;
  pointer-events: none;
}
body.page-inversiones .progreso span {
  display: block;
  width: 0;
  height: 100%;
  background: #D46A1F;
}
body.page-inversiones .encabezado {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
body.page-inversiones .encabezado.scrolled {
  background: rgba(7, 23, 36, 0.97);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(12px);
}
body.page-inversiones .navegacion {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
body.page-inversiones .menu {
  display: flex;
  align-items: center;
  gap: 25px;
}
body.page-inversiones .menu a {
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: color 0.25s ease;
}
body.page-inversiones .menu a:hover,
body.page-inversiones .menu a.activo {
  color: var(--naranja);
}
body.page-inversiones .menu-movil {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: transparent;
  cursor: pointer;
}
body.page-inversiones .menu-movil span,
body.page-inversiones .menu-movil span::before,
body.page-inversiones .menu-movil span::after {
  display: block;
  width: 21px;
  height: 1px;
  margin: auto;
  background: var(--blanco);
  transition: transform 0.3s ease;
}
body.page-inversiones .menu-movil span {
  position: relative;
}
body.page-inversiones .menu-movil span::before,
body.page-inversiones .menu-movil span::after {
  content: "";
  position: absolute;
  left: 0;
}
body.page-inversiones .menu-movil span::before {
  top: -7px;
}
body.page-inversiones .menu-movil span::after {
  top: 7px;
}
body.page-inversiones .menu-movil.activo span {
  background: transparent;
}
body.page-inversiones .menu-movil.activo span::before {
  top: 0;
  transform: rotate(45deg);
}
body.page-inversiones .menu-movil.activo span::after {
  top: 0;
  transform: rotate(-45deg);
}
body.page-inversiones .hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background-image: url("../media/hero-inversiones.webp");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  overflow: hidden;
  color: var(--blanco);
}
body.page-inversiones .hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(7, 20, 32, 0.2), transparent 45%);
  pointer-events: none;
}
body.page-inversiones .hero-contenido {
  position: relative;
  z-index: 2;
  max-width: 700px;
  padding-top: 65px;
}
body.page-inversiones .hero .etiqueta {
  color: var(--blanco);
}
body.page-inversiones .hero h1 {
  margin-bottom: 28px;
  color: var(--blanco);
  font-size: 54px;
  font-weight: 600;
  letter-spacing: -0.045em;
}
body.page-inversiones .hero h1 span {
  display: block;
  color: var(--naranja);
  font-style: italic;
}
body.page-inversiones .hero p {
  max-width: 640px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 15px;
}
body.page-inversiones .areas {
  padding: 72px 0 88px;
}
body.page-inversiones .areas-cabecera {
  max-width: 760px;
  margin-bottom: 38px;
}
body.page-inversiones .areas-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 26px 24px;
}
body.page-inversiones .tarjeta-area {
  position: relative;
  width: 100%;
  height: 181px;
  min-height: 181px;
  padding: 11px 12px 12px;
  border: 1px solid #9faeb1;
  background: #ffffff;
  cursor: pointer;
  overflow: hidden;
  box-sizing: border-box;
  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    border-color 0.35s ease;
}
body.page-inversiones .tarjeta-area::after {
  content: "";
  position: absolute;
  right: -80px;
  bottom: -80px;
  width: 150px;
  height: 150px;
  border: 1px solid rgba(0, 88, 100, 0.14);
  border-radius: 50%;
  pointer-events: none;
  transition: transform 0.4s ease;
}
body.page-inversiones .tarjeta-area:hover {
  border-color: var(--naranja);
  box-shadow: 0 12px 30px rgba(15, 37, 47, 0.10);
  transform: translateY(-4px);
}
body.page-inversiones .tarjeta-area:hover::after {
  transform: scale(1.15);
}
body.page-inversiones .tarjeta-superior {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  grid-template-rows: 48px auto auto;
  align-items: start;
  width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body.page-inversiones .icono {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 47px;
  height: 47px;
  min-width: 47px;
  min-height: 47px;
  margin: 0;
  border: 1px solid #9faeb1;
  box-sizing: border-box;
}
body.page-inversiones .icono img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 5px;
  object-fit: contain;
  box-sizing: border-box;
}
body.page-inversiones .numero {
  grid-column: 3;
  grid-row: 1;
  margin: 1px 0 0;
  padding: 0;
  color: #d5e5e8;
  font-family: var(--titulo);
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1;
  text-align: right;
  white-space: nowrap;
}
body.page-inversiones .tarjeta-superior h3 {
  grid-column: 1 / -1;
  grid-row: 2;
  display: block;
  width: 100%;
  margin: 14px 0 4px;
  padding: 0;
  color: var(--verde);
  font-family: var(--titulo);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.1;
  text-align: left;
}
body.page-inversiones .tarjeta-superior p {
  grid-column: 1 / -1;
  grid-row: 3;
  display: block;
  width: 100%;
  max-width: 92%;
  margin: 0;
  padding: 0;
  color: var(--gris-texto);
  font-family: var(--texto);
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1.45;
  text-align: left;
}
body.page-inversiones .ver-mas {
  position: absolute;
  right: 12px;
  bottom: 10px;
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 0;
  color: var(--verde);
  font-size: 0.76rem;
  font-weight: 500;
  line-height: 1;
  z-index: 2;
}
body.page-inversiones .ver-mas svg {
  width: 16px;
  height: 16px;
  transition: transform 0.3s ease;
}
body.page-inversiones .tarjeta-area:hover .ver-mas svg {
  transform: translateX(5px);
}
@media (max-width: 930px) {
  body.page-inversiones .areas-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
  }
  body.page-inversiones .tarjeta-area {
    height: 181px;
    min-height: 181px;
  }
}
@media (max-width: 620px) {
  body.page-inversiones .areas-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  body.page-inversiones .tarjeta-area {
    width: 100%;
    height: 181px;
    min-height: 181px;
  }
  body.page-inversiones .tarjeta-superior h3 {
    font-size: 20px;
  }
  body.page-inversiones .tarjeta-superior p {
    max-width: 100%;
  }
}
body.page-inversiones .estrategia {
  position: relative;
  padding: 70px 0 75px;
  background: #d6d9da;
  overflow: hidden;
}
body.page-inversiones .estrategia::after {
  content: "";
  position: absolute;
  top: -125px;
  right: -110px;
  width: 290px;
  height: 290px;
  border: 1px solid var(--azul);
  border-radius: 50%;
  box-shadow:
    0 0 0 45px rgba(16, 35, 45, 0.03),
    0 0 0 90px rgba(16, 35, 45, 0.025);
}
body.page-inversiones .estrategia .etiqueta {
  color: var(--azul);
}
body.page-inversiones .estrategia .titulo-seccion {
  max-width: 900px;
  color: var(--azul);
}
body.page-inversiones .estrategia-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 54px;
  margin-top: 60px;
}
body.page-inversiones .tarjeta-estrategia {
  min-height: 185px;
  cursor: pointer;
  transition: transform 0.3s ease;
}
body.page-inversiones .tarjeta-estrategia:hover {
  transform: translateY(-6px);
}
body.page-inversiones .tarjeta-estrategia>span {
  display: block;
  margin-bottom: 5px;
  color: rgba(255, 255, 255, 0.84);
  font-family: var(--titulo);
  font-size: 3.5rem;
  font-weight: 700;
}
body.page-inversiones .tarjeta-estrategia h3 {
  margin-bottom: 9px;
  color: var(--azul);
  font-size: 24px;
}
body.page-inversiones .tarjeta-estrategia p {
  max-width: 260px;
  color: #27363e;
  font-size: 15px;
}
body.page-inversiones .tarjeta-estrategia .ver-estrategia {
  display: inline-block;
  margin-top: 14px;
  color: var(--azul);
  font-size: 0.8rem;
}
body.page-inversiones .complementarias-seccion {
  padding: 72px 0;
}
body.page-inversiones .complementarias {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 65px;
}
body.page-inversiones .tarjeta-complementaria {
  position: relative;
  min-height: 355px;
  color: var(--blanco);
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
body.page-inversiones .tarjeta-complementaria:hover {
  box-shadow: 0 24px 55px rgba(7, 23, 36, 0.22);
  transform: translateY(-8px);
}
body.page-inversiones .tarjeta-complementaria img {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.65s ease;
}
body.page-inversiones .tarjeta-complementaria:hover img {
  transform: scale(1.06);
}
body.page-inversiones .tarjeta-complementaria::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(180deg, rgba(7, 23, 36, 0.25), rgba(7, 23, 36, 0.92));
}
body.page-inversiones .complementaria-contenido {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 42px 35px;
}
body.page-inversiones .complementaria-contenido .mini-etiqueta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
body.page-inversiones .complementaria-contenido .mini-etiqueta::before {
  content: "";
  width: 34px;
  height: 1px;
  background: currentColor;
}
body.page-inversiones .complementaria-contenido h3 {
  max-width: 500px;
  margin-bottom: 14px;
  color: var(--blanco);
  font-size: 24px;
}
body.page-inversiones .complementaria-contenido p {
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.8rem;
}
body.page-inversiones .banner {
  display: flex;
  align-items: center;
  color: var(--blanco);
  background: linear-gradient(rgba(216, 91, 7, 0.78), rgba(216, 91, 7, 0.78)),
    url("../media/Banner.jpg") center / cover no-repeat;
}
body.page-inversiones .banner-contenido {
  max-width: 850px;
  padding: 75px 0;
}
body.page-inversiones .banner h2 {
  max-width: 900px;
  color: var(--blanco);
  font-family: var(--titulo);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.13;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}
body.page-inversiones .banner p {
  max-width: 640px;
  margin-top: 22px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 15px;
}
body.page-inversiones .modal {
  width: min(1050px, calc(100% - 34px));
  max-height: min(790px, calc(100vh - 34px));
  padding: 0;
  border: 0;
  background: var(--blanco);
  box-shadow: 0 35px 90px rgba(0, 0, 0, 0.4);
  overflow: hidden;
}
body.page-inversiones .modal::backdrop {
  background: rgba(4, 15, 24, 0.82);
  backdrop-filter: blur(5px);
}
body.page-inversiones .modal-grid {
  display: grid;
  grid-template-columns: 0.84fr 1.16fr;
  min-height: 640px;
}
body.page-inversiones .modal-foto {
  position: relative;
  min-height: 640px;
  overflow: hidden;
  background: var(--azul);
}
body.page-inversiones .modal-foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.page-inversiones .modal-foto::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(7, 23, 36, 0.76), transparent 60%);
}
body.page-inversiones .modal-numero {
  position: absolute;
  right: 28px;
  bottom: 24px;
  z-index: 2;
  color: var(--naranja);
  font-family: var(--titulo);
  font-size: 2.2rem;
}
body.page-inversiones .modal-cuerpo {
  position: relative;
  padding: 64px 54px 44px;
  overflow-y: auto;
}
body.page-inversiones .modal-cerrar {
  position: absolute;
  top: 18px;
  right: 18px;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--borde);
  color: var(--azul);
  background: var(--blanco);
  cursor: pointer;
  font-size: 1.4rem;
}
body.page-inversiones .modal-etiqueta {
  display: block;
  margin-bottom: 15px;
  color: var(--naranja);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
body.page-inversiones .modal-cuerpo h2 {
  margin-bottom: 22px;
  color: var(--verde);
  font-size: clamp(2.2rem, 4vw, 4rem);
}
body.page-inversiones .modal-seccion {
  margin-top: 28px;
}
body.page-inversiones .modal-seccion:first-child {
  margin-top: 0;
}
body.page-inversiones .modal-seccion h3 {
  margin-bottom: 11px;
  color: var(--azul);
  font-size: 1.4rem;
}
body.page-inversiones .modal-seccion p {
  color: var(--gris-texto);
  font-size: 15px;
}
body.page-inversiones .modal-seccion p+p {
  margin-top: 14px;
}
body.page-inversiones .modal-lista {
  margin: 16px 0;
  list-style: none;
  border-top: 1px solid rgba(16, 35, 45, 0.13);
}
body.page-inversiones .modal-lista li {
  position: relative;
  padding: 11px 0 11px 20px;
  border-bottom: 1px solid rgba(16, 35, 45, 0.13);
  color: var(--gris-texto);
  font-size: 15px;
}
body.page-inversiones .modal-lista li::before {
  content: "";
  position: absolute;
  top: 22px;
  left: 0;
  width: 8px;
  height: 1px;
  background: var(--naranja);
}
body.page-inversiones .revelar {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.75s ease, transform 0.75s ease;
}
body.page-inversiones .revelar.visible {
  opacity: 1;
  transform: translateY(0);
}
body.page-inversiones .revelar[data-animacion="izquierda"] {
  transform: translateX(-35px);
}
body.page-inversiones .revelar[data-animacion="derecha"] {
  transform: translateX(35px);
}
body.page-inversiones .revelar[data-animacion="izquierda"].visible,
body.page-inversiones .revelar[data-animacion="derecha"].visible {
  transform: translateX(0);
}
@media (max-width: 930px) {
  body.page-inversiones .menu-movil {
    display: block;
  }
  body.page-inversiones .menu {
    position: fixed;
    top: 0;
    right: -100%;
    bottom: 0;
    z-index: -1;
    width: min(100%, 420px);
    padding: 110px 45px 45px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    background: var(--azul-profundo);
    transition: right 0.35s ease;
  }
  body.page-inversiones .menu.abierto {
    right: 0;
  }
  body.page-inversiones .menu a {
    width: 100%;
    padding: 13px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.11);
    font-size: 1rem;
  }
  body.page-inversiones .areas-grid,
  body.page-inversiones .complementarias {
    grid-template-columns: 1fr;
  }
  body.page-inversiones .estrategia-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  body.page-inversiones .tarjeta-estrategia {
    min-height: auto;
    padding-bottom: 25px;
    border-bottom: 1px solid rgba(16, 35, 45, 0.18);
  }
  body.page-inversiones .modal-grid {
    grid-template-columns: 1fr;
  }
  body.page-inversiones .modal-foto {
    min-height: 250px;
    max-height: 250px;
  }
}
@media (max-width: 620px) {
  body.page-inversiones .contenedor {
    width: min(calc(100% - 34px), var(--contenedor));
  }
  body.page-inversiones .navegacion {
    min-height: 72px;
  }
  body.page-inversiones .hero {
    min-height: 620px;
    background-position: 62% center;
  }
  body.page-inversiones .hero h1 {
    font-size: clamp(3.1rem, 15vw, 5rem);
  }
  body.page-inversiones .areas {
    padding: 62px 0 72px;
  }
  body.page-inversiones .areas-grid {
    gap: 22px;
  }
  body.page-inversiones .tarjeta-area {
    min-height: 270px;
  }
  body.page-inversiones .tarjeta-contenido p {
    max-width: 100%;
    padding-right: 12px;
  }
  body.page-inversiones .estrategia::after {
    right: -190px;
  }
  body.page-inversiones .complementarias {
    gap: 30px;
  }
  body.page-inversiones .tarjeta-complementaria {
    min-height: 390px;
  }
  body.page-inversiones .banner {
    min-height: 460px;
  }
  body.page-inversiones .banner h2 {
    font-size: clamp(2.6rem, 12vw, 4.4rem);
  }
  body.page-inversiones .modal {
    width: calc(100% - 18px);
    max-height: calc(100vh - 18px);
  }
  body.page-inversiones .modal-cuerpo {
    padding: 54px 27px 34px;
  }
  body.page-inversiones .footer-grid {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  body.page-inversiones .footer-marca {
    grid-column: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.page-inversiones *,
  body.page-inversiones *::before,
  body.page-inversiones *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
body.page-portafolio.page-portafolio {
  --azul: #0a1d2b;
  --azul-2: #102a3a;
  --verde: #005d62;
  --naranja: #d8660b;
  --naranja-claro: #ed8b43;
  --blanco: #ffffff;
  --gris: #62686d;
  --gris-claro: #d9dfe1;
  --marfil: #f7f5f0;
  --contenedor: 1000px;
  --sombra: 0 22px 55px rgba(8, 28, 42, 0.16);
}
body.page-portafolio * {
  margin: 0;
  box-sizing: border-box;
}
body.page-portafolio.page-portafolio {
  scroll-behavior: smooth;
}
body.page-portafolio {
  font-family: "MontserratLocal", "Montserrat", sans-serif;
  color: var(--azul);
  background: var(--blanco);
  line-height: 1.55;
  overflow-x: hidden;
}
body.page-portafolio.bloqueado {
  overflow: hidden;
}
body.page-portafolio a {
  color: inherit;
  text-decoration: none;
}
body.page-portafolio button {
  font: inherit;
}
body.page-portafolio img {
  display: block;
  max-width: 100%;
}
body.page-portafolio h1,
body.page-portafolio h2,
body.page-portafolio h3 {
  font-family: "Alverata", "Playfair Display", serif;
  font-weight: 600;
  line-height: 1.08;
}
body.page-portafolio .contenedor {
  width: min(calc(100% - 48px), var(--contenedor));
  margin-inline: auto;
}
body.page-portafolio .progreso {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 3000;
  width: 100%;
  height: 3px;
  pointer-events: none;
}
body.page-portafolio .progreso span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--naranja);
}
body.page-portafolio .encabezado {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease;
}
body.page-portafolio .encabezado.scrolled {
  background: rgba(7, 24, 37, 0.96);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.14);
  backdrop-filter: blur(12px);
}
body.page-portafolio .navegacion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
}
body.page-portafolio .marca {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--naranja);
}
body.page-portafolio .marca img {
  width: 152px;
  height: 46px;
  object-fit: contain;
  object-position: left center;
}
body.page-portafolio .marca-texto {
  display: none;
  font-weight: 700;
  letter-spacing: 0.02em;
}
body.page-portafolio .menu {
  display: flex;
  align-items: center;
  gap: 23px;
}
body.page-portafolio .menu a {
  color: rgba(255, 255, 255, 0.87);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: color 0.25s ease;
}
body.page-portafolio .menu a:hover,
body.page-portafolio .menu a.activo {
  color: var(--naranja);
}
body.page-portafolio .menu-movil {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, 0.34);
  background: transparent;
  cursor: pointer;
}
body.page-portafolio .menu-movil span,
body.page-portafolio .menu-movil span::before,
body.page-portafolio .menu-movil span::after {
  display: block;
  width: 21px;
  height: 1px;
  background: var(--blanco);
  transition: 0.3s ease;
}
body.page-portafolio .menu-movil span {
  position: relative;
}
body.page-portafolio .menu-movil span::before,
body.page-portafolio .menu-movil span::after {
  content: "";
  position: absolute;
  left: 0;
}
body.page-portafolio .menu-movil span::before {
  top: -7px;
}
body.page-portafolio .menu-movil span::after {
  top: 7px;
}
body.page-portafolio .menu-movil.activo span {
  background: transparent;
}
body.page-portafolio .menu-movil.activo span::before {
  top: 0;
  transform: rotate(45deg);
}
body.page-portafolio .menu-movil.activo span::after {
  top: 0;
  transform: rotate(-45deg);
}
body.page-portafolio .hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background-image: url("../media/hero-portafolio.png");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  overflow: hidden;
  color: var(--blanco);
}
body.page-portafolio .hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,
      rgba(4, 19, 33, 0.26),
      transparent 46%);
  pointer-events: none;
}
body.page-portafolio .hero-contenido {
  position: relative;
  z-index: 2;
}
body.page-portafolio .etiqueta {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 25px;
  color: var(--blanco);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.page-portafolio .etiqueta::before {
  content: "";
  width: 38px;
  height: 1px;
  background: currentColor;
}
body.page-portafolio .hero h1 {
  max-width: 990px;
  font-size: 54px;
  letter-spacing: -0.035em;
}
body.page-portafolio .hero h1 em {
  display: block;
  color: var(--naranja);
  font-weight: 600;
}
body.page-portafolio .hero-texto {
  max-width: 830px;
  margin-top: 28px;
}
body.page-portafolio .hero-texto p {
  color: rgba(255, 255, 255, 0.84);
  font-size: 15px;
}
body.page-portafolio .hero-texto p+p {
  margin-top: 24px;
}
body.page-portafolio .portafolio {
  position: relative;
  padding: 96px 0 110px;
  overflow: hidden;
}
body.page-portafolio .circulos {
  position: absolute;
  top: 0;
  right: -128px;
  width: 330px;
  height: 330px;
  border: 1px solid rgba(216, 102, 11, 0.72);
  border-radius: 50%;
  pointer-events: none;
}
body.page-portafolio .circulos::before,
body.page-portafolio .circulos::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(216, 102, 11, 0.72);
  border-radius: 50%;
}
body.page-portafolio .circulos::before {
  inset: 42px;
}
body.page-portafolio .circulos::after {
  inset: 84px;
}
body.page-portafolio .portafolio-cabecera {
  position: relative;
  z-index: 2;
  max-width: 730px;
  margin-bottom: 74px;
}
body.page-portafolio .portafolio-cabecera .etiqueta {
  color: var(--azul);
  margin-bottom: 30px;
}
body.page-portafolio .portafolio-cabecera h2 {
  color: var(--naranja);
  font-size: 42px;
  letter-spacing: -0.035em;
}
body.page-portafolio .filtros {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 50px;
}
body.page-portafolio .filtro {
  min-height: 46px;
  padding: 0 17px;
  border: 1px solid #78909a;
  color: var(--azul);
  background: var(--blanco);
  cursor: pointer;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    border-color 0.25s ease,
    transform 0.25s ease;
}
body.page-portafolio .filtro:hover,
body.page-portafolio .filtro.activo {
  color: var(--blanco);
  background: var(--verde);
  border-color: var(--verde);
  transform: translateY(-2px);
}
body.page-portafolio .proyectos-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 34px 38px;
}
body.page-portafolio .proyecto {
  position: relative;
  min-height: 155px;
  padding: 22px 22px 24px;
  border: 1px solid #aebbc0;
  background: var(--blanco);
  cursor: pointer;
  overflow: hidden;
  transition:
    transform 0.32s ease,
    box-shadow 0.32s ease,
    border-color 0.32s ease,
    opacity 0.25s ease;
}
body.page-portafolio .proyecto:hover {
  z-index: 2;
  border-color: var(--verde);
  box-shadow: var(--sombra);
  transform: translateY(-7px);
}
body.page-portafolio .proyecto.oculto {
  display: none;
}
body.page-portafolio .proyecto-salida {
  animation: salidaTarjeta 0.2s ease forwards;
}
@keyframes salidaTarjeta {
  to {
    opacity: 0;
    transform: scale(0.97);
  }
}
body.page-portafolio .proyecto-superior {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
body.page-portafolio .logo-proyecto {
  position: relative;
  width: 76px;
  height: 76px;
  flex: 0 0 76px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  overflow: hidden;
  background: var(--verde);
  color: var(--blanco);
}
body.page-portafolio .logo-proyecto img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 5px;
  background: var(--blanco);
}
body.page-portafolio .logo-fallback {
  display: none;
  place-items: center;
  width: 100%;
  height: 100%;
  color: var(--blanco);
  background: var(--verde);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-align: center;
}
body.page-portafolio .numero-proyecto {
  color: #d4e6e8;
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
}
body.page-portafolio .proyecto-contenido {
  margin-top: 18px;
  padding-right: 12px;
}
body.page-portafolio .proyecto-contenido h3 {
  color: var(--verde);
  font-size: 24px !important;
}
body.page-portafolio .proyecto-contenido p {
  max-width: 540px;
  margin-top: 5px;
  color: #4d4d4d;
  font-size: 15px;
  line-height: 1.4;
}
body.page-portafolio .ver-mas {
  position: absolute;
  right: 18px;
  bottom: 16px;
  color: var(--verde);
  font-size: 0.76rem;
  font-weight: 600;
  transition: transform 0.25s ease;
}
body.page-portafolio .proyecto:hover .ver-mas {
  transform: translateX(4px);
}
body.page-portafolio .patrimoniales {
  padding: 50px 0;
  color: var(--blanco);
  background: var(--naranja);
  text-align: center;
}
body.page-portafolio .patrimoniales h2 {
  font-size: 32px;
}
body.page-portafolio .patrimoniales>.contenedor>p {
  max-width: 800px;
  margin: 13px auto 32px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 15px;
}
body.page-portafolio .patrimoniales-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
  margin-top: 24px;
}
body.page-portafolio .patrimonial-item span {
  display: block;
  color: rgba(255, 255, 255, 0.52);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 2rem;
}
body.page-portafolio .patrimonial-item strong {
  display: block;
  margin-top: 11px;
  color: var(--blanco);
  font-size: 0.76rem;
  letter-spacing: 0.015em;
  text-transform: uppercase;
}
body.page-portafolio .modal {
  width: min(850px, calc(100% - 32px));
  max-height: calc(100vh - 34px);
  padding: 0;
  border: 0;
  background: var(--blanco);
  box-shadow: 0 35px 100px rgba(0, 0, 0, 0.38);
  overflow: hidden;
}
body.page-portafolio .modal::backdrop {
  background: rgba(3, 17, 27, 0.82);
  backdrop-filter: blur(5px);
}
body.page-portafolio .modal-imagen {
  position: relative;
  height: 310px;
  overflow: hidden;
  background: var(--azul);
}
body.page-portafolio .modal-imagen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.page-portafolio .modal-imagen::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,
      rgba(6, 25, 38, 0.58),
      transparent 58%);
}
body.page-portafolio .modal-cerrar {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  color: var(--blanco);
  background: rgba(8, 28, 42, 0.52);
  cursor: pointer;
  font-size: 1.45rem;
  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    transform 0.25s ease;
}
body.page-portafolio .modal-cerrar:hover {
  color: var(--azul);
  background: var(--blanco);
  transform: rotate(90deg);
}
body.page-portafolio .modal-contenido {
  position: relative;
  max-height: calc(100vh - 344px);
  padding: 43px 52px 50px;
  overflow-y: auto;
}
body.page-portafolio .modal-etiqueta {
  display: block;
  margin-bottom: 13px;
  color: var(--naranja);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
body.page-portafolio .modal-contenido h2 {
  color: var(--verde);
  font-size: clamp(2.35rem, 5vw, 4.25rem);
}
body.page-portafolio .modal-subtitulo {
  margin-top: 8px;
  color: var(--azul);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 1.2rem;
}
body.page-portafolio .modal-descripcion {
  margin-top: 24px;
  color: var(--gris);
  font-size: 0.94rem;
}
body.page-portafolio .modal-descripcion p+p {
  margin-top: 15px;
}
body.page-portafolio .revelar {
  opacity: 0;
  transform: translateY(28px);
}
body.page-portafolio .revelar.visible {
  opacity: 1;
  transform: translateY(0);
}
body.page-portafolio .proyecto.revelar:nth-child(even) {
  transform: translateY(38px);
}
body.page-portafolio .proyecto.revelar.visible {
  transform: translateY(0);
}
@media (max-width: 920px) {
  body.page-portafolio .menu-movil {
    display: flex;
  }
  body.page-portafolio .menu {
    position: fixed;
    top: 0;
    right: -100%;
    bottom: 0;
    z-index: -1;
    width: min(100%, 420px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 100px 48px 48px;
    background: var(--azul);
    transition: right 0.34s ease;
  }
  body.page-portafolio .menu.abierto {
    right: 0;
  }
  body.page-portafolio .menu a {
    width: 100%;
    padding: 13px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    font-family: "Alverata", "Playfair Display", serif;
    font-size: 1.35rem;
    text-transform: none;
  }
  body.page-portafolio .hero {
    min-height: 650px;
  }
}
@media (max-width: 680px) {
  body.page-portafolio .contenedor {
    width: min(calc(100% - 32px), var(--contenedor));
  }
  body.page-portafolio .navegacion {
    min-height: 70px;
  }
  body.page-portafolio .marca img {
    width: 126px;
  }
  body.page-portafolio .hero {
    min-height: 610px;
    padding: 118px 0 70px;
    background-position: 65% center;
  }
  body.page-portafolio .hero h1 {
    font-size: clamp(2.75rem, 12vw, 4.25rem);
  }
  body.page-portafolio .hero-texto p {
    font-size: 0.9rem;
  }
  body.page-portafolio .portafolio {
    padding: 78px 0 86px;
  }
  body.page-portafolio .portafolio-cabecera {
    margin-bottom: 54px;
  }
  body.page-portafolio .circulos {
    right: -220px;
  }
  body.page-portafolio .filtros {
    display: grid;
    grid-template-columns: 1fr;
  }
  body.page-portafolio .proyectos-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body.page-portafolio .proyecto {
    min-height: 250px;
  }
  body.page-portafolio .patrimoniales-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  body.page-portafolio .modal-imagen {
    height: 230px;
  }
  body.page-portafolio .modal-contenido {
    max-height: calc(100vh - 264px);
    padding: 36px 27px 40px;
  }
  body.page-portafolio .footer-grid {
    grid-template-columns: 1fr;
    gap: 40px;
    padding-bottom: 55px;
  }
  body.page-portafolio .footer-marca {
    grid-column: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.page-portafolio *,
  body.page-portafolio *::before,
  body.page-portafolio *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
body.page-perspectivas.page-perspectivas {
  --azul: #0b1f2b;
  --azul-oscuro: #071725;
  --verde: #0b5e62;
  --naranja: #db6508;
  --naranja-claro: #ef8d47;
  --marfil: #f8f5ef;
  --durazno: #f5ddcb;
  --blanco: #ffffff;
  --gris: #60686d;
  --borde: rgba(10, 31, 43, 0.16);
  --contenedor: 1000px;
  --sombra: 0 24px 60px rgba(5, 25, 37, 0.18);
}
body.page-perspectivas * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body.page-perspectivas.page-perspectivas {
  scroll-behavior: smooth;
}
body.page-perspectivas {
  font-family: "MontserratLocal", "Montserrat", sans-serif;
  color: var(--azul);
  background: var(--blanco);
  line-height: 1.55;
  overflow-x: hidden;
}
body.page-perspectivas.bloqueado {
  overflow: hidden;
}
body.page-perspectivas a {
  color: inherit;
  text-decoration: none;
}
body.page-perspectivas button {
  font: inherit;
}
body.page-perspectivas img {
  display: block;
  width: 100%;
  object-fit: cover;
}
body.page-perspectivas h1,
body.page-perspectivas h2,
body.page-perspectivas h3 {
  font-family: "Alverata", "Playfair Display", serif;
  font-weight: 600;
  line-height: 1.08;
}
body.page-perspectivas .contenedor {
  width: min(calc(100% - 48px), var(--contenedor));
  margin-inline: auto;
}
body.page-perspectivas .progreso {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 3000;
  width: 100%;
  height: 3px;
  pointer-events: none;
}
body.page-perspectivas .progreso span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--naranja);
}
body.page-perspectivas .encabezado {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease;
}
body.page-perspectivas .encabezado.scrolled {
  background: rgba(6, 23, 36, 0.96);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.14);
  backdrop-filter: blur(12px);
}
body.page-perspectivas .navegacion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
}
body.page-perspectivas .marca {
  display: flex;
  align-items: center;
  color: var(--naranja);
}
body.page-perspectivas .marca img {
  width: 152px;
  height: 46px;
  object-fit: contain;
  object-position: left center;
}
body.page-perspectivas .marca-texto {
  display: none;
  font-weight: 700;
  letter-spacing: 0.03em;
}
body.page-perspectivas .menu {
  display: flex;
  align-items: center;
  gap: 23px;
}
body.page-perspectivas .menu a {
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: color 0.25s ease;
}
body.page-perspectivas .menu a:hover,
body.page-perspectivas .menu a.activo {
  color: var(--naranja);
}
body.page-perspectivas .menu-movil {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  background: transparent;
  cursor: pointer;
}
body.page-perspectivas .menu-movil span,
body.page-perspectivas .menu-movil span::before,
body.page-perspectivas .menu-movil span::after {
  display: block;
  width: 21px;
  height: 1px;
  background: var(--blanco);
  transition: 0.3s ease;
}
body.page-perspectivas .menu-movil span {
  position: relative;
}
body.page-perspectivas .menu-movil span::before,
body.page-perspectivas .menu-movil span::after {
  content: "";
  position: absolute;
  left: 0;
}
body.page-perspectivas .menu-movil span::before {
  top: -7px;
}
body.page-perspectivas .menu-movil span::after {
  top: 7px;
}
body.page-perspectivas .menu-movil.activo span {
  background: transparent;
}
body.page-perspectivas .menu-movil.activo span::before {
  top: 0;
  transform: rotate(45deg);
}
body.page-perspectivas .menu-movil.activo span::after {
  top: 0;
  transform: rotate(-45deg);
}
body.page-perspectivas .hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background-image: url("../media/hero-perspectivas.webp");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  overflow: hidden;
  color: var(--blanco);
}
body.page-perspectivas .hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,
      rgba(5, 21, 34, 0.24),
      transparent 48%);
  pointer-events: none;
}
body.page-perspectivas .hero-contenido {
  position: relative;
  z-index: 2;
}
body.page-perspectivas .etiqueta {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 26px;
  color: currentColor;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
body.page-perspectivas .etiqueta::before {
  content: "";
  width: 38px;
  height: 1px;
  background: currentColor;
}
body.page-perspectivas .hero h1 {
  max-width: 900px;
  font-size: 54px;
  letter-spacing: -0.04em;
}
body.page-perspectivas .hero h1 em {
  display: block;
  color: var(--naranja);
  font-weight: 600;
}
body.page-perspectivas .hero p {
  max-width: 600px;
  margin-top: 28px;
  color: rgba(255, 255, 255, 0.84);
  font-size: 15px;
}
body.page-perspectivas .tematicas {
  position: relative;
  padding: 96px 0 110px;
  color: var(--blanco);
  background:
    linear-gradient(rgba(18, 29, 45, 0.96),
      rgba(18, 29, 45, 0.96)),
    none;
  background-position: center;
  background-size: cover;
  overflow: hidden;
}
body.page-perspectivas .circulo-decorativo {
  position: absolute;
  width: 310px;
  height: 310px;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 50%;
  pointer-events: none;
}
body.page-perspectivas .circulo-decorativo::before,
body.page-perspectivas .circulo-decorativo::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 50%;
}
body.page-perspectivas .circulo-decorativo::before {
  inset: 36px;
}
body.page-perspectivas .circulo-decorativo::after {
  inset: 72px;
}
body.page-perspectivas .circulo-superior {
  top: 0;
  right: -135px;
}
body.page-perspectivas .circulo-inferior {
  bottom: -95px;
  left: -220px;
}
body.page-perspectivas .tematicas-cabecera {
  position: relative;
  z-index: 2;
  max-width: 760px;
  margin-bottom: 78px;
}
body.page-perspectivas .tematicas h2 {
  font-size: 32px;
  letter-spacing: -0.035em;
}
body.page-perspectivas .ruta-tematicas {
  position: relative;
  z-index: 2;
  width: min(760px, 100%);
  margin-inline: auto;
  padding: 0 28px;
}
body.page-perspectivas .ruta-tematicas::before {
  content: "";
  position: absolute;
  top: 38px;
  bottom: 38px;
  left: 50%;
  width: 1px;
  background: rgba(255, 255, 255, 0.18);
  transform: translateX(-50%);
}
body.page-perspectivas .tema {
  position: relative;
  min-height: 118px;
  display: grid;
  grid-template-columns: 1fr 82px 1fr;
  align-items: center;
}
body.page-perspectivas .tema-numero {
  position: relative;
  z-index: 3;
  grid-column: 2;
  display: grid;
  place-items: center;
  width: 76px;
  height: 58px;
  border: 1px solid rgba(255, 255, 255, 0.95);
  color: var(--blanco);
  background: var(--azul);
  font-family: "Alverata", "Playfair Display", serif;
  font-size: 1.15rem;
  justify-self: center;
  transition:
    color 0.3s ease,
    background-color 0.3s ease,
    transform 0.3s ease;
}
body.page-perspectivas .tema:nth-child(odd) .tema-contenido {
  grid-column: 3;
  justify-content: flex-start;
  padding-left: 24px;
}
body.page-perspectivas .tema-icono {
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--blanco);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16);
  overflow: hidden;
  transition:
    transform 0.6s ease,
    box-shadow 0.3s ease;
}
body.page-perspectivas .tema-icono img {
  width: 38px;
  height: 38px;
  padding: 3px;
  object-fit: contain;
  transition: transform 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
}
body.page-perspectivas .tema-icono-fondo {
  display: none;
  width: 22px;
  height: 22px;
  border: 2px solid var(--azul);
  border-radius: 50%;
}
body.page-perspectivas .tema:hover .tema-icono {
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
  transform: scale(1.08);
}
body.page-perspectivas .tema:hover .tema-icono img {
  transform: rotate(360deg);
}
body.page-perspectivas .tema:hover .tema-numero {
  color: var(--azul);
  background: var(--naranja);
  transform: scale(1.04);
}
body.page-perspectivas .tema h3 {
  color: var(--blanco);
  font-family: "MontserratLocal", "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}
body.page-perspectivas .oportunidades {
  position: relative;
  padding: 92px 0 72px;
  background: var(--blanco);
  overflow: hidden;
}
body.page-perspectivas .oportunidades .circulo-decorativo {
  border-color: rgba(219, 101, 8, 0.75);
}
body.page-perspectivas .oportunidades .circulo-decorativo::before,
body.page-perspectivas .oportunidades .circulo-decorativo::after {
  border-color: rgba(219, 101, 8, 0.75);
}
body.page-perspectivas .oportunidades .circulo-superior {
  top: 0;
  right: -190px;
}
body.page-perspectivas .oportunidades-cabecera {
  position: relative;
  z-index: 2;
  max-width: 850px;
  margin: 0 auto 72px;
  text-align: center;
}
body.page-perspectivas .oportunidades-cabecera .etiqueta {
  justify-content: center;
  color: var(--naranja);
}
body.page-perspectivas .oportunidades-cabecera .etiqueta::after {
  content: "";
  width: 38px;
  height: 1px;
  background: currentColor;
}
body.page-perspectivas .oportunidades-cabecera h2 {
  font-size: 42px;
  letter-spacing: -0.035em;
}
body.page-perspectivas .oportunidades-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 42px 58px;
  align-items: start;
}
body.page-perspectivas .bloque-oportunidad {
  min-width: 0;
}
body.page-perspectivas .bloque-oportunidad h3 {
  margin-bottom: 28px;
  color: var(--naranja);
  font-size: 24px;
}
body.page-perspectivas .lista {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
}
body.page-perspectivas .lista li {
  position: relative;
  padding: 15px 0 15px 22px;
  border-bottom: 1px solid rgba(11, 31, 43, 0.09);
  color: var(--azul);
  font-size:0.8rem !important;
  font-weight: 700;
  text-transform: uppercase;
}
body.page-perspectivas .lista li::before {
  content: "";
  position: absolute;
  top: 26px;
  left: 0;
  width: 11px;
  height: 1px;
  background: var(--naranja);
}
body.page-perspectivas .imagen-oportunidad {
  position: relative;
  min-height: 305px;
  overflow: hidden;
  background: #d9d9d9;
  box-shadow: var(--sombra);
}
body.page-perspectivas .imagen-oportunidad img {
  width: 100%;
  height: 305px;
  object-fit: cover;
  transition: transform 0.2s ease;
}
body.page-perspectivas .imagen-oportunidad:hover img {
  transform: scale(1.06);
}
body.page-perspectivas .imagen-oportunidad::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(11, 31, 43, 0.08);
  pointer-events: none;
}
body.page-perspectivas .imagen-superior {
  grid-column: 2;
  grid-row: 1;
  margin-top: 68px;
}
body.page-perspectivas .bloque-busqueda {
  grid-column: 1;
  grid-row: 1;
}
body.page-perspectivas .imagen-inferior {
  grid-column: 1;
  grid-row: 2;
}
body.page-perspectivas .bloque-operacion {
  grid-column: 2;
  grid-row: 2;
  padding-top: 34px;
}
.banner-contacto {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.banner-contacto-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
}
.banner-contacto-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgb(245 221 203 / 95%), rgb(245 221 203 / 69%) 58%, rgb(245 221 203 / 90%));
  z-index: -1;
}
.banner-contenido {
  position: relative;
  z-index: 1;
}
body.page-perspectivas .banner-contenido {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 50px;
  align-items: center;
  padding: 58px 0;
}
body.page-perspectivas .banner-contacto .etiqueta {
  color: var(--naranja);
  margin-bottom: 18px;
}
body.page-perspectivas .banner-contacto h2 {
  max-width: 780px;
  font-size: 42px;
  letter-spacing: -0.035em;
}
body.page-perspectivas .banner-contacto p {
  max-width: 680px;
  margin-top: 19px;
  color: #4f5458;
  font-size: 15px;
}
body.page-perspectivas .boton-contacto {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 25px;
  border: 1px solid var(--naranja);
  color: var(--blanco);
  background: var(--naranja);
  font-size: 0.8rem;
  font-weight: 600;
  white-space: nowrap;
  transition:
    color 0.28s ease,
    background-color 0.28s ease,
    transform 0.28s ease,
    box-shadow 0.28s ease;
}
body.page-perspectivas .boton-contacto:hover {
  color: var(--naranja);
  background: var(--blanco);
  box-shadow: 0 14px 30px rgba(153, 65, 0, 0.18);
  transform: translateY(-4px);
}
body.page-perspectivas .revelar {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.75s ease,
    transform 0.75s ease;
}
body.page-perspectivas .revelar.visible {
  opacity: 1;
  transform: translateY(0);
}
body.page-perspectivas .tema.revelar:nth-child(even) {
  transform: translateX(-38px);
}
body.page-perspectivas .tema.revelar:nth-child(odd) {
  transform: translateX(38px);
}
body.page-perspectivas .tema.revelar.visible {
  transform: translateX(0);
}
@media (max-width: 930px) {
  body.page-perspectivas .menu-movil {
    display: flex;
  }
  body.page-perspectivas .menu {
    position: fixed;
    top: 0;
    right: -100%;
    bottom: 0;
    z-index: -1;
    width: min(100%, 420px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 100px 48px 48px;
    background: var(--azul);
    transition: right 0.34s ease;
  }
  body.page-perspectivas .menu.abierto {
    right: 0;
  }
  body.page-perspectivas .menu a {
    width: 100%;
    padding: 13px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    font-family: "Alverata", "Playfair Display", serif;
    font-size: 1.35rem;
    text-transform: none;
  }
  body.page-perspectivas .oportunidades-grid {
    gap: 38px;
  }
  body.page-perspectivas .banner-contenido {
    grid-template-columns: 1fr;
  }
  body.page-perspectivas .boton-contacto {
    width: fit-content;
  }
  body.page-perspectivas .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  body.page-perspectivas .footer-marca {
    grid-column: 1 / -1;
  }
}
@media (max-width: 700px) {
  body.page-perspectivas .contenedor {
    width: min(calc(100% - 32px), var(--contenedor));
  }
  body.page-perspectivas .navegacion {
    min-height: 70px;
  }
  body.page-perspectivas .marca img {
    width: 126px;
  }
  body.page-perspectivas .hero {
    min-height: 590px;
    padding: 118px 0 72px;
    background-position: 64% center;
  }
  body.page-perspectivas .hero h1 {
    font-size: clamp(2.75rem, 12vw, 4.2rem);
  }
  body.page-perspectivas .tematicas {
    padding: 78px 0 90px;
  }
  body.page-perspectivas .ruta-tematicas {
    padding: 0;
  }
  body.page-perspectivas .ruta-tematicas::before {
    left: 38px;
    transform: none;
  }
  body.page-perspectivas .tema {
    grid-template-columns: 76px 1fr;
    min-height: 112px;
  }
  body.page-perspectivas .tema-numero {
    grid-column: 1;
    grid-row: 1;
    width: 66px;
    height: 54px;
  }
  body.page-perspectivas .tema:nth-child(odd) .tema-contenido,
  body.page-perspectivas .tema:nth-child(even) .tema-contenido {
    grid-column: 2;
    grid-row: 1;
    justify-content: flex-start;
    padding: 0 0 0 18px;
    text-align: left;
  }
  body.page-perspectivas .tema-icono {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
  }
  body.page-perspectivas .oportunidades {
    padding: 76px 0 62px;
  }
  body.page-perspectivas .oportunidades-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  body.page-perspectivas .bloque-busqueda,
  body.page-perspectivas .imagen-superior,
  body.page-perspectivas .imagen-inferior,
  body.page-perspectivas .bloque-operacion {
    grid-column: 1;
    grid-row: auto;
    margin-top: 0;
    padding-top: 0;
  }
  body.page-perspectivas .bloque-busqueda {
    order: 1;
  }
  body.page-perspectivas .imagen-superior {
    order: 2;
  }
  body.page-perspectivas .bloque-operacion {
    order: 3;
  }
  body.page-perspectivas .imagen-inferior {
    order: 4;
  }
  body.page-perspectivas .lista {
    grid-template-columns: 1fr;
  }
  body.page-perspectivas .imagen-oportunidad,
  body.page-perspectivas .imagen-oportunidad img {
    min-height: 250px;
    height: 250px;
  }
  body.page-perspectivas .banner-contacto {
    min-height: 460px;
    background-position: 62% center;
  }
  body.page-perspectivas .banner-contenido {
    gap: 28px;
    padding: 64px 0;
  }
  body.page-perspectivas .footer-grid {
    grid-template-columns: 1fr;
    gap: 40px;
    padding-bottom: 55px;
  }
  body.page-perspectivas .footer-marca {
    grid-column: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.page-perspectivas *,
  body.page-perspectivas *::before,
  body.page-perspectivas *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
@font-face {
  font-family: "Alverata";
  src: url("../fonts/Alverata.ttf") format("truetype");
  font-display: swap;
  font-style: normal;
  font-weight: 400 800
}
:root {
  --navy: #13242c;
  --navy-deep: #0b1922;
  --teal: #07545b;
  --orange: #d76620;
  --orange-soft: #e98a4b;
  --ice: #e8f0f1;
  --ivory: #f7f5f1;
  --white: #fff;
  --ink: #1a2a32;
  --muted: #667178;
  --border: rgba(19, 36, 44, .17);
  --shadow-sm: 0 12px 30px rgba(11, 25, 34, .10);
  --shadow-lg: 0 28px 70px rgba(11, 25, 34, .18);
  --container: 1180px;
  --header-height: 78px
}
html {
  scroll-behavior: smooth
}
body {
  min-width: 320px;
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: "Montserrat", Arial, sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased
}
body.menu-open,
body.modal-open,
body.bloqueado {
  overflow: hidden
}
*,
*::before,
*::after {
  box-sizing: border-box
}
body[class*="page-"] .site-header {
  position: fixed !important;
  inset: 0 0 auto !important;
  z-index: 5000 !important;
  width: 100% !important;
  min-width: 320px !important;
  color: #fff !important;
  border-bottom: 1px solid rgba(255, 255, 255, .14) !important;
  background: rgba(11, 25, 34, .48) !important;
}
body[class*="page-"] .site-header.scrolled {
  background: rgba(11, 25, 34, .97) !important;
  box-shadow: 0 12px 34px rgba(0, 0, 0, .18) !important;
  backdrop-filter: blur(16px) !important;
}
body[class*="page-"] .site-header .container.navbar {
  width: min(calc(100% - 48px), 1180px) !important;
  min-height: 78px !important;
  margin-inline: auto !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 34px !important;
}
body[class*="page-"] .site-header .brand {
  width: 190px !important;
  min-width: 190px !important;
  height: 54px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex: 0 0 190px !important;
  overflow: visible !important;
}
body[class*="page-"] .brand-logo-slot {
  display: block !important;
  width: 180px !important;
  height: 48px !important;
  flex: 0 0 auto !important;
}
body[class*="page-"] .brand-logo-image {
  display: block !important;
  width: auto !important;
  max-width: 180px !important;
  height: auto !important;
  max-height: 62px !important;
  object-fit: contain !important;
  object-position: left center !important;
}
body[class*="page-"] .main-nav {
  position: static !important;
  inset: auto !important;
  margin-left: auto !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 28px !important;
  background: transparent !important;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body[class*="page-"] .main-nav a {
  position: relative !important;
  padding: 30px 0 27px !important;
  border: 0 !important;
  color: rgba(255, 255, 255, .82) !important;
  font-size: .69rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: .075em !important;
  white-space: nowrap !important;
  text-transform: uppercase !important;
}
body[class*="page-"] .main-nav a::after {
  position: absolute !important;
  right: 0 !important;
  bottom: 20px !important;
  left: 0 !important;
  display: block !important;
  height: 2px !important;
  background: var(--orange, #d76620) !important;
  content: "" !important;
  transform: scaleX(0) !important;
  transform-origin: center !important;
  transition: transform .22s ease !important;
}
body[class*="page-"] .main-nav a:hover,
body[class*="page-"] .main-nav a:focus-visible,
body[class*="page-"] .main-nav a.active {
  color: #fff !important;
}
body[class*="page-"] .main-nav a:hover::after,
body[class*="page-"] .main-nav a:focus-visible::after,
body[class*="page-"] .main-nav a.active::after {
  transform: scaleX(1) !important;
}
body[class*="page-"] .menu-toggle {
  display: none !important;
  flex: 0 0 46px !important;
}
body.page-index .investment-areas-showcase {
  position: relative !important;
  background: #fff !important;
  overflow: hidden !important;
}
body.page-index .investment-showcase-head {
  margin-bottom: 32px !important;
}
body.page-index .investment-showcase-copy {
  position: relative !important;
  z-index: 2 !important;
  width: min(610px, 68%) !important;
}
body.page-index .investment-showcase-copy .eyebrow {
  margin-bottom: 20px !important;
}
body.page-index .investment-showcase-copy h2 {
  max-width: 610px !important;
  margin: 0 !important;
  color: #16262e !important;
  font-family: "Alverata", Georgia, serif !important;
  font-weight: 700 !important;
  line-height: 1.02 !important;
  letter-spacing: -.035em !important;
  text-transform: uppercase !important;
  text-decoration-thickness: 3px !important;
  text-underline-offset: 7px !important;
}
body.page-index .investment-showcase-copy p {
  max-width: 510px !important;
  margin: 34px 0 0 !important;
  color: #394950 !important;
  font-size: .88rem !important;
  line-height: 1.45 !important;
}
body.page-index .investment-rings {
  position: absolute !important;
  top: -55px !important;
  right: -120px !important;
  width: 330px !important;
  aspect-ratio: 1 !important;
  border: 1px solid rgba(215, 102, 32, .78) !important;
  border-radius: 50% !important;
}
body.page-index .investment-rings::before,
body.page-index .investment-rings::after {
  position: absolute !important;
  border: 1px solid rgba(215, 102, 32, .78) !important;
  border-radius: 50% !important;
  content: "" !important;
}
body.page-index .investment-rings::before {
  inset: 42px !important
}
body.page-index .investment-rings::after {
  inset: 88px !important
}
body.page-index .sector-mosaic {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}
body.page-index .sector-mosaic .sector-card {
  position: relative !important;
  grid-column: span 2 !important;
  min-height: 270px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  cursor: pointer !important;
  isolation: isolate !important;
  overflow: hidden !important;
}
body.page-index .sector-mosaic .sector-card:nth-child(4),
body.page-index .sector-mosaic .sector-card:nth-child(5) {
  grid-column: span 3 !important;
}
body.page-index .sector-mosaic .sector-overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: -2 !important;
}
body.page-index .sector-mosaic .sector-card h3 {
  width: 100% !important;
  margin: 0 !important;
  padding: 24px 18px !important;
  color: #fff !important;
  font-family: "Alverata", Georgia, serif !important;
  font-size: clamp(1.05rem, 1.7vw, 1.55rem) !important;
  line-height: 1.1 !important;
  text-align: center !important;
  text-transform: none !important;
}
body.page-index .sector-mosaic .sector-card:hover,
body.page-index .sector-mosaic .sector-card:focus-visible {
  transform: translateY(-6px) !important;
}
body[class*="page-"] .company-isotype-slot,
body[class*="page-"] .modal-isotype-slot {
  display: grid !important;
  place-items: center !important;
  width: 78px !important;
  height: 78px !important;
  flex: 0 0 78px !important;
  border: 1px solid rgba(19, 36, 44, .22) !important;
  background: var(--navy) !important;
  overflow: hidden !important;
}
body[class*="page-"] .company-isotype-slot img,
body[class*="page-"] .modal-isotype-slot img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
}
body[class*="page-"] .modal-isotype-slot {
  width: 140px;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.page-index .portfolio-card .company-isotype-slot {
  margin: 18px auto 0 !important;
}
body.page-index .portfolio-card h3 {
  margin-top: 18px !important;
}
body.page-portafolio .proyecto-superior {
  align-items: flex-start !important;
}
dialog.site-modal,
dialog.content-modal,
dialog.map-modal,
body.page-inversiones dialog.modal,
body.page-portafolio dialog.modal {
  position: fixed !important;
  inset: 0 !important;
  width: min(980px, calc(100% - 40px)) !important;
  max-width: 980px !important;
  height: auto !important;
  max-height: calc(100dvh - 40px) !important;
  margin: auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: hidden !important;
}
dialog.site-modal[open],
dialog.content-modal[open],
dialog.map-modal[open],
body.page-inversiones dialog.modal[open],
body.page-portafolio dialog.modal[open] {
  display: grid !important;
  place-items: center !important;
}
dialog.site-modal::backdrop,
dialog.content-modal::backdrop,
dialog.map-modal::backdrop,
body.page-inversiones dialog.modal::backdrop,
body.page-portafolio dialog.modal::backdrop {
  background: rgba(5, 19, 27, .82) !important;
  backdrop-filter: blur(6px) !important;
}
body[class*="page-"] .site-modal-panel {
  position: relative !important;
  width: 100% !important;
  max-height: calc(100dvh - 40px) !important;
  border: 0 !important;
  background: #fff !important;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .38) !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
}
body[class*="page-"] .site-modal-hero {
  position: relative !important;
  min-height: 285px !important;
  display: flex !important;
  align-items: flex-end !important;
  color: #fff !important;
  background-position: center !important;
  background-size: cover !important;
  overflow: hidden !important;
  isolation: isolate !important;
}
body[class*="page-"] .site-modal-hero::after {
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  background: linear-gradient(180deg, rgba(7, 20, 27, .10), rgba(7, 20, 27, .90)) !important;
  content: "" !important;
}
body[class*="page-"] .site-modal-hero .modal-cover-slot {
  position: absolute !important;
  inset: 0 !important;
  z-index: -2 !important;
  display: block !important;
}
body[class*="page-"] .site-modal-hero.has-image .modal-cover-slot {
  background: transparent !important
}
body[class*="page-"] .site-modal-hero-content {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  padding: 24px 42px !important;
}
body[class*="page-"] .site-modal-hero-content h2,
body.page-inversiones .site-modal-hero-content h2,
body.page-portafolio .site-modal-hero-content h2 {
  max-width: 780px !important;
  margin: 10px 0 0 !important;
  color: #fff !important;
  font-family: "Alverata", Georgia, serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -.035em !important;
}
body[class*="page-"] .site-modal-hero-content .modal-etiqueta,
body[class*="page-"] .site-modal-hero-content .modal-numero {
  display: inline-block !important;
  margin: 0 14px 0 0 !important;
  color: #f28a45 !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}
body[class*="page-"] .modal-title-row {
  display: flex !important;
  align-items: center !important;
  gap: 22px !important;
  margin-top: 14px !important;
}
body[class*="page-"] .modal-title-row h2 {
  margin: 0 !important
}
body[class*="page-"] .modal-title-row .modal-isotype-slot {
  border-color: rgba(255, 255, 255, .42) !important;
  background: #D46A1F !important;
}
body[class*="page-"] .site-modal-hero-content .modal-subtitulo {
  max-width: 760px !important;
  margin-top: 18px !important;
  color: rgba(255, 255, 255, .88) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
}
body[class*="page-"] .site-modal-body {
  padding: 32px 52px !important;
  color: #4e5b61 !important;
  background: #fff !important;
  font-size: 15px !important;
  line-height: 1.72 !important;
}
body[class*="page-"] .site-modal-body h3 {
  margin: 34px 0 12px !important;
  color: #07545b !important;
  font-family: "Alverata", Georgia, serif !important;
  font-size: 24px !important;
}
body[class*="page-"] .site-modal-body p {
  margin: 0 0 18px !important;
  color: #56636a !important
}
body[class*="page-"] .site-modal-body ul {
  margin: 18px 0 24px !important;
  padding-left: 21px !important
}
body[class*="page-"] .modal-close-text {
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;
  z-index: 10 !important;
  min-width: auto !important;
  min-height: 38px !important;
  padding: 0 16px !important;
  border: 1px solid rgba(255, 255, 255, .7) !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: rgba(7, 20, 27, .48) !important;
  cursor: pointer !important;
  font-size: .68rem !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
body[class*="page-"] .modal-close-text:hover,
body[class*="page-"] .modal-close-text:focus-visible {
  color: #13242c !important;
  background: #fff !important;
}
body[class*="page-"] .site-modal-panel-map {
  padding: 0 !important;
}
body[class*="page-"] .site-modal-panel-map .map-modal-header {
  position: relative !important;
  padding: 34px 120px 30px 36px !important;
  color: #fff !important;
  background: #13242c !important;
}
body[class*="page-"] .site-modal-panel-map .map-modal-header h2 {
  color: #fff !important
}
body[class*="page-"] .site-modal-panel-map iframe {
  display: block !important;
  width: 100% !important;
  height: min(520px, 60dvh) !important;
  border: 0 !important;
}
body[class*="page-"] button:disabled {
  cursor: not-allowed !important;
  opacity: .62 !important;
  transform: none !important;
}
@media(max-width:1050px) {
  body[class*="page-"] .site-header .container.navbar {
    width: min(calc(100% - 36px), 1180px) !important;
    gap: 24px !important
  }
  body[class*="page-"] .site-header .brand {
    width: 165px !important;
    min-width: 165px !important;
    flex-basis: 165px !important
  }
  body[class*="page-"] .brand-logo-slot {
    width: 155px !important
  }
  body[class*="page-"] .main-nav {
    gap: 18px !important
  }
  body[class*="page-"] .main-nav a {
    font-size: .64rem !important;
    letter-spacing: .055em !important
  }
}
@media(max-width:900px) {
  body[class*="page-"] .site-header .container.navbar {
    min-height: 72px !important
  }
  body[class*="page-"] .site-header .brand {
    height: 50px !important
  }
  body[class*="page-"] .menu-toggle {
    display: grid !important;
    place-items: center !important
  }
  body[class*="page-"] .main-nav {
    position: fixed !important;
    inset: 72px 0 auto !important;
    margin: 0 !important;
    padding: 14px 22px 24px !important;
    display: grid !important;
    justify-content: stretch !important;
    gap: 0 !important;
    background: rgba(11, 25, 34, .985) !important;
    transform: translateY(-115%) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: transform .28s ease, opacity .28s ease, visibility .28s ease !important;
  }
  body[class*="page-"] .main-nav.open {
    transform: translateY(0) !important;
    opacity: 1 !important;
    visibility: visible !important
  }
  body[class*="page-"] .main-nav a {
    padding: 16px 4px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .1) !important;
    font-size: .72rem !important
  }
  body[class*="page-"] .main-nav a::after {
    display: none !important
  }
  body.page-index .investment-showcase-copy {
    width: min(640px, 80%) !important
  }
  body.page-index .investment-rings {
    right: -185px !important
  }
  body.page-index .sector-mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important
  }
  body.page-index .sector-mosaic .sector-card,
  body.page-index .sector-mosaic .sector-card:nth-child(4),
  body.page-index .sector-mosaic .sector-card:nth-child(5) {
    grid-column: span 1 !important
  }
  body.page-index .sector-mosaic .sector-card:last-child {
    grid-column: 1/-1 !important
  }
}
body.page-inversiones .site-modal-hero-content .modal-numero {
  position: static !important;
  inset: auto !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
body.page-index .sector-mosaic .sector-media-slot img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.hero {
  background-image: url("../media/hero-inicio.webp");
  background-repeat: no-repeat;
  background-attachment: fixed;
  min-height: 100vh;
}
.hero-content {
  position: relative;
  padding-left: 70px;
}
.hero-content::before {
  content: "";
  position: absolute;
  left: 50px;
  top: 2px;
  width: 1.5px;
  height: 380px;
  background: #d76620;
  border-radius: 2px;
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #d76620;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 15px;
}
.hero-line {
  width: 42px;
  height: 2px;
  background: #d76620;
}
@media (max-width: 768px) {
  .hero {
    background-image: url("../media/hero-mobile.webp");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    background-attachment: scroll;
  }
}
@media (max-width: 768px) {
  .hero-content {
    padding-left: 24px;
  }
  .hero-content::before {
    height: 220px;
  }
}
.icon-circle {
  width: 80px;
  height: 80px;
  background: #1f2d38;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 25px;
  transition: all .35s ease;
  box-shadow:
    0 15px 35px rgba(0, 0, 0, .25),
    0 5px 15px rgba(0, 0, 0, .15),
    inset 0 1px 2px rgba(255, 255, 255, .08);
  animation: floatIcon 3s ease-in-out infinite;
}
.flip-card:hover .icon-circle {
  transform: translateY(-8px) scale(1.08);
  box-shadow:
    0 25px 45px rgba(0, 0, 0, .35),
    0 10px 25px rgba(230, 126, 34, .35);
  background: #243543;
}
.flip-icon {
  width: 60px;
  height: 60px;
  transition: transform .35s ease;
}
.flip-card:hover .flip-icon {
  transform: scale(1.12) rotate(5deg);
}
@keyframes floatIcon {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
  100% {
    transform: translateY(0);
  }
}
.sector-energy .sector-media-slot {
  background: url("../media/areas/Energia.jpg") center/cover no-repeat !important;
}
.sector-agro .sector-media-slot {
  background: url("../media/areas/Agroindustria.jpg") center center / cover no-repeat;
}
.sector-wine .sector-media-slot {
  background: url("../media/areas/Vino.jpg") center center / cover no-repeat;
}
.sector-commerce .sector-media-slot {
  background: url("../media/areas/Comercio.jpg") center center / cover no-repeat;
}
.sector-tech .sector-media-slot {
  background: url("../media/areas/Tecnologia.jpg") center center / cover no-repeat;
}
.sector-card {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
}
.sector-media-slot {
  position: absolute;
  inset: 12px;
  border-radius: 12px;
  background-size: cover !important;
  background-position: center !important;
  transition: transform .5s ease;
}
.sector-overlay {
  position: absolute;
  inset: 12px;
  z-index: 2;
}
.sector-card h3 {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 28px;
  z-index: 3;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin: 0;
  padding: 0 20px;
  color: #fff;
  font-size: 2rem;
  line-height: 1.2;
  text-shadow: 0 3px 12px rgba(0, 0, 0, .6);
}
.arrow-icon {
  transition: transform .3s ease;
}
.text-link:hover .arrow-icon {
  transform: translateX(5px);
}
.portfolio-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-end;
  margin-top: auto;
}
.portfolio-more .arrow-icon {
  width: 18px;
  height: 18px;
  display: block;
  flex-shrink: 0;
  transition: transform .3s ease;
}
.portfolio-more:hover .arrow-icon {
  transform: translateX(5px);
}
input::placeholder,
textarea::placeholder {
  font-size: 12px !important;
}
select {
  font-size: 12px;
}
select option {
  font-size: 12px;
  padding: 8px;
}
.contact-form select {
  font-size: 12px !important;
  font-family: "Montserrat", sans-serif;
  height: 58px;
  padding: 0 18px;
}
.philosophy-media {
  border-radius: 0 20px 20px 0;
  border: 2px solid #fff;
  background: url("../media/filosofia.jpg") center center / cover no-repeat;
}
h6 {
  font-size: 10px;
}
.filosofia-icono img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  display: block;
}
.area-icono {
  width: 72px;
  height: 72px;
  margin-bottom: 24px;
}
.area-icono img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.ver-mas {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
}
.ver-mas svg {
  transition: .35s;
}
.tarjeta-area:hover .ver-mas svg {
  transform: translateX(6px);
}
.tarjeta-complementaria {
  min-height: 430px;
  display: flex;
  align-items: center;
  color: var(--blanco);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.tarjeta-tecnologia {
  background:
    url("../media/modales/tecnologia.png") center / cover no-repeat;
}
.tarjeta-b2b {
  background:
    url("../media/modales/servicios.png") center / cover no-repeat;
}
body.page-perspectivas .ruta-tematicas {
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 70px auto 0;
  padding: 0;
}
body.page-perspectivas .ruta-tematicas::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(255, 255, 255, 0.22);
  transform: translateX(-50%);
}
body.page-perspectivas .tema {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 70px 1fr;
  align-items: center;
  min-height: 148px;
  margin: 0;
}
body.page-perspectivas .tema-numero {
  position: relative;
  z-index: 5;
  grid-column: 2;
  width: 70px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  border: 1px solid rgba(255, 255, 255, 0.85);
  background: #0b1f2b;
  color: #ffffff;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.03em;
  box-sizing: border-box;
  font-family: "Alverata", "Playfair Display", serif;
  ;
}
body.page-perspectivas .tema-contenido {
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 0;
}
body.page-perspectivas .tema:nth-child(odd) .tema-contenido {
  grid-column: 3;
  justify-content: flex-start;
  padding-left: 50px;
  text-align: left;
}
body.page-perspectivas .tema:nth-child(even) .tema-contenido {
  grid-column: 1;
  grid-row: 1;
  padding-right: 50px !important;
  text-align: right;
  flex-direction: row-reverse;
}
body.page-perspectivas .tema:nth-child(odd) .tema-contenido::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 100%;
  width: 65px;
  height: 1px;
  background: rgba(255, 255, 255, 0.25);
  transform: translateY(-50%);
}
body.page-perspectivas .tema:nth-child(even) .tema-contenido::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  width: 45px;
  height: 1px;
  background: rgba(255, 255, 255, 0.25);
  transform: translateY(-50%);
}
body.page-perspectivas .tema-icono {
  width: 70px;
  height: 70px;
  min-width: 70px;
  flex: 0 0 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #ffffff;
  overflow: hidden;
  animation: flotacionIcono 2.8s ease-in-out infinite;
  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.22);
  will-change: transform;
}
body.page-perspectivas .tema-icono img {
  width: 42px;
  height: 42px;
  max-width: 42px;
  object-fit: contain;
  display: block;
  padding: 0;
}
body.page-perspectivas .tema:hover .tema-icono {
  animation: flotacionIcono 2.8s ease-in-out infinite;
  box-shadow: 0 24px 50px rgba(255, 254, 254, 0.22);
}
body.page-perspectivas .tema:hover .tema-icono img {
  transform: none;
}
body.page-perspectivas .tema:hover .tema-numero {
  transform: none !important;
  color: #ffffff;
  background: #0b1f2b;
}
@keyframes flotacionIcono {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-12px);
  }
  100% {
    transform: translateY(0);
  }
}
@media (max-width: 900px) {
  body.page-perspectivas .ruta-tematicas {
    width: 100%;
    padding: 0;
  }
  body.page-perspectivas .tema {
    grid-template-columns: 70px 1fr;
    min-height: 120px;
  }
  body.page-perspectivas .ruta-tematicas::before {
    left: 35px;
    transform: none;
  }
  body.page-perspectivas .tema-numero {
    grid-column: 1;
    grid-row: 1;
    width: 60px;
    height: 44px;
  }
  body.page-perspectivas .tema:nth-child(odd) .tema-contenido,
  body.page-perspectivas .tema:nth-child(even) .tema-contenido {
    grid-column: 2;
    grid-row: 1;
    justify-content: flex-start;
    padding: 0 0 0 20px;
    flex-direction: row;
    text-align: left;
  }
  body.page-perspectivas .tema-contenido::before {
    display: none;
  }
  body.page-perspectivas .tema-icono {
    width: 60px;
    height: 60px;
    min-width: 60px;
  }
  body.page-perspectivas .tema-icono img {
    width: 36px;
    height: 36px;
  }
}
@media (max-width: 600px) {
  body.page-perspectivas .tema {
    min-height: 105px;
  }
  body.page-perspectivas .tema-numero {
    width: 52px;
    height: 38px;
    font-size:0.8rem !important;
  }
  body.page-perspectivas .tema-icono {
    width: 52px;
    height: 52px;
    min-width: 52px;
  }
  body.page-perspectivas .tema-icono img {
    width: 30px;
    height: 30px;
  }
  body.page-perspectivas .tema h3 {
    font-size: 9px;
    white-space: normal;
  }
}
body.page-perspectivas .oportunidades {
  position: relative;
  padding: 105px 24px 120px;
  background: #ffffff;
  overflow: hidden;
}
body.page-perspectivas .oportunidades-cabecera {
  position: relative;
  z-index: 5;
  width: min(900px, 100%);
  margin: 0 auto 82px;
  text-align: center;
}
body.page-perspectivas .oportunidades-cabecera .etiqueta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  color: #db6508;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
body.page-perspectivas .oportunidades-cabecera .etiqueta::before,
body.page-perspectivas .oportunidades-cabecera .etiqueta::after {
  content: "";
  width: 34px;
  height: 1px;
  background: currentColor;
}
body.page-perspectivas .oportunidades-cabecera h2 {
  margin: 0;
  color: #07545b;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1;
  letter-spacing: -.04em;
  text-transform: uppercase;
}
body.page-perspectivas .oportunidades-grid {
  position: relative;
  z-index: 2;
  width: min(1000px, 100%);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 100px;
  background: transparent;
}
body.page-perspectivas .bloque-busqueda {
  position: relative;
  width: 48%;
  min-height: 330px;
  margin: 0;
  padding: 45px 55px 45px 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: transparent;
}
body.page-perspectivas .imagen-superior {
  position: absolute;
  top: 0;
  right: 0;
  width: 47%;
  height: 330px;
  min-height: 330px;
  margin: 0;
  overflow: hidden;
  border-radius: 0 75px 0 75px;
  background: #e9efee;
  box-shadow: 0 25px 55px rgba(7, 84, 91, .12);
}
body.page-perspectivas .imagen-inferior {
  position: absolute;
  top: 430px;
  left: 0;
  width: 47%;
  height: 330px;
  min-height: 330px;
  margin: 0;
  overflow: hidden;
  border-radius: 75px 0 75px 0;
  background: #e9efee;
  box-shadow: 0 25px 55px rgba(7, 84, 91, .12);
}
body.page-perspectivas .bloque-operacion {
  position: relative;
  width: 48%;
  min-height: 330px;
  margin-left: auto;
  padding: 45px 0 45px 55px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: transparent;
}
body.page-perspectivas .bloque-oportunidad .lista {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.page-perspectivas .bloque-oportunidad .lista li::before {
  content: "";
  position: absolute;
  top: 17px;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #db6508;
}
body.page-perspectivas .imagen-oportunidad img {
  width: 100%;
  height: 100%;
  min-height: 330px;
  object-fit: cover;
  display: block;
  transition: transform .8s cubic-bezier(.22, 1, .36, 1);
}
body.page-perspectivas .imagen-oportunidad:hover img {
  transform: scale(1.035);
}
body.page-perspectivas .imagen-oportunidad::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,
      rgba(7, 84, 91, .12),
      transparent 58%);
  pointer-events: none;
}
body.page-perspectivas .oportunidades .revelar {
  opacity: 0;
  transition:
    opacity .8s ease,
    transform .8s cubic-bezier(.22, 1, .36, 1);
}
body.page-perspectivas .oportunidades .bloque-busqueda.revelar,
body.page-perspectivas .oportunidades .imagen-inferior.revelar {
  transform: translateX(-45px);
}
body.page-perspectivas .oportunidades .imagen-superior.revelar,
body.page-perspectivas .oportunidades .bloque-operacion.revelar {
  transform: translateX(45px);
}
body.page-perspectivas .oportunidades .revelar.visible {
  opacity: 1;
  transform: translateX(0);
}
@media (max-width: 900px) {
  body.page-perspectivas .oportunidades {
    padding: 80px 22px 100px;
  }
  body.page-perspectivas .oportunidades::before {
    display: none;
  }
  body.page-perspectivas .oportunidades-grid {
    width: min(680px, 100%);
    gap: 35px;
  }
  body.page-perspectivas .bloque-busqueda,
  body.page-perspectivas .bloque-operacion {
    width: 100%;
    min-height: auto;
    margin: 0;
    padding: 40px;
    background: #fff;
    border: 1px solid rgba(7, 84, 91, .08);
    border-radius: 24px;
    box-shadow: 0 15px 40px rgba(15, 42, 45, .06);
  }
  body.page-perspectivas .imagen-superior,
  body.page-perspectivas .imagen-inferior {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    height: 300px;
    min-height: 300px;
    border-radius: 24px;
  }
  body.page-perspectivas .imagen-superior {
    order: 2;
  }
  body.page-perspectivas .bloque-busqueda {
    order: 1;
  }
  body.page-perspectivas .imagen-inferior {
    order: 3;
  }
  body.page-perspectivas .bloque-operacion {
    order: 4;
  }
  body.page-perspectivas .bloque-busqueda::after,
  body.page-perspectivas .bloque-operacion::after {
    display: none;
  }
  body.page-perspectivas .imagen-oportunidad img {
    min-height: 300px;
  }
}
@media (max-width: 600px) {
  body.page-perspectivas .oportunidades {
    padding: 65px 16px 80px;
  }
  body.page-perspectivas .oportunidades-cabecera {
    margin-bottom: 45px;
  }
  body.page-perspectivas .oportunidades-cabecera h2 {
    font-size: 32px;
  }
  body.page-perspectivas .oportunidades-grid {
    width: 100%;
    gap: 16px;
  }
  body.page-perspectivas .bloque-oportunidad {
    padding: 32px 26px;
  }
  body.page-perspectivas .bloque-oportunidad h3 {
    font-size: 25px;
  }
  body.page-perspectivas .bloque-oportunidad .lista {
    grid-template-columns: 1fr;
  }
  body.page-perspectivas .imagen-superior,
  body.page-perspectivas .imagen-inferior {
    height: 245px;
    min-height: 245px;
    border-radius: 22px;
  }
  body.page-perspectivas .imagen-oportunidad img {
    min-height: 245px;
  }
  body.page-perspectivas .imagen-superior::before,
  body.page-perspectivas .imagen-inferior::before {
    width: 50px;
    height: 50px;
    bottom: 18px;
  }
  body.page-perspectivas .imagen-superior::before {
    right: 18px;
  }
  body.page-perspectivas .imagen-inferior::before {
    left: 18px;
  }
}
.banner-contacto-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
  transform: scale(1.05);
  animation: zoomCinematografico 20s ease-in-out infinite alternate;
}
@keyframes zoomCinematografico {
  from {
    transform: scale(1.05);
  }
  to {
    transform: scale(1.12);
  }
}
.footer {
  width: 100%;
  padding: 16px 0 12px !important;
  color: rgba(255, 255, 255, 0.67) !important;
  background: var(--navy) !important;
}
.footer .footer-grid {
  display: grid !important;
  grid-template-columns: 2.2fr 0.7fr 0.7fr !important;
}
.footer .footer-brand {
  grid-column: auto !important;
  padding: 0 24px 12px;
}
.footer .footer-brand p,
.footer .footer-brand h6 {
  max-width: 430px;
  color: rgba(255, 255, 255, 0.59) !important;
  font-size: 0.8rem !important;
  font-family: "MontserratLocal", "Montserrat", sans-serif;
}
.footer h3 {
  margin: 8px 0 !important;
  color: var(--white) !important;
  font-family: "Montserrat", Arial, sans-serif !important;
  font-size: 10px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}
.footer ul {
  display: grid !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.footer li,
.footer a {
  font-size:0.8rem !important;
}
.footer a:hover {
  color: var(--orange-soft) !important;
}
.footer .footer-bottom {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding-top: 12px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
  font-size: 0.8rem !important;
}
/* ==============================
   BOTÓN VISITAR PÁGINA - MODAL
============================== */

.modal-acciones {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 30px 35px;
}

.modal-visitar {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 12px;

    min-width: 210px;
    min-height: 48px;

    padding: 0 30px !important;

    background: #0b1922 !important;
    color: #ffffff !important;

    border: 1px solid #0b1922;
    border-radius: 3px;

    font-size: 12px;
    font-weight: 600;
    line-height: 1 !important;

    letter-spacing: 0.12em;
    text-transform: uppercase;

    text-decoration: none !important;

    cursor: pointer;

    box-sizing: border-box;

    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.modal-visitar:link,
.modal-visitar:visited {
    color: #ffffff !important;
    text-decoration: none !important;
}

.modal-visitar::after {
    content: "↗";
    color: #ffffff;
    font-size: 15px;
    line-height: 1;
    transition: transform 0.3s ease;
}

.modal-visitar:hover {
    background: #ffffff !important;
    color: #0b1922 !important;

    transform: translateY(-2px);

    box-shadow:
        0 8px 20px rgba(11, 25, 34, 0.15);
}

.modal-visitar:hover::after {
    color: #0b1922;
    transform: translate(3px, -3px);
}

.modal-visitar:focus-visible {
    outline: 2px solid #0b1922;
    outline-offset: 4px;
}

.modal-visitar[hidden] {
    display: none !important;
}

@media (max-width: 600px) {

    .modal-acciones {
        padding: 10px 20px 30px;
    }

    .modal-visitar {
        width: 100%;
        min-width: 0;
        min-height: 48px;
    }
}

/* =========================================================
   GTRANSLATE 
========================================================= */

body[class*="page-"] .gtranslate_wrapper.language-switcher {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    gap: 3px !important;

    margin-left: 8px !important;
    padding: 3px !important;

    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-radius: 30px !important;

    background: rgba(255, 255, 255, 0.06) !important;

    backdrop-filter: blur(8px) !important;

    white-space: nowrap !important;
}


/* =========================================================
   ENLACES GENERADOS POR GTRANSLATE
========================================================= */

body[class*="page-"] .gtranslate_wrapper.language-switcher a.glink {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-width: 38px !important;
    height: 28px !important;

    margin: 0 !important;
    padding: 0 10px !important;

    border: 0 !important;
    border-radius: 20px !important;

    background: transparent !important;

    color: rgba(255, 255, 255, 0.68) !important;

    font-family: "Montserrat", Arial, sans-serif !important;
    font-size: 0 !important;
    font-weight: 700 !important;

    line-height: 1 !important;

    text-decoration: none !important;

    cursor: pointer !important;

    opacity: 1 !important;

    transition:
        background 0.25s ease,
        color 0.25s ease,
        transform 0.25s ease !important;
}


/* =========================================================
   OCULTAR BANDERAS
========================================================= */

body[class*="page-"] .gtranslate_wrapper.language-switcher a.glink img {
    display: none !important;
}


/* =========================================================
   TEXTO ESPAÑOL
========================================================= */

body[class*="page-"]
.gtranslate_wrapper.language-switcher
a.glink[data-gt-lang="es"]::before {

    content: "ES" !important;

    font-family: "Montserrat", Arial, sans-serif !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;

    letter-spacing: 0.08em !important;

    color: inherit !important;
}


/* =========================================================
   TEXTO INGLÉS
========================================================= */

body[class*="page-"]
.gtranslate_wrapper.language-switcher
a.glink[data-gt-lang="en"]::before {

    content: "EN" !important;

    font-family: "Montserrat", Arial, sans-serif !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;

    letter-spacing: 0.08em !important;

    color: inherit !important;
}


/* =========================================================
   QUITAR SEPARADORES ANTERIORES
========================================================= */

body[class*="page-"]
.gtranslate_wrapper.language-switcher
a.glink::after {

    display: none !important;
    content: none !important;
}


/* =========================================================
   HOVER
========================================================= */

body[class*="page-"]
.gtranslate_wrapper.language-switcher
a.glink:hover {

    color: #ffffff !important;

    background: rgba(255, 255, 255, 0.10) !important;
}


/* =========================================================
   IDIOMA ACTIVO
========================================================= */

body[class*="page-"]
.gtranslate_wrapper.language-switcher
a.glink.gt-current-lang {

    color: #ffffff !important;

    background: var(--orange, #d76620) !important;

    box-shadow:
        0 4px 12px rgba(215, 102, 32, 0.28) !important;
}


/* =========================================================
   MÓVIL
========================================================= */

@media (max-width: 900px) {

    body[class*="page-"] .gtranslate_wrapper.language-switcher {

        width: fit-content !important;

        margin:
            18px
            0
            5px
            4px !important;

        padding: 4px !important;

        border:
            1px solid
            rgba(255, 255, 255, 0.25) !important;
    }


    body[class*="page-"]
    .gtranslate_wrapper.language-switcher
    a.glink {

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


    body[class*="page-"]
    .gtranslate_wrapper.language-switcher
    a.glink[data-gt-lang="es"]::before,

    body[class*="page-"]
    .gtranslate_wrapper.language-switcher
    a.glink[data-gt-lang="en"]::before {

        font-size: 0.70rem !important;
    }
}
/* =========================================================
   PERSPECTIVAS
   TEMÁTICAS INTERACTIVAS
========================================================= */

body.page-perspectivas .tema-interactiva {
    cursor: pointer;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        background-color 0.3s ease;
}


body.page-perspectivas .tema-interactiva:hover {
    transform: translateY(-4px);
}


body.page-perspectivas .tema-interactiva:focus-visible {
    outline: 2px solid #d76620;
    outline-offset: 5px;
}


/* =========================================================
   MODAL
========================================================= */

body.page-perspectivas dialog.tema-modal {
    width: min(720px, calc(100% - 40px)) !important;
    max-width: 720px !important;
}


/* PANEL */

body.page-perspectivas .tema-modal-panel {
    position: relative !important;

    width: 100% !important;

    overflow: hidden !important;

    background: #ffffff !important;

    box-shadow:
        0 30px 90px
        rgba(0, 0, 0, 0.38) !important;
}


/* =========================================================
   CABECERA
========================================================= */

body.page-perspectivas .tema-modal-header {
    position: relative !important;

    min-height: 190px !important;

    padding:
        95px
        45px
        32px !important;

    background: #13242c !important;

    overflow: hidden !important;
}


/* Línea decorativa */

body.page-perspectivas .tema-modal-header::after {
    position: absolute;

    right: -70px;
    bottom: -110px;

    width: 230px;
    height: 230px;

    border:
        1px solid
        rgba(255, 255, 255, 0.10);

    border-radius: 50%;

    content: "";
}

body.page-perspectivas .tema-modal-icono {
    position: absolute !important;

    top: 22px !important;
    left: 28px !important;

    z-index: 3 !important;

    display: flex !important;

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

    width: 58px !important;
    height: 58px !important;

    border-radius: 50% !important;

    background: #d76620 !important;

    box-shadow:
        0 8px 22px
        rgba(0, 0, 0, 0.18) !important;
}


body.page-perspectivas .tema-modal-icono img {
    display: block !important;

    width: 30px !important;
    height: 30px !important;

    object-fit: contain !important;

    filter: brightness(0) invert(1) !important;
}


/* =========================================================
   TÍTULO
========================================================= */

body.page-perspectivas .tema-modal-titulo {
    position: relative !important;

    z-index: 2 !important;
}


body.page-perspectivas .tema-modal-titulo > span {
    display: block !important;

    margin-bottom: 8px !important;

    color: #d76620 !important;

    font-family:
        "Montserrat",
        Arial,
        sans-serif !important;

    font-size: 0.68rem !important;

    font-weight: 700 !important;

    letter-spacing: 0.14em !important;

    text-transform: uppercase !important;
}


body.page-perspectivas .tema-modal-titulo h2 {
    margin: 0 !important;

    color: #ffffff !important;

    font-family:
        "Alverata",
        Georgia,
        serif !important;

    font-size: 29px !important;

    font-weight: 700 !important;

    line-height: 1.1 !important;
}


/* =========================================================
   CONTENIDO
========================================================= */

body.page-perspectivas .tema-modal-body {
    padding:
        34px
        45px
        38px !important;
}


body.page-perspectivas .tema-modal-copy p {
    margin: 0 !important;

    color: #56636a !important;

    font-family:
        "Montserrat",
        Arial,
        sans-serif !important;

    font-size: 15px !important;

    line-height: 1.8 !important;

    text-align: justify !important;
}


body.page-perspectivas .tema-modal-copy[hidden] {
    display: none !important;
}


/* =========================================================
   MÓVIL
========================================================= */

@media (max-width: 600px) {

    body.page-perspectivas dialog.tema-modal {
        width:
            calc(100% - 28px) !important;
    }


    body.page-perspectivas .tema-modal-header {
        min-height: 175px !important;

        padding:
            92px
            25px
            27px !important;
    }


    body.page-perspectivas .tema-modal-icono {
        top: 20px !important;
        left: 22px !important;

        width: 52px !important;
        height: 52px !important;
    }


    body.page-perspectivas .tema-modal-icono img {
        width: 27px !important;
        height: 27px !important;
    }


    body.page-perspectivas .tema-modal-titulo h2 {
        font-size: 24px !important;
    }


    body.page-perspectivas .tema-modal-body {
        padding:
            27px
            25px
            30px !important;
    }


    body.page-perspectivas .tema-modal-copy p {
        font-size: 14px !important;
        line-height: 1.7 !important;
    }

}
