:root {
    --bg: #07111f;
    --bg-deep: #030811;
    --surface: rgba(255, 255, 255, 0.035);
    --surface-strong: rgba(255, 255, 255, 0.06);
    --text: #f3f4f6;
    --muted: #aab3c2;
    --muted-soft: #7f8a9b;
    --gold: #c8a96b;
    --gold-soft: #e3c98f;
    --line: rgba(200, 169, 107, 0.22);
    --line-soft: rgba(255, 255, 255, 0.08);
    --shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
    --max: 1280px;
    --serif: Georgia, "Times New Roman", serif;
    --sans: Inter, Arial, Helvetica, sans-serif;
  }
  
  * {
    box-sizing: border-box;
  }
  
  html {
    scroll-behavior: smooth;
    background: var(--bg-deep);
  }
  
  body {
    margin: 0;
    min-height: 100%;
    background:
      radial-gradient(circle at top left, rgba(29, 54, 89, 0.25), transparent 34%),
      linear-gradient(180deg, #08121f 0%, #07111f 42%, #040a13 100%);
    color: var(--text);
    font-family: var(--sans);
    overflow-x: hidden;
  }
  
  body.is-menu-open {
    overflow: hidden;
  }
  
  a {
    color: inherit;
    text-decoration: none;
  }
  
  button,
  input,
  textarea,
  select {
    font: inherit;
  }
  
  img {
    display: block;
    max-width: 100%;
  }
  
  /* =========================================================
     HEADER
  ========================================================= */
  
  .ef-header {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 40px;
    transition:
      background 0.35s ease,
      border-color 0.35s ease,
      backdrop-filter 0.35s ease;
  }
  
  .ef-header.is-scrolled {
    background: rgba(4, 10, 19, 0.68);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }
  
  .ef-brand {
    display: inline-flex;
    flex-direction: column;
    gap: 3px;
  }
  
  .ef-brand__name {
    font-family: var(--serif);
    font-size: 24px;
    letter-spacing: 0.08em;
    color: var(--gold-soft);
  }
  
  .ef-brand__descriptor {
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.58);
  }
  
  .ef-header__actions {
    display: flex;
    align-items: center;
    gap: 28px;
  }
  
  .ef-site-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.82);
    transition: color 0.25s ease;
  }
  
  .ef-site-link:hover {
    color: var(--gold-soft);
  }
  
  .ef-menu-button {
    border: 0;
    background: transparent;
    color: var(--text);
    display: inline-flex;
    align-items: center;
    gap: 13px;
    cursor: pointer;
    padding: 0;
  }
  
  .ef-menu-button__label {
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
  }
  
  .ef-menu-button__icon {
    width: 28px;
    height: 18px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
  }
  
  .ef-menu-button__icon span {
    display: block;
    width: 100%;
    height: 1px;
    background: var(--gold-soft);
    transition: transform 0.35s ease, opacity 0.35s ease;
  }
  
  .ef-menu-button[aria-expanded="true"] .ef-menu-button__icon span:first-child {
    transform: translateY(4px) rotate(45deg);
  }
  
  .ef-menu-button[aria-expanded="true"] .ef-menu-button__icon span:last-child {
    transform: translateY(-4px) rotate(-45deg);
  }
  
  /* =========================================================
     FULLSCREEN MENU
  ========================================================= */
  
  .ef-menu {
    position: fixed;
    inset: 0;
    z-index: 70;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
  }
  
  .ef-menu.is-open {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
  }
  
  .ef-menu__backdrop {
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 70% 20%, rgba(200, 169, 107, 0.08), transparent 28%),
      rgba(3, 8, 17, 0.97);
    backdrop-filter: blur(16px);
  }
  
 .ef-menu__content {
  position: relative;
  z-index: 2;
  width: min(1180px, calc(100% - 80px));
  min-height: 100%;
  margin: 0 auto;

  display: flex;
  flex-direction: column;
  justify-content: flex-start;

  padding: 125px 0 50px;

  box-sizing: border-box;


  max-height: 100vh;
  max-height: 100svh;

  overflow-y: auto;
  overscroll-behavior: contain;

  scrollbar-width: thin;
  scrollbar-color:
    rgba(200, 169, 107, 0.35)
    transparent;
}

.ef-menu__content::-webkit-scrollbar {
  width: 5px;
}

.ef-menu__content::-webkit-scrollbar-track {
  background: transparent;
}

.ef-menu__content::-webkit-scrollbar-thumb {
  background: rgba(200, 169, 107, 0.28);
  border-radius: 20px;
}

.ef-menu__content::-webkit-scrollbar-thumb:hover {
  background: rgba(200, 169, 107, 0.5);
}

  
  .ef-menu__eyebrow {
    margin-bottom: 36px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.26em;
    color: var(--gold-soft);
  }
  
  .ef-menu__nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 60px;
    row-gap: 6px;
  }
  
  .ef-menu__nav a {
    position: relative;
    padding: 13px 0 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    font-family: var(--serif);
    font-size: clamp(25px, 3vw, 42px);
    color: rgba(255, 255, 255, 0.9);
    transition: color 0.25s ease, padding-left 0.25s ease;
  }
  
  .ef-menu__nav a:hover {
    color: var(--gold-soft);
    padding-left: 12px;
  }
  
  .ef-menu__footer {
    margin-top: 42px;
    padding-top: 24px;
  }
  
  .ef-menu__footer a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 14px;
  }
  
  .ef-menu__footer a:hover {
    color: var(--gold-soft);
  }
  
  /* =========================================================
     HERO
  ========================================================= */
  
  .ef-hero {
    position: relative;
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    place-items: center;
    overflow: hidden;
    isolation: isolate;
    padding: 150px 32px 90px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  }
  
  .ef-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -5;
    background:
      linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.015) 1px,
        transparent 1px
      ),
      linear-gradient(
        rgba(255, 255, 255, 0.012) 1px,
        transparent 1px
      );
    background-size: 82px 82px;
    mask-image: linear-gradient(to bottom, transparent, black 20%, black 78%, transparent);
  }
  
  .ef-hero__atmosphere {
    position: absolute;
    inset: 0;
    z-index: -4;
    overflow: hidden;
  }
  
  .ef-hero__glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(70px);
    opacity: 0.4;
  }
  
  .ef-hero__glow--one {
    width: 620px;
    height: 620px;
    top: -170px;
    right: -170px;
    background: rgba(200, 169, 107, 0.13);
  }
  
  .ef-hero__glow--two {
    width: 560px;
    height: 560px;
    bottom: -260px;
    left: -180px;
    background: rgba(37, 73, 121, 0.22);
  }
  
  .ef-hero__grain {
    position: absolute;
    inset: -20%;
    opacity: 0.045;
    background-image:
      radial-gradient(circle at 10% 20%, #fff 0 0.7px, transparent 0.8px),
      radial-gradient(circle at 70% 40%, #fff 0 0.7px, transparent 0.8px),
      radial-gradient(circle at 35% 80%, #fff 0 0.7px, transparent 0.8px);
    background-size: 11px 11px, 13px 13px, 17px 17px;
    animation: efGrain 10s steps(8) infinite;
  }
  
  @keyframes efGrain {
    0%   { transform: translate3d(0, 0, 0); }
    20%  { transform: translate3d(-2%, 1%, 0); }
    40%  { transform: translate3d(1%, -1%, 0); }
    60%  { transform: translate3d(2%, 2%, 0); }
    80%  { transform: translate3d(-1%, -2%, 0); }
    100% { transform: translate3d(0, 0, 0); }
  }
  
  .ef-hero__line {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1px;
    height: 22vh;
    background: linear-gradient(to bottom, transparent, rgba(200, 169, 107, 0.65), transparent);
    opacity: 0.65;
  }
  
  .ef-hero__content {
    width: min(1100px, 100%);
    margin: 0 auto;
    text-align: center;
  }
  
  .ef-hero__eyebrow {
    margin: 0 0 22px;
    text-transform: uppercase;
    letter-spacing: 0.36em;
    font-size: 12px;
    color: var(--gold-soft);
  }
  
  .ef-hero__title {
    margin: 0;
    display: inline-flex;
    align-items: flex-start;
    justify-content: center;
    gap: 10px;
    font-family: var(--serif);
    font-weight: 400;
    line-height: 0.86;
  }
  
  .ef-hero__title-main {
    display: block;
    font-size: clamp(78px, 14vw, 190px);
    letter-spacing: 0.055em;
    text-shadow: 0 18px 70px rgba(0, 0, 0, 0.28);
  }
  
  .ef-hero__registered {
    margin-top: 12px;
    font-family: var(--sans);
    font-size: clamp(14px, 2vw, 22px);
    color: var(--gold-soft);
  }
  
  .ef-hero__statement {
    margin: 28px auto 0;
    max-width: 720px;
    font-family: var(--serif);
    font-size: clamp(23px, 3.2vw, 39px);
    font-weight: 400;
    line-height: 1.25;
    color: rgba(255, 255, 255, 0.94);
  }
  
  .ef-hero__direction {
    margin: 36px auto 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
  }
  
  .ef-hero__direction-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.27em;
    color: var(--muted-soft);
  }
  
  .ef-hero__direction-name {
    font-family: var(--serif);
    font-size: 19px;
    font-weight: 400;
    color: var(--gold-soft);
  }
  
  .ef-hero__direction-role {
    font-size: 12px;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.62);
  }
  
  .ef-hero__actions {
    margin-top: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
  }
  
  .ef-button {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 0 24px;
    border: 1px solid transparent;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.17em;
    transition:
      transform 0.25s ease,
      background 0.25s ease,
      border-color 0.25s ease,
      color 0.25s ease;
  }
  
  .ef-button:hover {
    transform: translateY(-2px);
  }
  
  .ef-button--primary {
    background: var(--gold);
    color: #08101b;
    border-color: var(--gold);
  }
  
  .ef-button--primary:hover {
    background: var(--gold-soft);
    border-color: var(--gold-soft);
  }
  
  .ef-button--ghost {
    border-color: rgba(255, 255, 255, 0.17);
    background: rgba(255, 255, 255, 0.025);
    color: rgba(255, 255, 255, 0.86);
  }
  
  .ef-button--ghost:hover {
    border-color: rgba(200, 169, 107, 0.5);
    color: var(--gold-soft);
  }
  
  .ef-hero__scroll {
    position: absolute;
    right: 40px;
    bottom: 34px;
    display: flex;
    align-items: center;
    gap: 13px;
    transform: rotate(90deg);
    transform-origin: right center;
    color: rgba(255, 255, 255, 0.35);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.25em;
  }
  
  .ef-hero__scroll-line {
    width: 54px;
    height: 1px;
    background: linear-gradient(to right, rgba(200, 169, 107, 0.2), var(--gold-soft));
  }
  
  /* reveal inicial */
  
  .ef-reveal {
    opacity: 0;
    transform: translateY(18px);
    animation: efReveal 1s ease forwards;
  }
  
  .ef-hero__eyebrow.ef-reveal {
    animation-delay: 0.18s;
  }
  
  .ef-hero__title-main.ef-reveal {
    animation-delay: 0.42s;
  }
  
  .ef-hero__registered.ef-reveal {
    animation-delay: 0.62s;
  }
  
  .ef-hero__statement.ef-reveal {
    animation-delay: 0.78s;
  }
  
  .ef-hero__direction.ef-reveal {
    animation-delay: 1.02s;
  }
  
  .ef-hero__actions.ef-reveal {
    animation-delay: 1.2s;
  }
  
  @keyframes efReveal {
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  
  /* =========================================================
     SHARED SECTIONS
  ========================================================= */
  
  .ef-section-shell {
    width: min(var(--max), calc(100% - 80px));
    margin: 0 auto;
  }
  
  .ef-section-number {
    display: inline-block;
    min-width: 44px;
    color: var(--gold-soft);
    font-size: 10px;
    letter-spacing: 0.2em;
  }
  
  .ef-section-kicker {
    margin: 0;
    color: var(--muted-soft);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.26em;
  }
  
  /* =========================================================
     INTRO
  ========================================================= */
  
  .ef-intro {
    position: relative;
    padding: 150px 0 160px;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.012), transparent 28%),
      #07111f;
  }
  
  .ef-intro::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 50%;
    width: 1px;
    background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.06), transparent);
  }
  
  .ef-intro .ef-section-shell {
    display: grid;
    grid-template-columns: 0.8fr 2fr;
    gap: 90px;
  }
  
  .ef-intro__heading {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding-top: 11px;
  }
  
  .ef-intro__content {
    max-width: 900px;
  }
  
  .ef-intro__lead {
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(31px, 4vw, 58px);
    line-height: 1.13;
    color: rgba(255, 255, 255, 0.95);
  }
  
  .ef-intro__lead strong {
    font-weight: 400;
    color: var(--gold-soft);
  }
  
  .ef-intro__statement {
    margin: 82px 0 58px;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  
  .ef-intro__statement span {
    font-family: var(--serif);
    font-size: clamp(46px, 7.4vw, 104px);
    line-height: 0.98;
    letter-spacing: -0.035em;
    color: rgba(255, 255, 255, 0.9);
  }
  
  .ef-intro__statement span:nth-child(2) {
    color: rgba(255, 255, 255, 0.55);
    padding-left: 7%;
  }
  
  .ef-intro__statement span:nth-child(3) {
    color: var(--gold-soft);
    padding-left: 14%;
  }
  
  .ef-intro__closing {
    max-width: 720px;
    margin: 0;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.85;
  }
  
  .ef-intro__links {
    margin-top: 40px;
    display: flex;
    gap: 34px;
    flex-wrap: wrap;
  }
  
  .ef-intro__links a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 7px;
    border-bottom: 1px solid var(--line);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255, 255, 255, 0.74);
    transition:
      color 0.25s ease,
      border-color 0.25s ease;
  }
  
  .ef-intro__links a:hover {
    color: var(--gold-soft);
    border-color: var(--gold);
  }
  
  /* =========================================================
     PLACEHOLDERS
  ========================================================= */
  
  .ef-placeholder {
    min-height: 62vh;
    display: flex;
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    background:
      radial-gradient(circle at 80% 20%, rgba(200, 169, 107, 0.035), transparent 28%),
      linear-gradient(180deg, #06101d 0%, #040b14 100%);
  }
  
  .ef-placeholder:nth-of-type(even) {
    background:
      radial-gradient(circle at 20% 70%, rgba(37, 73, 121, 0.06), transparent 30%),
      #050c16;
  }
  
  .ef-placeholder .ef-section-shell {
    padding: 100px 0;
  }
  
  .ef-placeholder p {
    margin: 17px 0 12px;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    font-size: 10px;
    color: var(--muted-soft);
  }
  
  .ef-placeholder h2 {
    margin: 0;
    max-width: 900px;
    font-family: var(--serif);
    font-size: clamp(47px, 7vw, 98px);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: -0.03em;
    color: rgba(255, 255, 255, 0.9);
  }
  
  /* =========================================================
     FOCUS
  ========================================================= */
  
  a:focus-visible,
  button:focus-visible {
    outline: 2px solid var(--gold-soft);
    outline-offset: 5px;
  }
  
  /* =========================================================
     RESPONSIVE
  ========================================================= */
  
  @media (max-width: 980px) {
    .ef-header {
      padding: 20px 24px;
    }
  
    .ef-site-link {
      display: none;
    }
  
    .ef-section-shell {
      width: min(100% - 48px, var(--max));
    }
  
    .ef-menu__content {
      width: min(100% - 48px, 1180px);
    }
  
    .ef-menu__nav {
      grid-template-columns: 1fr;
    }
  
    .ef-menu__nav a {
      font-size: clamp(25px, 6vw, 40px);
    }
  
    .ef-intro {
      padding: 110px 0 120px;
    }
  
    .ef-intro .ef-section-shell {
      grid-template-columns: 1fr;
      gap: 50px;
    }
  
    .ef-intro::before {
      display: none;
    }
  
    .ef-intro__statement {
      margin-top: 60px;
    }
  
    .ef-hero__scroll {
      display: none;
    }
  }
  
  @media (max-width: 640px) {
    .ef-header {
      padding: 18px 18px;
    }
  
    .ef-brand__descriptor {
      display: none;
    }
  
    .ef-brand__name {
      font-size: 21px;
    }
  
    .ef-menu-button__label {
      display: none;
    }
  
    .ef-hero {
      padding: 130px 20px 72px;
    }
  
    .ef-hero__eyebrow {
      font-size: 10px;
      letter-spacing: 0.24em;
    }
  
    .ef-hero__title {
      gap: 5px;
    }
  
    .ef-hero__title-main {
      font-size: clamp(64px, 22vw, 108px);
    }
  
    .ef-hero__statement {
      margin-top: 20px;
      font-size: 24px;
    }
  
    .ef-hero__direction {
      margin-top: 30px;
    }
  
    .ef-hero__actions {
      margin-top: 38px;
      width: 100%;
    }
  
    .ef-button {
      width: 100%;
    }
  
    .ef-section-shell {
      width: calc(100% - 36px);
    }
  
    .ef-menu__content {
      width: calc(100% - 36px);
      padding-top: 95px;
    }
  
    .ef-menu__nav a {
      padding: 10px 0;
      font-size: 26px;
    }
  
    .ef-intro {
      padding: 90px 0 100px;
    }
  
    .ef-intro__heading {
      gap: 10px;
    }
  
    .ef-intro__lead {
      font-size: 34px;
    }
  
    .ef-intro__statement {
      margin: 55px 0 42px;
    }
  
    .ef-intro__statement span {
      font-size: 49px;
    }
  
    .ef-intro__statement span:nth-child(2),
    .ef-intro__statement span:nth-child(3) {
      padding-left: 0;
    }
  
    .ef-intro__closing {
      font-size: 15px;
    }
  
    .ef-intro__links {
      flex-direction: column;
      align-items: flex-start;
      gap: 22px;
    }
  
    .ef-placeholder {
      min-height: 50vh;
    }
  
    .ef-placeholder .ef-section-shell {
      padding: 72px 0;
    }
  
    .ef-placeholder h2 {
      font-size: 48px;
    }
  }
  
  @media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto;
    }
  
    *,
    *::before,
    *::after {
      animation-duration: 0.001ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.001ms !important;
    }
  }


  /* =========================================================
   SCROLL REVEAL
========================================================= */

.ef-scroll-reveal {
  opacity: 0;
  transform: translateY(34px);
  transition:
    opacity 0.9s ease,
    transform 0.9s ease;
}

.ef-scroll-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}


/* =========================================================
   ORIENTACIÓN
========================================================= */

.ef-paths {
  position: relative;
  padding: 150px 0 170px;
  background:
    radial-gradient(
      circle at 85% 12%,
      rgba(200, 169, 107, 0.06),
      transparent 24%
    ),
    linear-gradient(
      180deg,
      #040b14 0%,
      #07111f 100%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-paths__header {
  display: grid;
  grid-template-columns: 0.72fr 2fr;
  gap: 90px;
  margin-bottom: 82px;
}

.ef-paths__header > div:first-child {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-top: 12px;
}

.ef-paths__intro h2 {
  margin: 0;
  max-width: 900px;
  font-family: var(--serif);
  font-size: clamp(52px, 7vw, 104px);
  font-weight: 400;
  line-height: 0.94;
  letter-spacing: -0.04em;
  color: rgba(255, 255, 255, 0.94);
}

.ef-paths__intro p {
  max-width: 650px;
  margin: 30px 0 0;
  font-size: 16px;
  line-height: 1.8;
  color: var(--muted);
}

.ef-paths__list {
  border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.ef-path {
  position: relative;
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr) auto;
  align-items: center;
  gap: 32px;
  min-height: 154px;
  padding: 30px 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  overflow: hidden;
  transition:
    padding-left 0.35s ease,
    border-color 0.35s ease;
}

.ef-path::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(200, 169, 107, 0.085),
      rgba(200, 169, 107, 0.015) 55%,
      transparent
    );
  opacity: 0;
  transform: translateX(-14px);
  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
  pointer-events: none;
}

.ef-path:hover {
  padding-left: 20px;
  border-color: rgba(200, 169, 107, 0.28);
}

.ef-path:hover::before {
  opacity: 1;
  transform: translateX(0);
}

.ef-path__number {
  position: relative;
  z-index: 2;
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--gold-soft);
}

.ef-path__content {
  position: relative;
  z-index: 2;
  max-width: 820px;
}

.ef-path__content h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(28px, 3vw, 46px);
  font-weight: 400;
  line-height: 1.08;
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.3s ease;
}

.ef-path:hover .ef-path__content h3 {
  color: var(--gold-soft);
}

.ef-path__content p {
  max-width: 690px;
  margin: 13px 0 0;
  font-size: 14px;
  line-height: 1.7;
  color: rgba(170, 179, 194, 0.78);
}

.ef-path__action {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.17em;
  color: rgba(255, 255, 255, 0.5);
  transition:
    color 0.3s ease,
    transform 0.3s ease;
}

.ef-path:hover .ef-path__action {
  color: var(--gold-soft);
  transform: translateX(4px);
}

@media (max-width: 980px) {
  .ef-paths {
    padding: 110px 0 120px;
  }

  .ef-paths__header {
    grid-template-columns: 1fr;
    gap: 45px;
    margin-bottom: 60px;
  }

  .ef-path {
    grid-template-columns: 55px minmax(0, 1fr);
    gap: 20px;
  }

  .ef-path__action {
    grid-column: 2;
    justify-self: start;
    margin-top: 5px;
  }
}

@media (max-width: 640px) {
  .ef-paths {
    padding: 90px 0 100px;
  }

  .ef-paths__intro h2 {
    font-size: 54px;
  }

  .ef-paths__intro p {
    font-size: 15px;
  }

  .ef-path {
    grid-template-columns: 35px minmax(0, 1fr);
    gap: 15px;
    min-height: 0;
    padding: 28px 0;
  }

  .ef-path:hover {
    padding-left: 0;
  }

  .ef-path__content h3 {
    font-size: 30px;
  }

  .ef-path__content p {
    font-size: 13px;
  }

  .ef-path__action {
    grid-column: 2;
    margin-top: 7px;
  }
}


/* =========================================================
   PRÁCTICA PERICIAL
========================================================= */

.ef-practice {
  position: relative;
  overflow: hidden;
  padding: 160px 0 150px;
  background:
    radial-gradient(
      circle at 12% 45%,
      rgba(38, 73, 119, 0.15),
      transparent 31%
    ),
    linear-gradient(
      135deg,
      #081522 0%,
      #040a12 72%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-practice__header {
  display: grid;
  grid-template-columns: 0.72fr 2fr;
  gap: 90px;
  margin-bottom: 110px;
}

.ef-practice__index {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-top: 13px;
}

.ef-practice__overline {
  margin: 0 0 20px;
  color: var(--gold-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-practice__heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(68px, 9vw, 132px);
  font-weight: 400;
  line-height: 0.84;
  letter-spacing: -0.055em;
}

.ef-practice__heading h2 span {
  display: block;
  padding-left: 11%;
  color: var(--gold-soft);
  font-style: italic;
}

.ef-practice__lead {
  max-width: 620px;
  margin: 40px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

.ef-practice__stage {
  position: relative;
}

.ef-practice__word {
  position: absolute;
  top: 50%;
  left: -5%;
  transform: translateY(-50%) rotate(-90deg);
  transform-origin: center;
  font-family: var(--serif);
  font-size: clamp(120px, 17vw, 270px);
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.018);
  pointer-events: none;
  user-select: none;
}

.ef-practice__services {
  position: relative;
  z-index: 2;
  width: 84%;
  margin-left: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.09);
  border-left: 1px solid rgba(255, 255, 255, 0.09);
}

.ef-service {
  position: relative;
  min-height: 250px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 22px;
  padding: 42px 34px;
  border-right: 1px solid rgba(255, 255, 255, 0.09);
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  background: rgba(255, 255, 255, 0.012);
  overflow: hidden;
  transition:
    background 0.4s ease,
    transform 0.4s ease;
}

.ef-service::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s ease;
}

.ef-service:hover {
  background: rgba(200, 169, 107, 0.055);
  transform: translateY(-4px);
}

.ef-service:hover::before {
  transform: scaleX(1);
}

.ef-service__number {
  font-size: 9px;
  letter-spacing: 0.18em;
  color: var(--gold-soft);
}

.ef-service h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 400;
  line-height: 1.08;
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.3s ease;
}

.ef-service:hover h3 {
  color: var(--gold-soft);
}

.ef-service p {
  max-width: 420px;
  margin: 18px 0 0;
  color: rgba(170, 179, 194, 0.76);
  font-size: 14px;
  line-height: 1.72;
}

.ef-service__arrow {
  color: rgba(255, 255, 255, 0.35);
  font-size: 18px;
  transition:
    color 0.3s ease,
    transform 0.3s ease;
}

.ef-service:hover .ef-service__arrow {
  color: var(--gold-soft);
  transform: translate(3px, -3px);
}

.ef-practice__footer {
  width: 84%;
  margin: 52px 0 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.ef-practice__footer p {
  max-width: 560px;
  margin: 0;
  color: var(--muted-soft);
  font-size: 13px;
  line-height: 1.7;
}

.ef-practice__footer a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--line);
  color: rgba(255, 255, 255, 0.72);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}

.ef-practice__footer a:hover {
  color: var(--gold-soft);
  border-color: var(--gold);
}

@media (max-width: 980px) {
  .ef-practice {
    padding: 110px 0 120px;
  }

  .ef-practice__header {
    grid-template-columns: 1fr;
    gap: 45px;
    margin-bottom: 75px;
  }

  .ef-practice__services {
    width: 100%;
  }

  .ef-practice__word {
    display: none;
  }

  .ef-practice__footer {
    width: 100%;
  }
}

@media (max-width: 720px) {
  .ef-practice__services {
    grid-template-columns: 1fr;
  }

  .ef-service {
    min-height: 0;
    padding: 34px 22px;
    grid-template-columns: 30px minmax(0, 1fr) auto;
  }

  .ef-practice__heading h2 {
    font-size: 72px;
  }

  .ef-practice__heading h2 span {
    padding-left: 0;
  }

  .ef-practice__footer {
    flex-direction: column;
    align-items: flex-start;
  }
}


/* =========================================================
   ÁREAS DE INTERVENCIÓN
========================================================= */

.ef-areas {
  position: relative;
  padding: 160px 0 170px;
  overflow: hidden;
  background:
    radial-gradient(
      circle at 50% -5%,
      rgba(200, 169, 107, 0.07),
      transparent 30%
    ),
    linear-gradient(
      180deg,
      #040a12 0%,
      #07111f 100%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-areas::before {
  content: "ÁREAS";
  position: absolute;
  right: -2%;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--serif);
  font-size: clamp(180px, 24vw, 390px);
  letter-spacing: -0.05em;
  color: rgba(255, 255, 255, 0.012);
  pointer-events: none;
  user-select: none;
}

.ef-areas__header {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 0.72fr 2fr;
  gap: 90px;
  margin-bottom: 100px;
}

.ef-areas__index {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-top: 13px;
}

.ef-areas__overline {
  margin: 0 0 20px;
  color: var(--gold-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-areas__heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(62px, 8vw, 120px);
  font-weight: 400;
  line-height: 0.88;
  letter-spacing: -0.05em;
  color: rgba(255, 255, 255, 0.93);
}

.ef-areas__heading h2 span {
  display: block;
  color: var(--gold-soft);
  font-style: italic;
  padding-left: 10%;
}

.ef-areas__heading > p:last-child {
  max-width: 650px;
  margin: 38px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

.ef-areas__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.ef-area {
  position: relative;
  min-height: 390px;
  padding: 40px 42px;
  border-right: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.018),
      rgba(255, 255, 255, 0.005)
    );
  transition:
    background 0.4s ease,
    transform 0.4s ease;
}

.ef-area::after {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -120px;
  bottom: -120px;
  border: 1px solid rgba(200, 169, 107, 0.13);
  border-radius: 50%;
  transform: scale(0.75);
  opacity: 0;
  transition:
    transform 0.5s ease,
    opacity 0.5s ease;
}

.ef-area:hover {
  background:
    linear-gradient(
      145deg,
      rgba(200, 169, 107, 0.08),
      rgba(255, 255, 255, 0.008)
    );
  transform: translateY(-5px);
}

.ef-area:hover::after {
  transform: scale(1);
  opacity: 1;
}

.ef-area__number {
  position: relative;
  z-index: 2;
  color: var(--gold-soft);
  font-size: 9px;
  letter-spacing: 0.2em;
}

.ef-area__name {
  position: relative;
  z-index: 2;
  display: block;
  margin: 38px 0 auto;
  font-family: var(--serif);
  font-size: clamp(58px, 7vw, 104px);
  line-height: 0.9;
  letter-spacing: -0.045em;
  color: rgba(255, 255, 255, 0.91);
  transition: color 0.3s ease;
}

.ef-area:hover .ef-area__name {
  color: var(--gold-soft);
}

.ef-area__details {
  position: relative;
  z-index: 2;
  max-width: 510px;
  margin-top: 42px;
}

.ef-area__details p {
  margin: 0;
  color: rgba(170, 179, 194, 0.78);
  font-size: 14px;
  line-height: 1.75;
}

.ef-area__link {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  margin-top: 22px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--line);
  color: rgba(255, 255, 255, 0.54);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  transition:
    color 0.3s ease,
    border-color 0.3s ease;
}

.ef-area:hover .ef-area__link {
  color: var(--gold-soft);
  border-color: var(--gold);
}

.ef-areas__closing {
  position: relative;
  z-index: 2;
  margin-top: 58px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.ef-areas__closing > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.36);
  font-size: 8px;
}

.ef-areas__closing p {
  margin: 0 0 0 16px;
  color: var(--muted-soft);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
}

@media (max-width: 980px) {
  .ef-areas {
    padding: 110px 0 120px;
  }

  .ef-areas__header {
    grid-template-columns: 1fr;
    gap: 45px;
    margin-bottom: 70px;
  }

  .ef-area {
    min-height: 340px;
  }

  .ef-areas::before {
    display: none;
  }
}

@media (max-width: 720px) {
  .ef-areas__grid {
    grid-template-columns: 1fr;
  }

  .ef-area {
    min-height: 310px;
    padding: 32px 24px;
  }

  .ef-area__name {
    font-size: 66px;
  }

  .ef-areas__heading h2 {
    font-size: 67px;
  }

  .ef-areas__heading h2 span {
    padding-left: 0;
  }

  .ef-areas__closing {
    flex-wrap: wrap;
  }

  .ef-areas__closing p {
    width: 100%;
    margin: 8px 0 0;
  }
}


/* =========================================================
   DIRECCIÓN PROFESIONAL
========================================================= */

.ef-direction {
  position: relative;
  overflow: hidden;
  padding: 160px 0 170px;
  background:
    radial-gradient(
      circle at 18% 26%,
      rgba(200, 169, 107, 0.08),
      transparent 26%
    ),
    linear-gradient(
      145deg,
      #07111f 0%,
      #030811 78%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-direction__header {
  display: grid;
  grid-template-columns: 0.72fr 2fr;
  gap: 90px;
  margin-bottom: 100px;
}

.ef-direction__index {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-top: 13px;
}

.ef-direction__overline {
  margin: 0 0 20px;
  color: var(--gold-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-direction__heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(62px, 8vw, 118px);
  font-weight: 400;
  line-height: 0.88;
  letter-spacing: -0.05em;
}

.ef-direction__heading h2 span {
  display: block;
  padding-left: 11%;
  color: var(--gold-soft);
  font-style: italic;
}

.ef-direction__layout {
  display: grid;
  grid-template-columns: 0.9fr 1.35fr;
  gap: 100px;
  align-items: center;
}

.ef-direction__portrait {
  position: relative;
  min-height: 620px;
  display: grid;
  place-items: center;
}

.ef-direction__portrait::before {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  border: 1px solid rgba(200, 169, 107, 0.12);
}

.ef-direction__portrait::after {
  content: "";
  position: absolute;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.ef-direction__portrait-frame {
  position: relative;
  z-index: 2;
  width: 300px;
  height: 430px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.035),
      rgba(255, 255, 255, 0.008)
    );
  box-shadow: var(--shadow);
}

.ef-direction__portrait-initials {
  font-family: var(--serif);
  font-size: 92px;
  letter-spacing: -0.04em;
  color: rgba(255, 255, 255, 0.92);
}

.ef-direction__portrait-line {
  width: 56px;
  height: 1px;
  margin: 28px 0 20px;
  background: var(--gold-soft);
}

.ef-direction__portrait-frame > span {
  color: var(--muted-soft);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.24em;
}

.ef-direction__content {
  max-width: 760px;
}

.ef-direction__role {
  margin: 0 0 12px;
  color: var(--gold-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.25em;
}

.ef-direction__content h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(48px, 6vw, 86px);
  font-weight: 400;
  line-height: 0.96;
  letter-spacing: -0.04em;
  color: rgba(255, 255, 255, 0.94);
}

.ef-direction__professional {
  margin: 20px 0 0;
  color: var(--gold-soft);
  font-size: 14px;
  letter-spacing: 0.08em;
}

.ef-direction__lead {
  max-width: 720px;
  margin: 42px 0 0;
  font-family: var(--serif);
  font-size: clamp(24px, 2.6vw, 36px);
  line-height: 1.34;
  color: rgba(255, 255, 255, 0.86);
}

.ef-direction__text {
  max-width: 670px;
  margin: 28px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.85;
}

.ef-direction__principles {
  margin-top: 46px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.09);
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}

.ef-direction__principles > div {
  min-height: 120px;
  padding: 22px 20px;
  border-right: 1px solid rgba(255, 255, 255, 0.09);
}

.ef-direction__principles > div:last-child {
  border-right: 0;
}

.ef-direction__principles span {
  display: block;
  margin-bottom: 20px;
  color: var(--gold-soft);
  font-size: 9px;
  letter-spacing: 0.18em;
}

.ef-direction__principles p {
  margin: 0;
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1.25;
  color: rgba(255, 255, 255, 0.78);
}

.ef-direction__link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 40px;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--line);
  color: rgba(255, 255, 255, 0.68);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
}

.ef-direction__link:hover {
  color: var(--gold-soft);
  border-color: var(--gold);
}

@media (max-width: 980px) {
  .ef-direction {
    padding: 110px 0 120px;
  }

  .ef-direction__header {
    grid-template-columns: 1fr;
    gap: 45px;
    margin-bottom: 70px;
  }

  .ef-direction__layout {
    grid-template-columns: 1fr;
    gap: 70px;
  }

  .ef-direction__portrait {
    min-height: 500px;
  }
}

@media (max-width: 680px) {
  .ef-direction__heading h2 {
    font-size: 66px;
  }

  .ef-direction__heading h2 span {
    padding-left: 0;
  }

  .ef-direction__portrait {
    min-height: 420px;
  }

  .ef-direction__portrait::before {
    width: 340px;
    height: 340px;
  }

  .ef-direction__portrait::after {
    width: 260px;
    height: 260px;
  }

  .ef-direction__portrait-frame {
    width: 230px;
    height: 330px;
  }

  .ef-direction__portrait-initials {
    font-size: 68px;
  }

  .ef-direction__principles {
    grid-template-columns: 1fr;
  }

  .ef-direction__principles > div {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  }

  .ef-direction__principles > div:last-child {
    border-bottom: 0;
  }
}


/* =========================================================
   EQUIPO INTERDISCIPLINARIO
========================================================= */

.ef-team {
  position: relative;
  overflow: hidden;
  padding: 160px 0 170px;
  background:
    radial-gradient(
      circle at 50% 38%,
      rgba(200, 169, 107, 0.065),
      transparent 26%
    ),
    linear-gradient(
      180deg,
      #030811 0%,
      #07111f 100%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-team::before {
  content: "";
  position: absolute;
  width: 760px;
  height: 760px;
  left: 50%;
  top: 54%;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(200, 169, 107, 0.045);
  border-radius: 50%;
  pointer-events: none;
}

.ef-team__header {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 0.72fr 2fr;
  gap: 90px;
  margin-bottom: 110px;
}

.ef-team__index {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-top: 13px;
}

.ef-team__overline {
  margin: 0 0 20px;
  color: var(--gold-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-team__heading h2 {
  margin: 0;
  max-width: 1000px;
  font-family: var(--serif);
  font-size: clamp(58px, 7.8vw, 116px);
  font-weight: 400;
  line-height: 0.9;
  letter-spacing: -0.05em;
  color: rgba(255, 255, 255, 0.93);
}

.ef-team__heading h2 span {
  display: block;
  padding-left: 8%;
  color: var(--gold-soft);
  font-style: italic;
}

.ef-team__heading > p:last-child {
  max-width: 650px;
  margin: 38px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

.ef-team__core {
  position: relative;
  z-index: 2;
}

.ef-team__center {
  position: relative;
  width: min(520px, 100%);
  min-height: 210px;
  margin: 0 auto 80px;
  padding: 42px 34px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  border: 1px solid rgba(200, 169, 107, 0.25);
  background:
    radial-gradient(
      circle at center,
      rgba(200, 169, 107, 0.07),
      transparent 70%
    ),
    rgba(255, 255, 255, 0.015);
}

.ef-team__center::before,
.ef-team__center::after {
  content: "";
  position: absolute;
  width: 1px;
  height: 80px;
  left: 50%;
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(200, 169, 107, 0.4),
    transparent
  );
}

.ef-team__center::before {
  top: -80px;
}

.ef-team__center::after {
  bottom: -80px;
}

.ef-team__center-label {
  margin-bottom: 15px;
  color: var(--gold-soft);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.25em;
}

.ef-team__center strong {
  font-family: var(--serif);
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 400;
  color: rgba(255, 255, 255, 0.94);
}

.ef-team__center > span:last-child {
  margin-top: 10px;
  color: var(--muted-soft);
  font-size: 11px;
  letter-spacing: 0.08em;
}

.ef-team__disciplines {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.09);
  border-left: 1px solid rgba(255, 255, 255, 0.09);
}

.ef-discipline {
  position: relative;
  min-height: 290px;
  padding: 42px;
  border-right: 1px solid rgba(255, 255, 255, 0.09);
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  background: rgba(255, 255, 255, 0.012);
  overflow: hidden;
  transition:
    background 0.4s ease,
    transform 0.4s ease;
}

.ef-discipline::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s ease;
}

.ef-discipline:hover {
  background: rgba(200, 169, 107, 0.05);
  transform: translateY(-4px);
}

.ef-discipline:hover::before {
  transform: scaleX(1);
}

.ef-discipline--wide {
  grid-column: 1 / -1;
  min-height: 240px;
}

.ef-discipline__number {
  display: block;
  margin-bottom: 44px;
  color: var(--gold-soft);
  font-size: 9px;
  letter-spacing: 0.2em;
}

.ef-discipline h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 400;
  line-height: 1;
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.3s ease;
}

.ef-discipline:hover h3 {
  color: var(--gold-soft);
}

.ef-discipline p {
  max-width: 560px;
  margin: 24px 0 0;
  color: rgba(170, 179, 194, 0.76);
  font-size: 14px;
  line-height: 1.75;
}

.ef-team__note {
  position: relative;
  z-index: 2;
  margin-top: 48px;
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 42px;
  align-items: start;
  padding-top: 30px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.ef-team__note span {
  color: var(--gold-soft);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
}

.ef-team__note p {
  max-width: 760px;
  margin: 0;
  color: var(--muted-soft);
  font-size: 13px;
  line-height: 1.75;
}

@media (max-width: 980px) {
  .ef-team {
    padding: 110px 0 120px;
  }

  .ef-team__header {
    grid-template-columns: 1fr;
    gap: 45px;
    margin-bottom: 80px;
  }

  .ef-team::before {
    width: 520px;
    height: 520px;
  }
}

@media (max-width: 720px) {
  .ef-team__heading h2 {
    font-size: 62px;
  }

  .ef-team__heading h2 span {
    padding-left: 0;
  }

  .ef-team__disciplines {
    grid-template-columns: 1fr;
  }

  .ef-discipline--wide {
    grid-column: auto;
  }

  .ef-discipline {
    min-height: 0;
    padding: 34px 24px;
  }

  .ef-discipline__number {
    margin-bottom: 30px;
  }

  .ef-team__center {
    margin-bottom: 65px;
  }

  .ef-team__note {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}


/* =========================================================
   MÉTODO FALCO®
========================================================= */

.ef-method {
  position: relative;
  overflow: hidden;
  padding: 160px 0 170px;
  background:
    radial-gradient(
      circle at 78% 18%,
      rgba(200, 169, 107, 0.08),
      transparent 25%
    ),
    linear-gradient(
      150deg,
      #07111f 0%,
      #030811 82%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-method::before {
  content: "MÉTODO";
  position: absolute;
  left: -3%;
  bottom: -3%;
  font-family: var(--serif);
  font-size: clamp(150px, 22vw, 360px);
  color: rgba(255, 255, 255, 0.012);
  pointer-events: none;
  user-select: none;
}

.ef-method__header {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 0.72fr 2fr;
  gap: 90px;
  margin-bottom: 120px;
}

.ef-method__index {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-top: 13px;
}

.ef-method__overline {
  margin: 0 0 20px;
  color: var(--gold-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-method__heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(66px, 9vw, 132px);
  font-weight: 400;
  line-height: 0.86;
  letter-spacing: -0.055em;
  color: rgba(255, 255, 255, 0.93);
}

.ef-method__heading h2 span {
  display: block;
  padding-left: 12%;
  color: var(--gold-soft);
  font-style: italic;
}

.ef-method__heading > p:last-child {
  max-width: 650px;
  margin: 40px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

.ef-method__timeline {
  position: relative;
  z-index: 2;
  width: 88%;
  margin-left: auto;
}

.ef-method-step {
  position: relative;
  display: grid;
  grid-template-columns: 72px 90px minmax(0, 1fr);
  gap: 28px;
  min-height: 190px;
  padding: 22px 0 45px;
}

.ef-method-step__number {
  padding-top: 9px;
  color: var(--gold-soft);
  font-size: 10px;
  letter-spacing: 0.2em;
}

.ef-method-step__line {
  position: relative;
  width: 1px;
  height: 100%;
  margin-left: 50%;
  background: rgba(200, 169, 107, 0.22);
}

.ef-method-step__line::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 50%;
  width: 15px;
  height: 15px;
  transform: translateX(-50%);
  border: 1px solid var(--gold);
  border-radius: 50%;
  background: #07111f;
  box-shadow: 0 0 0 7px rgba(200, 169, 107, 0.045);
}

.ef-method-step:last-child .ef-method-step__line {
  background: linear-gradient(
    to bottom,
    rgba(200, 169, 107, 0.22),
    transparent
  );
}

.ef-method-step__content {
  padding-bottom: 38px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.075);
}

.ef-method-step__content h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(38px, 4.5vw, 66px);
  font-weight: 400;
  line-height: 1;
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.3s ease;
}

.ef-method-step:hover h3 {
  color: var(--gold-soft);
}

.ef-method-step__content p {
  max-width: 690px;
  margin: 21px 0 0;
  color: rgba(170, 179, 194, 0.78);
  font-size: 14px;
  line-height: 1.78;
}

.ef-method__statement {
  position: relative;
  z-index: 2;
  margin: 100px 0;
  padding: 70px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.075);
  border-bottom: 1px solid rgba(255, 255, 255, 0.075);
}

.ef-method__statement p {
  max-width: 1100px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(42px, 6vw, 88px);
  line-height: 1.02;
  letter-spacing: -0.04em;
  color: rgba(255, 255, 255, 0.88);
}

.ef-method__statement span {
  display: block;
  margin-top: 10px;
  padding-left: 10%;
  color: var(--gold-soft);
  font-style: italic;
}

.ef-method__footer {
  position: relative;
  z-index: 2;
  width: 88%;
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 45px;
}

.ef-method__footer p {
  max-width: 650px;
  margin: 0;
  color: var(--muted-soft);
  font-size: 13px;
  line-height: 1.75;
}

.ef-method__footer a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--line);
  color: rgba(255, 255, 255, 0.68);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  white-space: nowrap;
}

.ef-method__footer a:hover {
  color: var(--gold-soft);
  border-color: var(--gold);
}

@media (max-width: 980px) {
  .ef-method {
    padding: 110px 0 120px;
  }

  .ef-method__header {
    grid-template-columns: 1fr;
    gap: 45px;
    margin-bottom: 80px;
  }

  .ef-method__timeline {
    width: 100%;
  }

  .ef-method__footer {
    width: 100%;
  }

  .ef-method::before {
    display: none;
  }
}

@media (max-width: 720px) {
  .ef-method__heading h2 {
    font-size: 72px;
  }

  .ef-method__heading h2 span {
    padding-left: 0;
  }

  .ef-method-step {
    grid-template-columns: 38px 28px minmax(0, 1fr);
    gap: 14px;
    min-height: 0;
  }

  .ef-method-step__content h3 {
    font-size: 42px;
  }

  .ef-method__statement {
    margin: 70px 0;
    padding: 50px 0;
  }

  .ef-method__statement p {
    font-size: 47px;
  }

  .ef-method__statement span {
    padding-left: 0;
  }

  .ef-method__footer {
    flex-direction: column;
    align-items: flex-start;
  }
}


/* =========================================================
   UNIVERSO FALCO®
========================================================= */

.ef-universe {
  position: relative;
  overflow: hidden;
  padding: 160px 0 180px;
  background:
    radial-gradient(
      circle at 50% 50%,
      rgba(200, 169, 107, 0.075),
      transparent 24%
    ),
    radial-gradient(
      circle at 15% 80%,
      rgba(37, 73, 121, 0.12),
      transparent 25%
    ),
    linear-gradient(
      180deg,
      #030811 0%,
      #07111f 100%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-universe__header {
  display: grid;
  grid-template-columns: 0.72fr 2fr;
  gap: 90px;
  margin-bottom: 100px;
}

.ef-universe__index {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-top: 13px;
}

.ef-universe__overline {
  margin: 0 0 20px;
  color: var(--gold-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-universe__heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(66px, 9vw, 132px);
  font-weight: 400;
  line-height: 0.86;
  letter-spacing: -0.055em;
  color: rgba(255, 255, 255, 0.93);
}

.ef-universe__heading h2 span {
  display: block;
  padding-left: 10%;
  color: var(--gold-soft);
  font-style: italic;
}

.ef-universe__heading > p:last-child {
  max-width: 650px;
  margin: 40px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

/* ESCENA CENTRAL */

.ef-universe__stage {
  position: relative;
  width: min(1180px, 100%);
  height: 850px;
  margin: 0 auto;
}

.ef-universe__stage::before {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 680px;
  height: 680px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(200, 169, 107, 0.055),
      transparent 66%
    );
  pointer-events: none;
}

.ef-universe__orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  border: 1px solid rgba(200, 169, 107, 0.1);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.ef-universe__orbit--one {
  width: 340px;
  height: 340px;
}

.ef-universe__orbit--two {
  width: 560px;
  height: 560px;
}

.ef-universe__orbit--three {
  width: 760px;
  height: 760px;
  border-color: rgba(255, 255, 255, 0.045);
}

.ef-universe__center {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 5;
  width: 285px;
  height: 285px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(200, 169, 107, 0.28);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background:
    radial-gradient(
      circle,
      rgba(200, 169, 107, 0.12),
      rgba(7, 17, 31, 0.96) 68%
    );
  box-shadow:
    0 0 80px rgba(200, 169, 107, 0.065),
    0 35px 80px rgba(0, 0, 0, 0.28);
}

.ef-universe__center-small {
  max-width: 190px;
  margin-bottom: 12px;
  color: var(--muted-soft);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  line-height: 1.5;
}

.ef-universe__center strong {
  font-family: var(--serif);
  font-size: 65px;
  font-weight: 400;
  letter-spacing: 0.03em;
  color: var(--gold-soft);
}

.ef-universe__center-bottom {
  margin-top: 13px;
  color: rgba(255, 255, 255, 0.48);
  font-size: 9px;
  letter-spacing: 0.08em;
}

/* NODOS */

.ef-universe-node {
  position: absolute;
  z-index: 4;
  width: 230px;
  min-height: 120px;
  padding: 20px 22px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.03),
      rgba(255, 255, 255, 0.008)
    );
  backdrop-filter: blur(10px);
  transition:
    transform 0.35s ease,
    border-color 0.35s ease,
    background 0.35s ease,
    box-shadow 0.35s ease;
}

.ef-universe-node:hover {
  z-index: 8;
  transform: translateY(-5px);
  border-color: rgba(200, 169, 107, 0.42);
  background: rgba(200, 169, 107, 0.07);
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.25);
}

.ef-universe-node > span {
  display: block;
  margin-bottom: 16px;
  color: var(--gold-soft);
  font-size: 8px;
  letter-spacing: 0.18em;
}

.ef-universe-node strong {
  display: block;
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 400;
  line-height: 1.05;
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.3s ease;
}

.ef-universe-node:hover strong {
  color: var(--gold-soft);
}

.ef-universe-node small {
  display: block;
  margin-top: 8px;
  color: var(--muted-soft);
  font-size: 10px;
  letter-spacing: 0.06em;
}

/* POSICIONES */

.ef-universe-node--one {
  top: 4%;
  left: 50%;
  transform: translateX(-50%);
}

.ef-universe-node--one:hover {
  transform: translateX(-50%) translateY(-5px);
}

.ef-universe-node--two {
  top: 18%;
  right: 4%;
}

.ef-universe-node--three {
  top: 48%;
  right: 0;
}

.ef-universe-node--four {
  bottom: 7%;
  right: 12%;
}

.ef-universe-node--five {
  bottom: 7%;
  left: 12%;
}

.ef-universe-node--six {
  top: 48%;
  left: 0;
}

.ef-universe-node--seven {
  top: 18%;
  left: 4%;
}

.ef-universe-node--eight {
  bottom: -3%;
  left: 50%;
  transform: translateX(-50%);
}

.ef-universe-node--eight:hover {
  transform: translateX(-50%) translateY(-5px);
}

/* MOBILE LIST */

.ef-universe__mobile-list {
  display: none;
}

/* FOOTER */

.ef-universe__footer {
  margin-top: 85px;
  padding-top: 35px;
  border-top: 1px solid rgba(255, 255, 255, 0.075);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 50px;
}

.ef-universe__footer p {
  max-width: 680px;
  margin: 0;
  color: var(--muted-soft);
  font-size: 13px;
  line-height: 1.75;
}

.ef-universe__footer a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--line);
  color: rgba(255, 255, 255, 0.68);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  white-space: nowrap;
}

.ef-universe__footer a:hover {
  color: var(--gold-soft);
  border-color: var(--gold);
}

/* RESPONSIVE */

@media (max-width: 1050px) {
  .ef-universe__stage {
    height: 760px;
  }

  .ef-universe-node {
    width: 200px;
  }

  .ef-universe__orbit--three {
    width: 650px;
    height: 650px;
  }

  .ef-universe-node--two {
    right: 0;
  }

  .ef-universe-node--seven {
    left: 0;
  }
}

@media (max-width: 900px) {
  .ef-universe {
    padding: 110px 0 120px;
  }

  .ef-universe__header {
    grid-template-columns: 1fr;
    gap: 45px;
    margin-bottom: 70px;
  }

  .ef-universe__stage {
    display: none;
  }

  .ef-universe__mobile-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    border-left: 1px solid rgba(255, 255, 255, 0.09);
  }

  .ef-universe__mobile-list a {
    min-height: 180px;
    padding: 28px;
    display: grid;
    grid-template-columns: 1fr auto;
    align-content: start;
    border-right: 1px solid rgba(255, 255, 255, 0.09);
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  }

  .ef-universe__mobile-list span {
    color: var(--gold-soft);
    font-size: 8px;
    letter-spacing: 0.18em;
  }

  .ef-universe__mobile-list strong {
    grid-column: 1;
    margin-top: 34px;
    font-family: var(--serif);
    font-size: 30px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.9);
  }

  .ef-universe__mobile-list small {
    grid-column: 1;
    margin-top: 8px;
    color: var(--muted-soft);
    font-size: 11px;
  }

  .ef-universe__mobile-list b {
    grid-column: 2;
    grid-row: 1 / 4;
    align-self: center;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.36);
  }
}

@media (max-width: 640px) {
  .ef-universe__heading h2 {
    font-size: 70px;
  }

  .ef-universe__heading h2 span {
    padding-left: 0;
  }

  .ef-universe__mobile-list {
    grid-template-columns: 1fr;
  }

  .ef-universe__footer {
    flex-direction: column;
    align-items: flex-start;
  }
}


/* =========================================================
   CONTACTO / ORIENTACIÓN FINAL
========================================================= */

.ef-contact {
  position: relative;
  overflow: hidden;
  padding: 160px 0 170px;
  background:
    radial-gradient(
      circle at 80% 20%,
      rgba(200, 169, 107, 0.065),
      transparent 24%
    ),
    linear-gradient(
      145deg,
      #07111f 0%,
      #040a12 78%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-contact__header {
  display: grid;
  grid-template-columns: 0.72fr 2fr;
  gap: 90px;
  margin-bottom: 95px;
}

.ef-contact__index {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-top: 13px;
}

.ef-contact__overline {
  margin: 0 0 20px;
  color: var(--gold-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-contact__heading h2 {
  margin: 0;
  max-width: 1000px;
  font-family: var(--serif);
  font-size: clamp(60px, 8vw, 120px);
  font-weight: 400;
  line-height: 0.88;
  letter-spacing: -0.05em;
  color: rgba(255, 255, 255, 0.93);
}

.ef-contact__heading h2 span {
  display: block;
  padding-left: 8%;
  color: var(--gold-soft);
  font-style: italic;
}

.ef-contact__heading > p:last-child {
  max-width: 690px;
  margin: 38px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

.ef-contact__paths {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.09);
  border-left: 1px solid rgba(255, 255, 255, 0.09);
}

.ef-contact-card {
  position: relative;
  min-height: 440px;
  padding: 38px 34px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid rgba(255, 255, 255, 0.09);
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  background: rgba(255, 255, 255, 0.012);
  overflow: hidden;
  transition:
    background 0.4s ease,
    transform 0.4s ease;
}

.ef-contact-card::before {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -130px;
  bottom: -130px;
  border: 1px solid rgba(200, 169, 107, 0.13);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.7);
  transition:
    opacity 0.45s ease,
    transform 0.45s ease;
}

.ef-contact-card:hover {
  background: rgba(200, 169, 107, 0.055);
  transform: translateY(-5px);
}

.ef-contact-card:hover::before {
  opacity: 1;
  transform: scale(1);
}

.ef-contact-card__number {
  position: relative;
  z-index: 2;
  color: var(--gold-soft);
  font-size: 9px;
  letter-spacing: 0.2em;
}

.ef-contact-card__label {
  position: relative;
  z-index: 2;
  margin: 0 0 20px;
  color: var(--gold-soft);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
}

.ef-contact-card h3 {
  position: relative;
  z-index: 2;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(35px, 3.7vw, 52px);
  font-weight: 400;
  line-height: 1.03;
  color: rgba(255, 255, 255, 0.91);
  transition: color 0.3s ease;
}

.ef-contact-card:hover h3 {
  color: var(--gold-soft);
}

.ef-contact-card__text {
  position: relative;
  z-index: 2;
  margin: 25px 0 0;
  color: rgba(170, 179, 194, 0.76);
  font-size: 14px;
  line-height: 1.75;
}

.ef-contact-card__action {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 45px;
  color: rgba(255, 255, 255, 0.52);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  transition:
    color 0.3s ease,
    transform 0.3s ease;
}

.ef-contact-card:hover .ef-contact-card__action {
  color: var(--gold-soft);
  transform: translateX(4px);
}

/* =========================================================
   GRAN CIERRE
========================================================= */

.ef-finale {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 150px 0 40px;
  background:
    radial-gradient(
      circle at 50% 40%,
      rgba(200, 169, 107, 0.085),
      transparent 28%
    ),
    linear-gradient(
      180deg,
      #040a12 0%,
      #02060d 100%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-finale__atmosphere {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.ef-finale__glow {
  position: absolute;
  top: 35%;
  left: 50%;
  width: 720px;
  height: 720px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(200, 169, 107, 0.09),
      transparent 65%
    );
  filter: blur(20px);
}

.ef-finale__line {
  position: absolute;
  left: 50%;
  top: 0;
  width: 1px;
  height: 180px;
  background:
    linear-gradient(
      to bottom,
      transparent,
      rgba(200, 169, 107, 0.55),
      transparent
    );
}

.ef-finale .ef-section-shell {
  position: relative;
  z-index: 2;
}

.ef-finale__sequence {
  display: flex;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
  margin-bottom: 90px;
}

.ef-finale__sequence span {
  color: rgba(255, 255, 255, 0.28);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.24em;
}

.ef-finale__sequence span::after {
  content: "·";
  margin-left: 30px;
  color: rgba(200, 169, 107, 0.35);
}

.ef-finale__sequence span:last-child::after {
  display: none;
}

.ef-finale__content {
  text-align: center;
}

.ef-finale__eyebrow {
  margin: 0 0 32px;
  color: var(--muted-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.26em;
}

.ef-finale__institution {
  margin: 0 0 15px;
  color: var(--gold-soft);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.34em;
}

.ef-finale__content h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(90px, 16vw, 210px);
  font-weight: 400;
  line-height: 0.82;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.95);
}

.ef-finale__content h2 span {
  position: relative;
  top: -1.3em;
  margin-left: 7px;
  font-family: var(--sans);
  font-size: 0.12em;
  color: var(--gold-soft);
}

.ef-finale__direction {
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
}

.ef-finale__direction > span {
  color: var(--muted-soft);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.25em;
}

.ef-finale__direction strong {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 400;
  color: var(--gold-soft);
}

.ef-finale__direction small {
  color: rgba(255, 255, 255, 0.48);
  font-size: 11px;
  letter-spacing: 0.08em;
}

.ef-finale__actions {
  margin-top: 55px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

/* FOOTER */

.ef-footer {
  margin-top: 130px;
  padding: 34px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 40px;
  align-items: end;
}

.ef-footer__brand {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.ef-footer__brand strong {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 400;
  color: var(--gold-soft);
}

.ef-footer__brand span {
  color: rgba(255, 255, 255, 0.35);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
}

.ef-footer__links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
}

.ef-footer__links a {
  color: rgba(255, 255, 255, 0.45);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  transition: color 0.25s ease;
}

.ef-footer__links a:hover {
  color: var(--gold-soft);
}

.ef-footer__domain {
  margin: 0;
  justify-self: end;
  color: rgba(255, 255, 255, 0.28);
  font-size: 10px;
  letter-spacing: 0.08em;
}

/* =========================================================
   RESPONSIVE CONTACT / FINALE
========================================================= */

@media (max-width: 980px) {
  .ef-contact {
    padding: 110px 0 120px;
  }

  .ef-contact__header {
    grid-template-columns: 1fr;
    gap: 45px;
    margin-bottom: 70px;
  }

  .ef-contact__paths {
    grid-template-columns: 1fr;
  }

  .ef-contact-card {
    min-height: 330px;
  }

  .ef-footer {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .ef-footer__links {
    justify-content: flex-start;
  }

  .ef-footer__domain {
    justify-self: start;
  }
}

@media (max-width: 640px) {
  .ef-contact__heading h2 {
    font-size: 61px;
  }

  .ef-contact__heading h2 span {
    padding-left: 0;
  }

  .ef-contact-card {
    min-height: 0;
    padding: 32px 24px;
  }

  .ef-finale {
    padding: 110px 0 32px;
  }

  .ef-finale__sequence {
    gap: 12px;
    margin-bottom: 65px;
  }

  .ef-finale__sequence span {
    width: 100%;
    text-align: center;
  }

  .ef-finale__sequence span::after {
    display: none;
  }

  .ef-finale__content h2 {
    font-size: 90px;
  }

  .ef-finale__actions {
    width: 100%;
  }

  .ef-finale__actions .ef-button {
    width: 100%;
  }

  .ef-footer {
    margin-top: 90px;
  }

  .ef-footer__links {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
}


/* =========================================================
   ANIMACIONES GENERALES DE ESCENA
========================================================= */

.ef-scroll-reveal {
  opacity: 0;
  transform: translateY(36px);
  transition:
    opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.ef-scroll-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}


/* =========================================================
   MENÚ — SECCIÓN ACTIVA
========================================================= */

.ef-menu__nav a.is-current {
  color: var(--gold-soft);
}

.ef-menu__nav a.is-current::before {
  content: "";
  position: absolute;
  left: -22px;
  top: 50%;
  width: 10px;
  height: 1px;
  background: var(--gold);
}


/* =========================================================
   TRANSICIONES ESPECÍFICAS
========================================================= */

.ef-path,
.ef-service,
.ef-contact-card {
  transition-property:
    opacity,
    transform,
    background,
    border-color,
    color,
    box-shadow;
}



/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {
  .ef-scroll-reveal {
    opacity: 1;
    transform: none;
  }
}


/* =========================================================
   PRINCIPIOS DEL ESTUDIO
========================================================= */

.ef-principles {
  position: relative;
  overflow: hidden;
  padding: 160px 0 175px;
  background:
    radial-gradient(
      circle at 8% 30%,
      rgba(200, 169, 107, 0.07),
      transparent 25%
    ),
    linear-gradient(
      180deg,
      #050c16 0%,
      #081321 100%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-principles::after {
  content: "PRINCIPIOS";
  position: absolute;
  right: -35px;
  top: 42%;
  transform: rotate(90deg) translateX(50%);
  transform-origin: right center;
  font-family: var(--serif);
  font-size: 10px;
  letter-spacing: 0.5em;
  color: rgba(255, 255, 255, 0.055);
  pointer-events: none;
}

.ef-principles__header {
  display: grid;
  grid-template-columns: 0.72fr 2fr;
  gap: 90px;
  margin-bottom: 100px;
}

.ef-principles__index {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-top: 13px;
}

.ef-principles__overline {
  margin: 0 0 20px;
  color: var(--gold-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-principles__heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(65px, 8.5vw, 125px);
  font-weight: 400;
  line-height: 0.86;
  letter-spacing: -0.055em;
  color: rgba(255, 255, 255, 0.93);
}

.ef-principles__heading h2 span {
  display: block;
  padding-left: 10%;
  color: var(--gold-soft);
  font-style: italic;
}

.ef-principles__heading > p:last-child {
  max-width: 680px;
  margin: 40px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}


/* DECLARACIÓN */

.ef-principles__statement {
  max-width: 1000px;
  margin: 0 auto 110px;
  padding: 70px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  text-align: center;
}

.ef-principles__statement p {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(28px, 4.2vw, 56px);
  font-weight: 400;
  line-height: 1.25;
  color: rgba(255, 255, 255, 0.55);
}

.ef-principles__statement p + p {
  margin-top: 12px;
}

.ef-principles__statement span {
  color: rgba(255, 255, 255, 0.88);
}

.ef-principles__statement strong {
  font-weight: 400;
  color: var(--gold-soft);
  font-style: italic;
}


/* GRILLA */

.ef-principles__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.09);
  border-left: 1px solid rgba(255, 255, 255, 0.09);
}

.ef-principle {
  position: relative;
  min-height: 360px;
  padding: 34px 32px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  border-right: 1px solid rgba(255, 255, 255, 0.09);
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  background: rgba(255, 255, 255, 0.01);
  transition:
    background 0.4s ease,
    transform 0.4s ease;
}

.ef-principle:hover {
  z-index: 2;
  background: rgba(200, 169, 107, 0.05);
  transform: translateY(-5px);
}

.ef-principle__number {
  position: relative;
  z-index: 2;
  color: var(--gold-soft);
  font-size: 8px;
  letter-spacing: 0.2em;
}

.ef-principle__content {
  position: relative;
  z-index: 2;
}

.ef-principle h3 {
  margin: 0;
  max-width: 300px;
  font-family: var(--serif);
  font-size: clamp(31px, 3vw, 45px);
  font-weight: 400;
  line-height: 1.05;
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.3s ease;
}

.ef-principle:hover h3 {
  color: var(--gold-soft);
}

.ef-principle p {
  max-width: 330px;
  margin: 22px 0 0;
  color: rgba(170, 179, 194, 0.72);
  font-size: 13px;
  line-height: 1.75;
}

.ef-principle__mark {
  position: absolute;
  right: -5px;
  bottom: -45px;
  font-family: var(--serif);
  font-size: 190px;
  font-weight: 400;
  line-height: 1;
  color: rgba(255, 255, 255, 0.018);
  transition:
    color 0.4s ease,
    transform 0.4s ease;
  pointer-events: none;
}

.ef-principle:hover .ef-principle__mark {
  color: rgba(200, 169, 107, 0.045);
  transform: translateY(-7px);
}


/* CIERRE */

.ef-principles__closing {
  margin-top: 100px;
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 40px;
  align-items: center;
}

.ef-principles__closing-line {
  width: 100%;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      var(--gold),
      transparent
    );
}

.ef-principles__closing p {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(23px, 3vw, 38px);
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.55);
}

.ef-principles__closing p span {
  color: var(--gold-soft);
  font-style: italic;
}


/* RESPONSIVE */

@media (max-width: 900px) {
  .ef-principles {
    padding: 110px 0 120px;
  }

  .ef-principles__header {
    grid-template-columns: 1fr;
    gap: 45px;
    margin-bottom: 75px;
  }

  .ef-principles__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ef-principles__statement {
    margin-bottom: 80px;
  }
}

@media (max-width: 640px) {
  .ef-principles__heading h2 {
    font-size: 67px;
  }

  .ef-principles__heading h2 span {
    padding-left: 0;
  }

  .ef-principles__statement {
    padding: 50px 0;
  }

  .ef-principles__grid {
    grid-template-columns: 1fr;
  }

  .ef-principle {
    min-height: 300px;
    padding: 30px 24px;
  }

  .ef-principles__closing {
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .ef-principles__closing-line {
    width: 80px;
  }
}


/* =========================================================
   CONOCIMIENTO Y DESARROLLO PROFESIONAL
========================================================= */

.ef-knowledge {
  position: relative;
  overflow: hidden;
  padding: 160px 0 175px;
  background:
    radial-gradient(
      circle at 82% 18%,
      rgba(200, 169, 107, 0.07),
      transparent 24%
    ),
    linear-gradient(
      180deg,
      #06101d 0%,
      #030811 100%
    );
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-knowledge::before {
  content: "CONOCIMIENTO";
  position: absolute;
  left: 50%;
  top: 51%;
  transform: translate(-50%, -50%);
  font-family: var(--serif);
  font-size: clamp(110px, 17vw, 280px);
  color: rgba(255, 255, 255, 0.012);
  white-space: nowrap;
  pointer-events: none;
}

.ef-knowledge__header {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 0.72fr 2fr;
  gap: 90px;
  margin-bottom: 100px;
}

.ef-knowledge__index {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-top: 13px;
}

.ef-knowledge__overline {
  margin: 0 0 20px;
  color: var(--gold-soft);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-knowledge__heading h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(60px, 8vw, 120px);
  font-weight: 400;
  line-height: 0.88;
  letter-spacing: -0.05em;
  color: rgba(255, 255, 255, 0.93);
}

.ef-knowledge__heading h2 span {
  display: block;
  padding-left: 10%;
  color: var(--gold-soft);
  font-style: italic;
}

.ef-knowledge__heading > p:last-child {
  max-width: 680px;
  margin: 40px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}


/* TARJETAS */

.ef-knowledge__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.09);
  border-left: 1px solid rgba(255, 255, 255, 0.09);
}

.ef-knowledge-card {
  position: relative;
  min-height: 370px;
  padding: 36px 34px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  border-right: 1px solid rgba(255, 255, 255, 0.09);
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  background: rgba(255, 255, 255, 0.012);
  transition:
    background 0.4s ease,
    transform 0.4s ease;
}

.ef-knowledge-card::after {
  content: "";
  position: absolute;
  right: -120px;
  bottom: -120px;
  width: 250px;
  height: 250px;
  border: 1px solid rgba(200, 169, 107, 0.12);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.75);
  transition:
    opacity 0.45s ease,
    transform 0.45s ease;
}

.ef-knowledge-card:hover {
  background: rgba(200, 169, 107, 0.05);
  transform: translateY(-5px);
}

.ef-knowledge-card:hover::after {
  opacity: 1;
  transform: scale(1);
}

.ef-knowledge-card--wide {
  grid-column: 1 / -1;
  min-height: 300px;
}

.ef-knowledge-card__number {
  position: relative;
  z-index: 2;
  color: var(--gold-soft);
  font-size: 9px;
  letter-spacing: 0.2em;
}

.ef-knowledge-card__content {
  position: relative;
  z-index: 2;
  max-width: 600px;
}

.ef-knowledge-card__label {
  margin: 0 0 18px;
  color: var(--gold-soft);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.22em;
}

.ef-knowledge-card h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(35px, 4vw, 57px);
  font-weight: 400;
  line-height: 1;
  color: rgba(255, 255, 255, 0.91);
  transition: color 0.3s ease;
}

.ef-knowledge-card h3 span {
  color: rgba(255, 255, 255, 0.48);
  font-style: italic;
}

.ef-knowledge-card:hover h3,
.ef-knowledge-card:hover h3 span {
  color: var(--gold-soft);
}

.ef-knowledge-card__content > p:last-child {
  max-width: 520px;
  margin: 24px 0 0;
  color: rgba(170, 179, 194, 0.76);
  font-size: 14px;
  line-height: 1.75;
}

.ef-knowledge-card__action {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 40px;
  color: rgba(255, 255, 255, 0.52);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  transition:
    color 0.3s ease,
    transform 0.3s ease;
}

.ef-knowledge-card:hover .ef-knowledge-card__action {
  color: var(--gold-soft);
  transform: translateX(4px);
}


/* CIERRE */

.ef-knowledge__closing {
  position: relative;
  z-index: 2;
  margin-top: 95px;
  padding-top: 48px;
  border-top: 1px solid rgba(255, 255, 255, 0.075);
}

.ef-knowledge__closing p {
  max-width: 950px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(34px, 5vw, 66px);
  line-height: 1.15;
  color: rgba(255, 255, 255, 0.55);
}

.ef-knowledge__closing p span {
  display: block;
  margin-top: 8px;
  padding-left: 8%;
  color: var(--gold-soft);
  font-style: italic;
}


/* RESPONSIVE */

@media (max-width: 900px) {
  .ef-knowledge {
    padding: 110px 0 120px;
  }

  .ef-knowledge__header {
    grid-template-columns: 1fr;
    gap: 45px;
    margin-bottom: 75px;
  }

  .ef-knowledge::before {
    display: none;
  }
}

@media (max-width: 640px) {
  .ef-knowledge__heading h2 {
    font-size: 66px;
  }

  .ef-knowledge__heading h2 span {
    padding-left: 0;
  }

  .ef-knowledge__grid {
    grid-template-columns: 1fr;
  }

  .ef-knowledge-card--wide {
    grid-column: auto;
  }

  .ef-knowledge-card {
    min-height: 320px;
    padding: 30px 24px;
  }

  .ef-knowledge__closing p span {
    padding-left: 0;
  }
}





/* =========================================================
   MENÚ — ACCESOS DIRECTOS
========================================================= */

.ef-menu__quick {
  margin-top: 38px;
  padding-top: 26px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.ef-menu__quick > p {
  margin: 0 0 18px;
  color: rgba(255, 255, 255, 0.3);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.24em;
}

.ef-menu__quick a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.055);
  color: rgba(255, 255, 255, 0.55);
  font-size: 11px;
  line-height: 1.4;
  transition:
    color 0.25s ease,
    padding-left 0.25s ease;
}

.ef-menu__quick a:hover {
  padding-left: 5px;
  color: var(--gold-soft);
}

.ef-menu__quick b {
  flex: 0 0 auto;
  color: var(--gold-soft);
  font-size: 12px;
  font-weight: 400;
}


/* =========================================================
   INTRO CINEMATOGRÁFICA FALCO®
========================================================= */

.ef-cinematic-intro {
  position: fixed;
  inset: 0;
  z-index: 9999;

  display: grid;
  place-items: center;

  overflow: hidden;

  background: #02060d;

  opacity: 1;
  visibility: visible;

  transition:
    opacity 1.15s ease,
    visibility 1.15s ease;
}

.ef-cinematic-intro.is-ending {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.ef-cinematic-intro__background {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.ef-cinematic-intro__background::before {
  content: "";

  position: absolute;
  inset: 0;

  background:
    radial-gradient(
      circle at 50% 46%,
      rgba(200, 169, 107, 0.09),
      transparent 30%
    ),
    radial-gradient(
      circle at 20% 75%,
      rgba(36, 70, 114, 0.10),
      transparent 26%
    ),
    linear-gradient(
      180deg,
      #02060d 0%,
      #040a12 100%
    );
}

.ef-cinematic-intro__glow {
  position: absolute;

  top: 50%;
  left: 50%;

  width: 850px;
  height: 850px;

  transform: translate(-50%, -50%);

  border-radius: 50%;

  background:
    radial-gradient(
      circle,
      rgba(200, 169, 107, 0.08),
      transparent 64%
    );

  filter: blur(25px);

  animation:
    efCinematicGlow
    5s ease-in-out infinite;
}

@keyframes efCinematicGlow {

  0%,
  100% {
    transform:
      translate(-50%, -50%)
      scale(0.94);

    opacity: 0.55;
  }

  50% {
    transform:
      translate(-50%, -50%)
      scale(1.05);

    opacity: 1;
  }

}


.ef-cinematic-intro__grain {
  position: absolute;
  inset: -25%;

  opacity: 0.035;

  background-image:
    radial-gradient(
      circle at 10% 20%,
      #fff 0 0.7px,
      transparent 0.8px
    ),
    radial-gradient(
      circle at 70% 40%,
      #fff 0 0.7px,
      transparent 0.8px
    ),
    radial-gradient(
      circle at 35% 80%,
      #fff 0 0.7px,
      transparent 0.8px
    );

  background-size:
    11px 11px,
    13px 13px,
    17px 17px;

  animation:
    efCinematicGrain
    9s steps(8) infinite;
}

@keyframes efCinematicGrain {

  0% {
    transform: translate(0, 0);
  }

  25% {
    transform: translate(-2%, 1%);
  }

  50% {
    transform: translate(1%, -2%);
  }

  75% {
    transform: translate(2%, 1%);
  }

  100% {
    transform: translate(0, 0);
  }

}


.ef-cinematic-intro__line {
  position: absolute;

  top: 0;
  left: 50%;

  width: 1px;
  height: 0;

  background:
    linear-gradient(
      to bottom,
      transparent,
      rgba(200, 169, 107, 0.75),
      transparent
    );

  animation:
    efCinematicLine
    1.5s ease forwards;
}

@keyframes efCinematicLine {

  from {
    height: 0;
    opacity: 0;
  }

  to {
    height: 31vh;
    opacity: 0.75;
  }

}


/* ESCENA CENTRAL */

.ef-cinematic-intro__scene {
  position: relative;
  z-index: 4;

  width: min(1100px, calc(100% - 40px));

  display: flex;
  flex-direction: column;
  align-items: center;

  text-align: center;
}


.ef-cinematic-intro__studio {
  margin: 0;

  font-size: 11px;

  text-transform: uppercase;

  letter-spacing: 0.42em;

  color: var(--gold-soft);

  opacity: 0;
  transform: translateY(18px);

  animation:
    efCinemaStudio
    1.15s ease forwards;

  animation-delay: 0.45s;
}

@keyframes efCinemaStudio {

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


.ef-cinematic-intro__brand {
  margin-top: 32px;

  display: inline-flex;
  align-items: flex-start;

  font-family: var(--serif);

  font-size: clamp(84px, 16vw, 220px);

  line-height: 0.78;

  letter-spacing: 0.055em;

  color: rgba(255, 255, 255, 0.96);

  opacity: 0;

  transform:
    scale(0.92)
    translateY(20px);

  filter: blur(8px);

  animation:
    efCinemaBrand
    1.5s
    cubic-bezier(0.22, 1, 0.36, 1)
    forwards;

  animation-delay: 1.35s;
}

.ef-cinematic-intro__brand sup {
  margin-left: 8px;
  margin-top: 5px;

  font-family: var(--sans);

  font-size: 0.10em;

  color: var(--gold-soft);
}

@keyframes efCinemaBrand {

  to {
    opacity: 1;

    transform:
      scale(1)
      translateY(0);

    filter: blur(0);
  }

}


.ef-cinematic-intro__director {
  margin-top: 44px;

  display: flex;
  flex-direction: column;
  gap: 7px;

  opacity: 0;

  transform: translateY(14px);

  animation:
    efCinemaDirector
    1s ease forwards;

  animation-delay: 2.75s;
}

.ef-cinematic-intro__director span {
  font-size: 9px;

  text-transform: uppercase;

  letter-spacing: 0.27em;

  color: rgba(255, 255, 255, 0.38);
}

.ef-cinematic-intro__director strong {
  font-family: var(--serif);

  font-size: 20px;
  font-weight: 400;

  color: var(--gold-soft);
}

@keyframes efCinemaDirector {

  to {
    opacity: 1;
    transform: translateY(0);
  }

}


/* PROGRESS */

.ef-cinematic-intro__progress {
  position: absolute;

  left: 50%;
  bottom: 46px;

  width: min(260px, 60vw);
  height: 1px;

  transform: translateX(-50%);

  background: rgba(255, 255, 255, 0.07);

  overflow: hidden;
}

.ef-cinematic-intro__progress span {
  display: block;

  width: 0;
  height: 100%;

  background:
    linear-gradient(
      90deg,
      rgba(200, 169, 107, 0.1),
      var(--gold-soft)
    );

  animation:
    efCinemaProgress
    4.7s linear forwards;
}

@keyframes efCinemaProgress {

  to {
    width: 100%;
  }

}


/* =========================================================
   HERO DESPUÉS DE LA INTRO
========================================================= */

body.ef-cinema-running {
  overflow: hidden;
}

body.ef-cinema-running .ef-header {
  opacity: 0;
  pointer-events: none;
}

body.ef-cinema-complete .ef-header {
  opacity: 1;
  pointer-events: auto;
}

.ef-header {
  transition:
    opacity 0.9s ease,
    background 0.35s ease,
    border-color 0.35s ease,
    backdrop-filter 0.35s ease;
}


/* =========================================================
   RESPONSIVE CINEMA
========================================================= */

@media (max-width: 640px) {

  .ef-cinematic-intro__studio {
    max-width: 270px;

    font-size: 9px;

    line-height: 1.7;

    letter-spacing: 0.28em;
  }

  .ef-cinematic-intro__brand {
    margin-top: 28px;

    font-size: clamp(70px, 25vw, 110px);
  }

  .ef-cinematic-intro__director {
    margin-top: 36px;
  }

  .ef-cinematic-intro__progress {
    bottom: 32px;
  }

}

@media (prefers-reduced-motion: reduce) {

  .ef-cinematic-intro {
    display: none;
  }

  body.ef-cinema-running {
    overflow: auto;
  }

}


/* =========================================================
   TRANSICIÓN CINEMATOGRÁFICA
   HERO → EL ESTUDIO
========================================================= */

.ef-hero {
  transition:
    opacity 1s cubic-bezier(0.22, 1, 0.36, 1),
    filter 1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.ef-hero.is-cinema-leaving {
  opacity: 0.18;
  filter: blur(7px);
  transform: scale(1.025);
}


/* transición superpuesta */

.ef-scene-transition {
  position: fixed;
  inset: 0;
  z-index: 9000;

  pointer-events: none;

  display: grid;
  place-items: center;

  background: rgba(2, 6, 13, 0);

  opacity: 0;
  visibility: hidden;
}

.ef-scene-transition.is-active {
  opacity: 1;
  visibility: visible;
}

.ef-scene-transition__line {
  width: 1px;
  height: 0;

  background:
    linear-gradient(
      to bottom,
      transparent,
      rgba(200, 169, 107, 0.85),
      transparent
    );

  box-shadow:
    0 0 30px rgba(200, 169, 107, 0.12);
}

.ef-scene-transition.is-active
.ef-scene-transition__line {
  animation:
    efSceneTransitionLine
    1.2s
    cubic-bezier(0.22, 1, 0.36, 1)
    forwards;
}

@keyframes efSceneTransitionLine {

  0% {
    height: 0;
    opacity: 0;
  }

  35% {
    opacity: 1;
  }

  100% {
    height: 76vh;
    opacity: 0;
  }

}


/* =========================================================
   ENTRADA DEL NUEVO PLANO
========================================================= */

.ef-cinema-section {
  position: relative;
}

.ef-cinema-section::before {
  content: "";

  position: absolute;
  inset: 0;

  z-index: 4;

  pointer-events: none;

  background:
    linear-gradient(
      180deg,
      #02060d 0%,
      rgba(2, 6, 13, 0.92) 28%,
      rgba(2, 6, 13, 0) 72%
    );

  opacity: 0;
}

.ef-cinema-section.is-cinema-arriving::before {
  animation:
    efCinemaCurtain
    1.5s ease forwards;
}

@keyframes efCinemaCurtain {

  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }

}


/* contenido de EL ESTUDIO */

.ef-intro__heading,
.ef-intro__lead,
.ef-intro__statement,
.ef-intro__closing,
.ef-intro__links {
  transition:
    opacity 1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1s cubic-bezier(0.22, 1, 0.36, 1),
    filter 1s ease;
}

.ef-intro.is-cinema-preparing
.ef-intro__heading,

.ef-intro.is-cinema-preparing
.ef-intro__lead,

.ef-intro.is-cinema-preparing
.ef-intro__statement,

.ef-intro.is-cinema-preparing
.ef-intro__closing,

.ef-intro.is-cinema-preparing
.ef-intro__links {
  opacity: 0;
  transform: translateY(45px);
  filter: blur(4px);
}

.ef-intro.is-cinema-arriving
.ef-intro__heading,

.ef-intro.is-cinema-arriving
.ef-intro__lead,

.ef-intro.is-cinema-arriving
.ef-intro__statement,

.ef-intro.is-cinema-arriving
.ef-intro__closing,

.ef-intro.is-cinema-arriving
.ef-intro__links {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}


/* tiempos diferentes */

.ef-intro.is-cinema-arriving
.ef-intro__heading {
  transition-delay: 0.1s;
}

.ef-intro.is-cinema-arriving
.ef-intro__lead {
  transition-delay: 0.24s;
}

.ef-intro.is-cinema-arriving
.ef-intro__statement {
  transition-delay: 0.4s;
}

.ef-intro.is-cinema-arriving
.ef-intro__closing {
  transition-delay: 0.58s;
}

.ef-intro.is-cinema-arriving
.ef-intro__links {
  transition-delay: 0.72s;
}


@media (prefers-reduced-motion: reduce) {

  .ef-hero.is-cinema-leaving {
    opacity: 1;
    filter: none;
    transform: none;
  }

  .ef-scene-transition {
    display: none;
  }

}


/* =========================================================
   DIRECCIÓN — TRATAMIENTO CINEMATOGRÁFICO
========================================================= */

.ef-direction-cinema {
  perspective: 1400px;
}

.ef-direction-cinema .ef-direction__portrait {
  opacity: 0;
  transform:
    translateX(-55px)
    scale(0.94);
  filter: blur(7px);

  transition:
    opacity 1.1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.1s cubic-bezier(0.22, 1, 0.36, 1),
    filter 1.1s ease;
}

.ef-direction-cinema .ef-direction__role,
.ef-direction-cinema .ef-direction__content h3,
.ef-direction-cinema .ef-direction__professional,
.ef-direction-cinema .ef-direction__lead,
.ef-direction-cinema .ef-direction__text,
.ef-direction-cinema .ef-direction__principles,
.ef-direction-cinema .ef-direction__link {
  opacity: 0;
  transform: translateY(34px);
  filter: blur(5px);

  transition:
    opacity 0.95s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.95s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.95s ease;
}

.ef-direction-cinema.is-cinema-visible
.ef-direction__portrait {
  opacity: 1;
  transform:
    translateX(0)
    scale(1);
  filter: blur(0);
}

.ef-direction-cinema.is-cinema-visible
.ef-direction__role,
.ef-direction-cinema.is-cinema-visible
.ef-direction__content h3,
.ef-direction-cinema.is-cinema-visible
.ef-direction__professional,
.ef-direction-cinema.is-cinema-visible
.ef-direction__lead,
.ef-direction-cinema.is-cinema-visible
.ef-direction__text,
.ef-direction-cinema.is-cinema-visible
.ef-direction__principles,
.ef-direction-cinema.is-cinema-visible
.ef-direction__link {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}


/* tiempos */

.ef-direction-cinema.is-cinema-visible
.ef-direction__role {
  transition-delay: 0.12s;
}

.ef-direction-cinema.is-cinema-visible
.ef-direction__content h3 {
  transition-delay: 0.24s;
}

.ef-direction-cinema.is-cinema-visible
.ef-direction__professional {
  transition-delay: 0.34s;
}

.ef-direction-cinema.is-cinema-visible
.ef-direction__lead {
  transition-delay: 0.48s;
}

.ef-direction-cinema.is-cinema-visible
.ef-direction__text {
  transition-delay: 0.62s;
}

.ef-direction-cinema.is-cinema-visible
.ef-direction__principles {
  transition-delay: 0.78s;
}

.ef-direction-cinema.is-cinema-visible
.ef-direction__link {
  transition-delay: 0.92s;
}


/* detalle del retrato */

.ef-direction-cinema .ef-direction__portrait-frame {
  transition:
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.4s ease,
    box-shadow 0.4s ease;
}

.ef-direction-cinema.is-cinema-visible
.ef-direction__portrait-frame {
  transform: translateZ(0);
}

.ef-direction-cinema
.ef-direction__portrait:hover
.ef-direction__portrait-frame {
  transform:
    translateZ(35px)
    scale(1.025);

  border-color: rgba(200, 169, 107, 0.32);

  box-shadow:
    0 35px 90px rgba(0, 0, 0, 0.38),
    0 0 50px rgba(200, 169, 107, 0.05);
}


/* círculo de fondo en movimiento muy suave */

.ef-direction-cinema .ef-direction__portrait::before {
  animation:
    efDirectionOrbit
    12s linear infinite;
}

.ef-direction-cinema .ef-direction__portrait::after {
  animation:
    efDirectionOrbitReverse
    16s linear infinite;
}

@keyframes efDirectionOrbit {

  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }

}

@keyframes efDirectionOrbitReverse {

  from {
    transform: rotate(360deg);
  }

  to {
    transform: rotate(0deg);
  }

}


@media (prefers-reduced-motion: reduce) {

  .ef-direction-cinema .ef-direction__portrait,
  .ef-direction-cinema .ef-direction__role,
  .ef-direction-cinema .ef-direction__content h3,
  .ef-direction-cinema .ef-direction__professional,
  .ef-direction-cinema .ef-direction__lead,
  .ef-direction-cinema .ef-direction__text,
  .ef-direction-cinema .ef-direction__principles,
  .ef-direction-cinema .ef-direction__link {
    opacity: 1;
    transform: none;
    filter: none;
  }

  .ef-direction-cinema .ef-direction__portrait::before,
  .ef-direction-cinema .ef-direction__portrait::after {
    animation: none;
  }

}


/* =========================================================
   MÉTODO FALCO® — TRATAMIENTO CINEMATOGRÁFICO
========================================================= */

.ef-method-cinema .ef-method-step {
  opacity: 0.28;
  transform: translateY(28px) scale(0.985);
  filter: blur(2px);

  transition:
    opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.8s ease,
    background 0.5s ease;
}

.ef-method-cinema .ef-method-step.is-method-active {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

.ef-method-cinema .ef-method-step.is-method-past {
  opacity: 0.6;
  filter: blur(0);
}


/* nodo */

.ef-method-cinema
.ef-method-step__line::before {
  transition:
    background 0.5s ease,
    box-shadow 0.5s ease,
    transform 0.5s ease;
}

.ef-method-cinema
.ef-method-step.is-method-active
.ef-method-step__line::before {
  background: var(--gold-soft);

  transform:
    translateX(-50%)
    scale(1.25);

  box-shadow:
    0 0 0 9px rgba(200, 169, 107, 0.06),
    0 0 30px rgba(200, 169, 107, 0.2);
}


/* línea progresiva */

.ef-method-cinema
.ef-method-step__line {
  overflow: hidden;
}

.ef-method-cinema
.ef-method-step__line::after {
  content: "";

  position: absolute;
  top: 0;
  left: 0;

  width: 100%;
  height: 0;

  background:
    linear-gradient(
      to bottom,
      var(--gold-soft),
      rgba(200, 169, 107, 0.15)
    );

  transition:
    height 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.ef-method-cinema
.ef-method-step.is-method-active
.ef-method-step__line::after,

.ef-method-cinema
.ef-method-step.is-method-past
.ef-method-step__line::after {
  height: 100%;
}


/* título activo */

.ef-method-cinema
.ef-method-step__content h3 {
  transition:
    color 0.5s ease,
    transform 0.5s ease;
}

.ef-method-cinema
.ef-method-step.is-method-active
.ef-method-step__content h3 {
  color: var(--gold-soft);
  transform: translateX(10px);
}


/* texto activo */

.ef-method-cinema
.ef-method-step__content p {
  transition:
    color 0.5s ease,
    transform 0.5s ease;
}

.ef-method-cinema
.ef-method-step.is-method-active
.ef-method-step__content p {
  color: rgba(255, 255, 255, 0.72);
  transform: translateX(10px);
}


/* gran palabra de fondo */

.ef-method-cinema::after {
  content: "FALCO";

  position: absolute;
  right: -2%;
  top: 47%;

  font-family: var(--serif);
  font-size: clamp(150px, 22vw, 350px);

  line-height: 1;

  color: rgba(255, 255, 255, 0.012);

  pointer-events: none;
  user-select: none;

  transform:
    translateY(-50%)
    rotate(-90deg);
}


/* cierre */

.ef-method-cinema
.ef-method__statement {
  opacity: 0;
  transform: translateY(45px);

  transition:
    opacity 1.1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}

.ef-method-cinema
.ef-method__statement.is-method-visible {
  opacity: 1;
  transform: translateY(0);
}


@media (max-width: 900px) {

  .ef-method-cinema::after {
    display: none;
  }

}

@media (prefers-reduced-motion: reduce) {

  .ef-method-cinema .ef-method-step {
    opacity: 1;
    transform: none;
    filter: none;
  }

  .ef-method-cinema
  .ef-method__statement {
    opacity: 1;
    transform: none;
  }

}


/* =========================================================
   UNIVERSO FALCO® — TRATAMIENTO CINEMATOGRÁFICO
========================================================= */

.ef-universe-cinema {
  perspective: 1600px;
}

.ef-universe-cinema .ef-universe__stage {
  transform-style: preserve-3d;
}


/* núcleo */

.ef-universe-cinema .ef-universe__center {
  opacity: 0;
  transform:
    translate(-50%, -50%)
    scale(0.82);

  filter: blur(9px);

  transition:
    opacity 1.15s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.15s cubic-bezier(0.22, 1, 0.36, 1),
    filter 1.15s ease;
}

.ef-universe-cinema.is-universe-visible
.ef-universe__center {
  opacity: 1;

  transform:
    translate(-50%, -50%)
    scale(1);

  filter: blur(0);
}


/* órbitas */

.ef-universe-cinema .ef-universe__orbit {
  opacity: 0;
  transform:
    translate(-50%, -50%)
    scale(0.72);

  transition:
    opacity 1.2s ease,
    transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.ef-universe-cinema.is-universe-visible
.ef-universe__orbit {
  opacity: 1;

  transform:
    translate(-50%, -50%)
    scale(1);
}

.ef-universe-cinema.is-universe-visible
.ef-universe__orbit--one {
  transition-delay: 0.12s;
}

.ef-universe-cinema.is-universe-visible
.ef-universe__orbit--two {
  transition-delay: 0.24s;
}

.ef-universe-cinema.is-universe-visible
.ef-universe__orbit--three {
  transition-delay: 0.36s;
}


/* nodos */

.ef-universe-cinema .ef-universe-node {
  opacity: 0;
  filter: blur(5px);

  transition:
    opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.8s ease,
    border-color 0.35s ease,
    background 0.35s ease,
    box-shadow 0.35s ease;
}


/* posiciones iniciales */

.ef-universe-cinema
.ef-universe-node--one {
  transform:
    translateX(-50%)
    translateY(25px)
    scale(0.94);
}

.ef-universe-cinema
.ef-universe-node--two,
.ef-universe-cinema
.ef-universe-node--three,
.ef-universe-cinema
.ef-universe-node--four {
  transform:
    translateX(22px)
    scale(0.94);
}

.ef-universe-cinema
.ef-universe-node--five,
.ef-universe-cinema
.ef-universe-node--six,
.ef-universe-cinema
.ef-universe-node--seven {
  transform:
    translateX(-22px)
    scale(0.94);
}

.ef-universe-cinema
.ef-universe-node--eight {
  transform:
    translateX(-50%)
    translateY(-25px)
    scale(0.94);
}


/* visibles */

.ef-universe-cinema.is-universe-visible
.ef-universe-node {
  opacity: 1;
  filter: blur(0);
}

.ef-universe-cinema.is-universe-visible
.ef-universe-node--one {
  transform:
    translateX(-50%)
    translateY(0)
    scale(1);
}

.ef-universe-cinema.is-universe-visible
.ef-universe-node--two,
.ef-universe-cinema.is-universe-visible
.ef-universe-node--three,
.ef-universe-cinema.is-universe-visible
.ef-universe-node--four,
.ef-universe-cinema.is-universe-visible
.ef-universe-node--five,
.ef-universe-cinema.is-universe-visible
.ef-universe-node--six,
.ef-universe-cinema.is-universe-visible
.ef-universe-node--seven {
  transform:
    translateX(0)
    scale(1);
}

.ef-universe-cinema.is-universe-visible
.ef-universe-node--eight {
  transform:
    translateX(-50%)
    translateY(0)
    scale(1);
}


/* tiempos */

.ef-universe-cinema.is-universe-visible
.ef-universe-node--one {
  transition-delay: 0.35s;
}

.ef-universe-cinema.is-universe-visible
.ef-universe-node--two {
  transition-delay: 0.46s;
}

.ef-universe-cinema.is-universe-visible
.ef-universe-node--three {
  transition-delay: 0.57s;
}

.ef-universe-cinema.is-universe-visible
.ef-universe-node--four {
  transition-delay: 0.68s;
}

.ef-universe-cinema.is-universe-visible
.ef-universe-node--five {
  transition-delay: 0.79s;
}

.ef-universe-cinema.is-universe-visible
.ef-universe-node--six {
  transition-delay: 0.90s;
}

.ef-universe-cinema.is-universe-visible
.ef-universe-node--seven {
  transition-delay: 1.01s;
}

.ef-universe-cinema.is-universe-visible
.ef-universe-node--eight {
  transition-delay: 1.12s;
}


/* respiración del núcleo */

.ef-universe-cinema.is-universe-visible
.ef-universe__center {
  animation:
    efUniverseCinemaBreath
    5.5s ease-in-out infinite;
}

@keyframes efUniverseCinemaBreath {

  0%,
  100% {
    box-shadow:
      0 0 60px rgba(200, 169, 107, 0.04),
      0 35px 80px rgba(0, 0, 0, 0.28);
  }

  50% {
    box-shadow:
      0 0 110px rgba(200, 169, 107, 0.12),
      0 35px 80px rgba(0, 0, 0, 0.28);
  }

}


/* profundidad al pasar el mouse */

.ef-universe-cinema
.ef-universe-node:hover {
  transform:
    translateZ(28px)
    translateY(-5px)
    scale(1.025);
}


/* línea de luz central */

.ef-universe-cinema::after {
  content: "";

  position: absolute;

  left: 50%;
  top: 27%;

  width: 1px;
  height: 0;

  background:
    linear-gradient(
      to bottom,
      transparent,
      rgba(200, 169, 107, 0.35),
      transparent
    );

  opacity: 0;

  transition:
    height 1.8s ease,
    opacity 1s ease;
}

.ef-universe-cinema.is-universe-visible::after {
  height: 48%;
  opacity: 0.55;
}


/* responsive */

@media (max-width: 900px) {

  .ef-universe-cinema::after {
    display: none;
  }

}

@media (prefers-reduced-motion: reduce) {

  .ef-universe-cinema .ef-universe__center,
  .ef-universe-cinema .ef-universe__orbit,
  .ef-universe-cinema .ef-universe-node {
    opacity: 1;
    transform: none;
    filter: none;
  }

  .ef-universe-cinema
  .ef-universe__center {
    animation: none;
  }

}


/* =========================================================
   CIERRE FINAL — TRATAMIENTO CINEMATOGRÁFICO
========================================================= */

.ef-finale-cinema {
  perspective: 1600px;
}


/* secuencia superior */

.ef-finale-cinema .ef-finale__sequence {
  opacity: 0;
  transform: translateY(28px);
  filter: blur(5px);

  transition:
    opacity 1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1s cubic-bezier(0.22, 1, 0.36, 1),
    filter 1s ease;
}


/* presentación institucional */

.ef-finale-cinema .ef-finale__eyebrow,
.ef-finale-cinema .ef-finale__institution {
  opacity: 0;
  transform: translateY(24px);
  filter: blur(4px);

  transition:
    opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.9s ease;
}


/* FALCO */

.ef-finale-cinema .ef-finale__content h2 {
  opacity: 0;

  transform:
    translateY(35px)
    scale(0.92);

  filter: blur(10px);

  transition:
    opacity 1.25s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.25s cubic-bezier(0.22, 1, 0.36, 1),
    filter 1.25s ease;
}


/* dirección */

.ef-finale-cinema .ef-finale__direction {
  opacity: 0;
  transform: translateY(24px);
  filter: blur(4px);

  transition:
    opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.9s ease;
}


/* botones */

.ef-finale-cinema .ef-finale__actions {
  opacity: 0;
  transform: translateY(24px);

  transition:
    opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}


/* footer */

.ef-finale-cinema .ef-footer {
  opacity: 0;
  transform: translateY(20px);

  transition:
    opacity 1s ease,
    transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}


/* =========================================================
   ESTADO VISIBLE
========================================================= */

.ef-finale-cinema.is-finale-visible
.ef-finale__sequence,

.ef-finale-cinema.is-finale-visible
.ef-finale__eyebrow,

.ef-finale-cinema.is-finale-visible
.ef-finale__institution,

.ef-finale-cinema.is-finale-visible
.ef-finale__content h2,

.ef-finale-cinema.is-finale-visible
.ef-finale__direction,

.ef-finale-cinema.is-finale-visible
.ef-finale__actions,

.ef-finale-cinema.is-finale-visible
.ef-footer {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}


/* tiempos */

.ef-finale-cinema.is-finale-visible
.ef-finale__sequence {
  transition-delay: 0.05s;
}

.ef-finale-cinema.is-finale-visible
.ef-finale__eyebrow {
  transition-delay: 0.22s;
}

.ef-finale-cinema.is-finale-visible
.ef-finale__institution {
  transition-delay: 0.36s;
}

.ef-finale-cinema.is-finale-visible
.ef-finale__content h2 {
  transition-delay: 0.48s;
}

.ef-finale-cinema.is-finale-visible
.ef-finale__direction {
  transition-delay: 0.72s;
}

.ef-finale-cinema.is-finale-visible
.ef-finale__actions {
  transition-delay: 0.9s;
}

.ef-finale-cinema.is-finale-visible
.ef-footer {
  transition-delay: 1.15s;
}


/* =========================================================
   LUZ FINAL
========================================================= */

.ef-finale-cinema .ef-finale__glow {
  opacity: 0.35;
  transform:
    translate(-50%, -50%)
    scale(0.82);

  transition:
    opacity 2s ease,
    transform 2s cubic-bezier(0.22, 1, 0.36, 1);
}

.ef-finale-cinema.is-finale-visible
.ef-finale__glow {
  opacity: 1;

  transform:
    translate(-50%, -50%)
    scale(1.08);
}


/* línea central */

.ef-finale-cinema .ef-finale__line {
  height: 0;
  opacity: 0;

  transition:
    height 1.5s ease,
    opacity 1s ease;
}

.ef-finale-cinema.is-finale-visible
.ef-finale__line {
  height: 180px;
  opacity: 1;
}


/* =========================================================
   FALCO — RESPIRACIÓN FINAL
========================================================= */

.ef-finale-cinema.is-finale-visible
.ef-finale__content h2 {
  animation:
    efFinaleBreath
    6s ease-in-out infinite;
}

@keyframes efFinaleBreath {

  0%,
  100% {
    text-shadow:
      0 0 0 rgba(200, 169, 107, 0);
  }

  50% {
    text-shadow:
      0 0 42px rgba(200, 169, 107, 0.08);
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .ef-finale-cinema .ef-finale__sequence,
  .ef-finale-cinema .ef-finale__eyebrow,
  .ef-finale-cinema .ef-finale__institution,
  .ef-finale-cinema .ef-finale__content h2,
  .ef-finale-cinema .ef-finale__direction,
  .ef-finale-cinema .ef-finale__actions,
  .ef-finale-cinema .ef-footer {
    opacity: 1;
    transform: none;
    filter: none;
  }

  .ef-finale-cinema
  .ef-finale__content h2 {
    animation: none;
  }

}


/* =========================================================
   MENÚ — ENTRADA CINEMATOGRÁFICA
========================================================= */

.ef-menu__eyebrow,
.ef-menu__nav a,
.ef-menu__quick {
  opacity: 0;
  transform: translateY(18px);

  transition:
    opacity 0.5s ease,
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.ef-menu.is-open .ef-menu__eyebrow {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.08s;
}

.ef-menu.is-open .ef-menu__nav a {
  opacity: 1;
  transform: translateY(0);
}

.ef-menu.is-open .ef-menu__nav a:nth-child(1) {
  transition-delay: 0.10s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(2) {
  transition-delay: 0.14s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(3) {
  transition-delay: 0.18s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(4) {
  transition-delay: 0.22s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(5) {
  transition-delay: 0.26s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(6) {
  transition-delay: 0.30s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(7) {
  transition-delay: 0.34s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(8) {
  transition-delay: 0.38s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(9) {
  transition-delay: 0.42s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(10) {
  transition-delay: 0.46s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(11) {
  transition-delay: 0.50s;
}

.ef-menu.is-open .ef-menu__nav a:nth-child(12) {
  transition-delay: 0.54s;
}

.ef-menu.is-open .ef-menu__quick {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.62s;
}

body.is-menu-open {
  overflow: hidden;
}


/* =========================================================
   ÁREAS — SECUENCIA CONTROLADA POR SCROLL
========================================================= */

.ef-areas-cinema .ef-area {
  opacity: 0.22;
  transform: translateY(35px);
  filter: blur(3px);

  transition:
    opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.8s ease,
    background 0.4s ease;
}

.ef-areas-cinema .ef-area.is-area-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.ef-areas-cinema .ef-area.is-area-past {
  opacity: 0.58;
  transform: translateY(0);
  filter: blur(0);
}


/* número */

.ef-areas-cinema .ef-area__number {
  transition:
    color 0.4s ease,
    transform 0.4s ease;
}

.ef-areas-cinema
.ef-area.is-area-visible
.ef-area__number {
  color: var(--gold-soft);
  transform: translateX(5px);
}


/* título */

.ef-areas-cinema .ef-area h3 {
  transition:
    color 0.45s ease,
    transform 0.45s ease;
}

.ef-areas-cinema
.ef-area.is-area-visible h3 {
  color: var(--gold-soft);
  transform: translateX(8px);
}


/* texto */

.ef-areas-cinema .ef-area p {
  transition:
    color 0.45s ease,
    transform 0.45s ease;
}

.ef-areas-cinema
.ef-area.is-area-visible p {
  color: rgba(255, 255, 255, 0.72);
  transform: translateX(8px);
}


/* pequeña luz lateral */

.ef-areas-cinema .ef-area {
  position: relative;
}

.ef-areas-cinema .ef-area::before {
  content: "";

  position: absolute;
  left: 0;
  top: 18%;

  width: 1px;
  height: 0;

  background:
    linear-gradient(
      to bottom,
      transparent,
      var(--gold-soft),
      transparent
    );

  opacity: 0;

  transition:
    height 0.7s ease,
    opacity 0.5s ease;
}

.ef-areas-cinema
.ef-area.is-area-visible::before {
  height: 64%;
  opacity: 0.65;
}


@media (prefers-reduced-motion: reduce) {

  .ef-areas-cinema .ef-area {
    opacity: 1;
    transform: none;
    filter: none;
  }

}


/* =========================================================
   EQUIPO INTERDISCIPLINARIO — SCROLL CINEMATOGRÁFICO
========================================================= */

.ef-team-cinema .ef-team__center {
  opacity: 0;
  transform: translateY(30px) scale(0.95);
  filter: blur(5px);

  transition:
    opacity 1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1s cubic-bezier(0.22, 1, 0.36, 1),
    filter 1s ease;
}

.ef-team-cinema.is-team-started
.ef-team__center {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}


/* disciplinas */

.ef-team-cinema .ef-discipline {
  opacity: 0.22;
  transform: translateY(32px);
  filter: blur(3px);

  transition:
    opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.75s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.75s ease,
    background 0.4s ease;
}

.ef-team-cinema .ef-discipline.is-discipline-active {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  background: rgba(200, 169, 107, 0.05);
}

.ef-team-cinema .ef-discipline.is-discipline-past {
  opacity: 0.58;
  transform: translateY(0);
  filter: blur(0);
}


/* título activo */

.ef-team-cinema
.ef-discipline.is-discipline-active h3 {
  color: var(--gold-soft);
}


/* número activo */

.ef-team-cinema
.ef-discipline.is-discipline-active
.ef-discipline__number {
  color: var(--gold-soft);
}


/* conexión visual con Dirección */

.ef-team-cinema .ef-team__center::after {
  opacity: 0;
  transform: scaleY(0);
  transform-origin: top;

  transition:
    opacity 0.7s ease,
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.ef-team-cinema.is-team-started
.ef-team__center::after {
  opacity: 1;
  transform: scaleY(1);
}


/* cierre */

.ef-team-cinema .ef-team__note {
  opacity: 0;
  transform: translateY(30px);

  transition:
    opacity 0.9s ease,
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.ef-team-cinema
.ef-team__note.is-team-note-visible {
  opacity: 1;
  transform: translateY(0);
}


@media (prefers-reduced-motion: reduce) {

  .ef-team-cinema .ef-team__center,
  .ef-team-cinema .ef-discipline,
  .ef-team-cinema .ef-team__note {
    opacity: 1;
    transform: none;
    filter: none;
  }

}


/* =========================================================
   PRINCIPIOS — SCROLL CINEMATOGRÁFICO
========================================================= */

.ef-principles-cinema .ef-principle {
  opacity: 0.2;
  transform: translateY(30px) scale(0.985);
  filter: blur(3px);

  transition:
    opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.75s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.75s ease,
    background 0.4s ease;
}

.ef-principles-cinema .ef-principle.is-principle-active {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
  background: rgba(200, 169, 107, 0.045);
}

.ef-principles-cinema .ef-principle.is-principle-past {
  opacity: 0.55;
  transform: translateY(0);
  filter: blur(0);
}

.ef-principles-cinema
.ef-principle.is-principle-active h3 {
  color: var(--gold-soft);
}

.ef-principles-cinema
.ef-principle.is-principle-active
.ef-principle__mark {
  color: rgba(200, 169, 107, 0.06);
  transform: translateY(-8px) scale(1.03);
}

.ef-principles-cinema .ef-principles__statement,
.ef-principles-cinema .ef-principles__closing {
  opacity: 0;
  transform: translateY(35px);
  filter: blur(4px);

  transition:
    opacity 0.9s ease,
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.9s ease;
}

.ef-principles-cinema
.ef-principles__statement.is-principles-visible,
.ef-principles-cinema
.ef-principles__closing.is-principles-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

@media (prefers-reduced-motion: reduce) {
  .ef-principles-cinema .ef-principle,
  .ef-principles-cinema .ef-principles__statement,
  .ef-principles-cinema .ef-principles__closing {
    opacity: 1;
    transform: none;
    filter: none;
  }
}


/* =========================================================
   FOOTER INSTITUCIONAL FALCO®
========================================================= */

.ef-footer--institutional {
  position: relative;
  overflow: hidden;

  margin-top: 100px;
  padding: 90px 6vw 0;

  background:
    radial-gradient(
      circle at 18% 20%,
      rgba(200, 169, 107, 0.07),
      transparent 28%
    ),
    linear-gradient(
      180deg,
      rgba(5, 11, 21, 0.98),
      #02060d
    );

  border-top:
    1px solid rgba(200, 169, 107, 0.18);
}


/* PALABRA GIGANTE DE FONDO */

.ef-footer__watermark {
  position: absolute;

  right: -2%;
  bottom: -4%;

  font-family: var(--serif);

  font-size:
    clamp(170px, 27vw, 430px);

  font-weight: 600;
  line-height: 0.75;

  letter-spacing: -0.07em;

  color:
    rgba(255, 255, 255, 0.018);

  pointer-events: none;
  user-select: none;
}


/* CONTENEDOR */

.ef-footer__shell {
  position: relative;
  z-index: 2;

  width:
    min(1380px, 100%);

  margin:
    0 auto;

  display: grid;

  grid-template-columns:
    1.5fr 1fr 1.2fr 1fr;

  gap:
    clamp(40px, 6vw, 90px);
}


/* IDENTIDAD */

.ef-footer__brand {
  padding-right: 30px;
}

.ef-footer__eyebrow {
  display: block;

  margin-bottom: 18px;

  font-size: 0.68rem;
  font-weight: 600;

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

  color:
    rgba(200, 169, 107, 0.78);
}

.ef-footer__logo {
  font-family: var(--serif);

  font-size:
    clamp(52px, 5vw, 82px);

  line-height: 0.9;

  letter-spacing: -0.045em;

  color:
    rgba(255, 255, 255, 0.96);
}

.ef-footer__logo sup {
  margin-left: 5px;

  font-family: var(--sans);
  font-size: 0.22em;

  vertical-align: top;

  color: var(--gold-soft);
}

.ef-footer__tagline {
  max-width: 330px;

  margin:
    25px 0 35px;

  font-family: var(--serif);
  font-size: 1.15rem;
  line-height: 1.55;

  color:
    rgba(255, 255, 255, 0.65);
}


/* DIRECCIÓN */

.ef-footer__director {
  display: flex;
  flex-direction: column;
  gap: 5px;

  margin: 0;

  font-size: 0.72rem;

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

  color:
    rgba(255, 255, 255, 0.38);
}

.ef-footer__director strong {
  margin-top: 5px;

  font-family: var(--serif);
  font-size: 1.08rem;
  font-weight: 500;

  letter-spacing: 0;

  text-transform: none;

  color:
    rgba(255, 255, 255, 0.9);
}

.ef-footer__director span {
  letter-spacing: 0;
  text-transform: none;

  color:
    rgba(255, 255, 255, 0.5);
}


/* COLUMNAS */

.ef-footer__column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  gap: 14px;
}

.ef-footer__title {
  margin:
    0 0 15px;

  font-size: 0.68rem;
  font-weight: 600;

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

  color: var(--gold-soft);
}

.ef-footer__column nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  gap: 12px;
}

.ef-footer__column a {
  display: flex;
  flex-direction: column;
  gap: 4px;

  text-decoration: none;

  font-size: 0.86rem;

  color:
    rgba(255, 255, 255, 0.62);

  transition:
    color 0.3s ease,
    transform 0.3s ease;
}

.ef-footer__column a:hover {
  color:
    rgba(255, 255, 255, 0.96);

  transform:
    translateX(4px);
}

.ef-footer__column a span {
  font-size: 0.73rem;

  color:
    rgba(255, 255, 255, 0.35);
}


/* ATENCIÓN */

.ef-footer__attention {
  display: flex;
  flex-direction: column;

  gap: 5px;

  margin-top: 15px;
}

.ef-footer__attention p {
  margin:
    0 0 4px;

  font-size: 0.68rem;

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

  color:
    rgba(200, 169, 107, 0.65);
}

.ef-footer__attention span {
  font-size: 0.76rem;

  color:
    rgba(255, 255, 255, 0.4);
}


/* REDES */

.ef-footer__social {
  display: flex;
  flex-wrap: wrap;

  gap: 8px 14px;

  margin-top: 18px;
}

.ef-footer__social a {
  font-size: 0.72rem;

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

  color:
    rgba(255, 255, 255, 0.45);
}


/* =========================================================
   FRASE INSTITUCIONAL
========================================================= */

.ef-footer__statement {
  position: relative;
  z-index: 2;

  width:
    min(1380px, 100%);

  margin:
    80px auto 0;

  display: grid;

  grid-template-columns:
    1fr auto 1fr;

  align-items: center;

  gap: 30px;
}

.ef-footer__statement > span {
  height: 1px;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(200, 169, 107, 0.25)
    );
}

.ef-footer__statement > span:last-child {
  background:
    linear-gradient(
      90deg,
      rgba(200, 169, 107, 0.25),
      transparent
    );
}

.ef-footer__statement p {
  margin: 0;

  text-align: center;

  font-family: var(--serif);

  font-size:
    clamp(18px, 2vw, 26px);

  font-weight: 400;

  color:
    rgba(255, 255, 255, 0.62);
}

.ef-footer__statement strong {
  font-weight: 500;

  color:
    rgba(200, 169, 107, 0.9);
}


/* =========================================================
   FRANJA INFERIOR
========================================================= */

.ef-footer__bottom {
  position: relative;
  z-index: 2;

  width:
    min(1380px, 100%);

  margin:
    55px auto 0;

  padding:
    24px 0 28px;

  display: flex;

  justify-content:
    space-between;

  align-items: center;

  gap: 30px;

  border-top:
    1px solid rgba(255, 255, 255, 0.07);
}

.ef-footer__bottom p {
  margin: 0;

  font-size: 0.68rem;

  letter-spacing: 0.05em;

  color:
    rgba(255, 255, 255, 0.32);
}

.ef-footer__bottom a {
  display: inline-flex;

  align-items: center;

  gap: 8px;

  text-decoration: none;

  font-size: 0.7rem;

  letter-spacing: 0.06em;

  color:
    rgba(200, 169, 107, 0.68);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1050px) {

  .ef-footer__shell {
    grid-template-columns:
      1.4fr 1fr;
  }

}


@media (max-width: 680px) {

  .ef-footer--institutional {
    margin-top: 70px;

    padding:
      70px 24px 0;
  }

  .ef-footer__shell {
    grid-template-columns:
      1fr;

    gap: 45px;
  }

  .ef-footer__brand {
    padding-right: 0;
  }

  .ef-footer__statement {
    margin-top: 60px;

    grid-template-columns:
      1fr;

    gap: 18px;
  }

  .ef-footer__statement > span {
    width: 100%;
  }

  .ef-footer__bottom {
    flex-direction: column;

    align-items: flex-start;

    margin-top: 40px;
  }

  .ef-footer__watermark {
    font-size: 45vw;
  }

}


/* =========================================================
   FOOTER INSTITUCIONAL — CORRECCIÓN FINAL
========================================================= */

/* anula completamente la estructura del footer anterior */

.ef-footer.ef-footer--institutional {
  display: block;

  width: 100vw;
  max-width: none;

  margin-top: 110px;
  margin-left: calc(50% - 50vw);

  padding: 95px max(40px, 6vw) 0;

  border-top: 1px solid rgba(200, 169, 107, 0.18);

  background:
    radial-gradient(
      circle at 12% 18%,
      rgba(200, 169, 107, 0.08),
      transparent 30%
    ),
    radial-gradient(
      circle at 90% 80%,
      rgba(29, 54, 89, 0.14),
      transparent 30%
    ),
    #02060d;
}


/* estructura principal real */

.ef-footer--institutional .ef-footer__shell {
  width: min(1380px, 100%);
  margin: 0 auto;

  display: grid;

  grid-template-columns:
    minmax(280px, 1.45fr)
    minmax(170px, 0.8fr)
    minmax(240px, 1fr)
    minmax(190px, 0.8fr);

  column-gap: clamp(45px, 6vw, 100px);
  row-gap: 60px;

  align-items: start;
}


/* identidad */

.ef-footer--institutional .ef-footer__brand {
  display: block;
  padding: 0;
}

.ef-footer--institutional .ef-footer__eyebrow {
  margin-bottom: 20px;
}

.ef-footer--institutional .ef-footer__logo {
  margin: 0;
}

.ef-footer--institutional .ef-footer__tagline {
  margin: 27px 0 38px;
}


/* columnas */

.ef-footer--institutional .ef-footer__column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  gap: 15px;
}

.ef-footer--institutional .ef-footer__column nav {
  width: 100%;

  display: flex;
  flex-direction: column;

  gap: 12px;
}

.ef-footer--institutional .ef-footer__column a {
  width: auto;

  display: inline-flex;
  flex-direction: column;

  padding: 2px 0;

  line-height: 1.45;
}


/* contacto: evita que el mail desarme la columna */

.ef-footer--institutional .ef-footer__column a span {
  overflow-wrap: anywhere;
}


/* redes */

.ef-footer--institutional .ef-footer__social {
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  gap: 10px;

  margin-top: 18px;
}


/* frase central */

.ef-footer--institutional .ef-footer__statement {
  width: min(1380px, 100%);

  margin: 90px auto 0;
  padding: 42px 0;

  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.ef-footer--institutional .ef-footer__statement p {
  font-size: clamp(20px, 2.1vw, 30px);
}


/* parte inferior */

.ef-footer--institutional .ef-footer__bottom {
  width: min(1380px, 100%);

  margin: 0 auto;

  padding: 28px 0 32px;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1050px) {

  .ef-footer.ef-footer--institutional {
    padding-left: 50px;
    padding-right: 50px;
  }

  .ef-footer--institutional .ef-footer__shell {
    grid-template-columns:
      minmax(280px, 1.3fr)
      minmax(220px, 1fr);
  }

}


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

@media (max-width: 680px) {

  .ef-footer.ef-footer--institutional {
    margin-top: 75px;

    padding:
      70px 24px 0;
  }

  .ef-footer--institutional .ef-footer__shell {
    display: grid;
    grid-template-columns: 1fr;

    gap: 50px;
  }

  .ef-footer--institutional .ef-footer__logo {
    font-size: 64px;
  }

  .ef-footer--institutional .ef-footer__statement {
    margin-top: 60px;
    padding: 35px 0;

    grid-template-columns: 1fr;
  }

  .ef-footer--institutional
  .ef-footer__statement > span {
    display: none;
  }

  .ef-footer--institutional
  .ef-footer__statement p {
    text-align: left;
  }

  .ef-footer--institutional
  .ef-footer__bottom {
    flex-direction: column;
    align-items: flex-start;

    gap: 14px;
  }

}


/* =========================================================
   CRÉDITO DESARROLLO
========================================================= */

.ef-footer__legal {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ef-footer__legal p {
  margin: 0;
}

.ef-footer__credit {
  display: flex;
  align-items: center;
  gap: 6px;

  font-size: 0.61rem !important;
  letter-spacing: 0.07em;

  color: rgba(255, 255, 255, 0.22) !important;
}

.ef-footer__credit span {
  color: rgba(200, 169, 107, 0.4);
}

.ef-footer__credit strong {
  font-weight: 500;

  color: rgba(255, 255, 255, 0.36);
}


/* =========================================================
   SITUACIONES — ORIENTACIÓN AL VISITANTE
========================================================= */

.ef-situations {
  position: relative;
  overflow: hidden;
  padding: 165px 0 175px;

  background:
    radial-gradient(
      circle at 12% 18%,
      rgba(200, 169, 107, 0.07),
      transparent 26%
    ),
    linear-gradient(
      180deg,
      #06101c 0%,
      #040a13 100%
    );

  border-top: 1px solid rgba(255, 255, 255, 0.05);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-situations::after {
  content: "ORIENTACIÓN";

  position: absolute;
  right: -40px;
  top: 45%;

  transform:
    rotate(90deg)
    translateX(50%);

  transform-origin: right center;

  font-family: var(--serif);
  font-size: 10px;

  letter-spacing: 0.55em;

  color: rgba(255, 255, 255, 0.04);

  pointer-events: none;
}


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

.ef-situations__header {
  display: grid;

  grid-template-columns:
    0.72fr
    2fr;

  gap: 90px;

  margin-bottom: 95px;
}

.ef-situations__index {
  display: flex;
  align-items: baseline;
  gap: 16px;

  padding-top: 13px;
}

.ef-situations__overline {
  margin: 0 0 20px;

  color: var(--gold-soft);

  font-size: 10px;

  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-situations__heading h2 {
  margin: 0;

  max-width: 920px;

  font-family: var(--serif);

  font-size:
    clamp(62px, 8vw, 118px);

  font-weight: 400;
  line-height: 0.88;

  letter-spacing: -0.055em;
}

.ef-situations__heading h2 span {
  display: block;

  color: var(--gold-soft);
}

.ef-situations__heading > p:last-child {
  max-width: 720px;

  margin: 32px 0 0;

  font-size: 16px;
  line-height: 1.75;

  color: rgba(255, 255, 255, 0.56);
}


/* =========================================================
   LISTADO
========================================================= */

.ef-situations__list {
  border-top:
    1px solid rgba(255, 255, 255, 0.08);
}

.ef-situation {
  position: relative;

  min-height: 170px;

  display: grid;

  grid-template-columns:
    70px
    minmax(0, 1fr)
    auto;

  align-items: center;

  gap: 38px;

  padding: 34px 0;

  border-bottom:
    1px solid rgba(255, 255, 255, 0.08);

  opacity: 0.22;

  transform:
    translateY(32px)
    scale(0.992);

  filter: blur(3px);

  transition:
    opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.8s ease,
    background 0.4s ease,
    padding 0.4s ease;
}

.ef-situation::before {
  content: "";

  position: absolute;

  left: 0;
  top: 18%;

  width: 1px;
  height: 0;

  opacity: 0;

  background:
    linear-gradient(
      to bottom,
      transparent,
      var(--gold-soft),
      transparent
    );

  transition:
    height 0.7s ease,
    opacity 0.5s ease;
}


/* número */

.ef-situation__number {
  font-size: 10px;

  letter-spacing: 0.22em;

  color:
    rgba(200, 169, 107, 0.5);

  transition:
    color 0.4s ease,
    transform 0.4s ease;
}


/* contenido */

.ef-situation__content {
  max-width: 850px;
}

.ef-situation__content h3 {
  margin: 0;

  font-family: var(--serif);

  font-size:
    clamp(25px, 2.7vw, 40px);

  font-weight: 400;

  line-height: 1.15;

  color:
    rgba(255, 255, 255, 0.9);

  transition:
    color 0.45s ease,
    transform 0.45s ease;
}

.ef-situation__content > p:not(.ef-situation__label) {
  max-width: 740px;

  margin: 13px 0 0;

  font-size: 14px;
  line-height: 1.7;

  color:
    rgba(255, 255, 255, 0.45);

  transition:
    color 0.45s ease,
    transform 0.45s ease;
}


/* acción */

.ef-situation__action {
  display: inline-flex;

  align-items: center;

  gap: 10px;

  white-space: nowrap;

  font-size: 10px;

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

  color:
    rgba(255, 255, 255, 0.38);

  transition:
    color 0.4s ease,
    transform 0.4s ease;
}


/* =========================================================
   ESTADO ACTIVO POR SCROLL
========================================================= */

.ef-situation.is-situation-active {
  opacity: 1;

  transform:
    translateY(0)
    scale(1);

  filter: blur(0);

  padding-left: 20px;

  background:
    linear-gradient(
      90deg,
      rgba(200, 169, 107, 0.045),
      transparent 70%
    );
}

.ef-situation.is-situation-past {
  opacity: 0.52;

  transform:
    translateY(0)
    scale(1);

  filter: blur(0);
}

.ef-situation.is-situation-active::before {
  height: 64%;
  opacity: 0.7;
}

.ef-situation.is-situation-active
.ef-situation__number {
  color: var(--gold-soft);

  transform: translateX(5px);
}

.ef-situation.is-situation-active
.ef-situation__content h3 {
  color: var(--gold-soft);

  transform: translateX(8px);
}

.ef-situation.is-situation-active
.ef-situation__content > p:not(.ef-situation__label) {
  color:
    rgba(255, 255, 255, 0.68);

  transform: translateX(8px);
}

.ef-situation.is-situation-active
.ef-situation__action {
  color: var(--gold-soft);

  transform: translateX(-6px);
}


/* =========================================================
   DESTACADA — NO SÉ QUÉ NECESITO
========================================================= */

.ef-situation--featured {
  margin-top: 34px;

  padding-top: 45px;
  padding-bottom: 45px;

  border:
    1px solid rgba(200, 169, 107, 0.16);

  background:
    radial-gradient(
      circle at 78% 50%,
      rgba(200, 169, 107, 0.07),
      transparent 35%
    ),
    rgba(255, 255, 255, 0.018);
}

.ef-situation--featured.is-situation-active {
  padding-left: 28px;

  border-color:
    rgba(200, 169, 107, 0.35);

  background:
    radial-gradient(
      circle at 78% 50%,
      rgba(200, 169, 107, 0.11),
      transparent 38%
    ),
    rgba(200, 169, 107, 0.025);

  box-shadow:
    0 30px 80px rgba(0, 0, 0, 0.18);
}

.ef-situation__label {
  margin: 0 0 8px;

  font-size: 9px;

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

  color: var(--gold-soft);
}


/* =========================================================
   CIERRE
========================================================= */

.ef-situations__closing {
  margin-top: 80px;

  padding-top: 35px;

  display: flex;

  align-items: flex-end;
  justify-content: space-between;

  gap: 40px;

  border-top:
    1px solid rgba(255, 255, 255, 0.07);
}

.ef-situations__closing p {
  max-width: 620px;

  margin: 0;

  font-family: var(--serif);

  font-size:
    clamp(22px, 2.5vw, 34px);

  line-height: 1.35;

  color:
    rgba(255, 255, 255, 0.65);
}

.ef-situations__closing p span {
  color: var(--gold-soft);
}

.ef-situations__closing > a {
  display: inline-flex;

  align-items: center;

  gap: 12px;

  padding-bottom: 7px;

  border-bottom:
    1px solid rgba(200, 169, 107, 0.4);

  font-size: 10px;

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

  color: var(--gold-soft);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {

  .ef-situations {
    padding: 120px 0 130px;
  }

  .ef-situations__header {
    grid-template-columns: 1fr;

    gap: 35px;

    margin-bottom: 70px;
  }

  .ef-situation {
    grid-template-columns:
      48px
      1fr;

    gap: 22px;

    min-height: 0;
  }

  .ef-situation__action {
    grid-column: 2;

    justify-self: start;

    margin-top: 6px;
  }

  .ef-situations__closing {
    flex-direction: column;

    align-items: flex-start;
  }

}


@media (max-width: 620px) {

  .ef-situations {
    padding: 95px 0 105px;
  }

  .ef-situations::after {
    display: none;
  }

  .ef-situations__heading h2 {
    font-size: 56px;
  }

  .ef-situation {
    grid-template-columns: 1fr;

    gap: 13px;

    padding: 28px 0;
  }

  .ef-situation__number {
    margin-bottom: 3px;
  }

  .ef-situation__action {
    grid-column: 1;
  }

  .ef-situation.is-situation-active,
  .ef-situation--featured.is-situation-active {
    padding-left: 16px;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .ef-situation {
    opacity: 1;

    transform: none;

    filter: none;
  }

}


/* =========================================================
   PROFESIONALES DEL DERECHO
========================================================= */

.ef-lawyers {
  position: relative;
  overflow: hidden;
  padding: 165px 0 180px;

  background:
    radial-gradient(
      circle at 85% 18%,
      rgba(200, 169, 107, 0.07),
      transparent 28%
    ),
    linear-gradient(
      180deg,
      #040a13 0%,
      #07111d 100%
    );

  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-lawyers::after {
  content: "DERECHO";

  position: absolute;
  left: -35px;
  top: 42%;

  transform:
    rotate(-90deg)
    translateX(-50%);

  transform-origin: left center;

  font-family: var(--serif);
  font-size: 10px;

  letter-spacing: 0.55em;

  color: rgba(255, 255, 255, 0.04);

  pointer-events: none;
}


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

.ef-lawyers__header {
  display: grid;

  grid-template-columns:
    0.72fr
    2fr;

  gap: 90px;

  margin-bottom: 90px;
}

.ef-lawyers__index {
  display: flex;
  align-items: baseline;
  gap: 16px;

  padding-top: 13px;
}

.ef-lawyers__overline {
  margin: 0 0 20px;

  color: var(--gold-soft);

  font-size: 10px;

  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-lawyers__heading h2 {
  margin: 0;

  max-width: 980px;

  font-family: var(--serif);

  font-size:
    clamp(58px, 7.4vw, 108px);

  font-weight: 400;
  line-height: 0.9;

  letter-spacing: -0.05em;
}

.ef-lawyers__heading h2 span {
  display: block;

  color: var(--gold-soft);
}

.ef-lawyers__heading > p:last-child {
  max-width: 760px;

  margin: 32px 0 0;

  font-size: 16px;
  line-height: 1.75;

  color: rgba(255, 255, 255, 0.56);
}


/* =========================================================
   FRASE CENTRAL
========================================================= */

.ef-lawyers__statement {
  margin-bottom: 95px;

  padding: 48px 0;

  display: grid;

  grid-template-columns:
    1fr
    1fr;

  gap: 70px;

  border-top:
    1px solid rgba(255, 255, 255, 0.08);

  border-bottom:
    1px solid rgba(255, 255, 255, 0.08);
}

.ef-lawyers__statement p {
  margin: 0;

  font-family: var(--serif);

  font-size:
    clamp(24px, 2.8vw, 39px);

  line-height: 1.35;

  color:
    rgba(255, 255, 255, 0.62);
}

.ef-lawyers__statement span {
  color:
    rgba(255, 255, 255, 0.9);
}

.ef-lawyers__statement strong {
  font-weight: 500;
  color: var(--gold-soft);
}


/* =========================================================
   SERVICIOS PARA ABOGADOS
========================================================= */

.ef-lawyers__services {
  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 1px;

  background:
    rgba(255, 255, 255, 0.08);

  border:
    1px solid rgba(255, 255, 255, 0.08);
}

.ef-lawyer-service {
  position: relative;
  overflow: hidden;

  min-height: 330px;

  padding: 42px;

  background:
    #06101b;

  opacity: 0.18;

  transform:
    translateY(30px)
    scale(0.985);

  filter: blur(3px);

  transition:
    opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.8s ease,
    background 0.4s ease,
    border-color 0.4s ease;
}

.ef-lawyer-service--wide {
  grid-column: 1 / -1;

  min-height: 280px;

  display: grid;

  grid-template-columns:
    70px
    minmax(0, 1fr)
    auto;

  gap: 30px;

  align-items: center;
}


/* número */

.ef-lawyer-service__number {
  display: block;

  margin-bottom: 55px;

  font-size: 10px;

  letter-spacing: 0.22em;

  color:
    rgba(200, 169, 107, 0.45);

  transition:
    color 0.4s ease,
    transform 0.4s ease;
}


/* contenido */

.ef-lawyer-service__content {
  position: relative;
  z-index: 2;

  max-width: 650px;
}

.ef-lawyer-service__label {
  margin: 0 0 11px;

  font-size: 9px;

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

  color:
    rgba(200, 169, 107, 0.6);
}

.ef-lawyer-service__content h3 {
  margin: 0;

  font-family: var(--serif);

  font-size:
    clamp(29px, 3vw, 44px);

  font-weight: 400;
  line-height: 1.12;

  color:
    rgba(255, 255, 255, 0.9);

  transition:
    color 0.4s ease,
    transform 0.4s ease;
}

.ef-lawyer-service__content > p:last-child {
  max-width: 570px;

  margin: 18px 0 0;

  font-size: 14px;
  line-height: 1.75;

  color:
    rgba(255, 255, 255, 0.44);

  transition:
    color 0.4s ease,
    transform 0.4s ease;
}


/* palabra de fondo */

.ef-lawyer-service__mark {
  position: absolute;

  right: 20px;
  bottom: -10px;

  font-family: var(--serif);

  font-size:
    clamp(58px, 7vw, 100px);

  line-height: 0.8;

  color:
    rgba(255, 255, 255, 0.018);

  pointer-events: none;
  user-select: none;

  transition:
    color 0.5s ease,
    transform 0.5s ease;
}


/* acción */

.ef-lawyer-service__action {
  display: inline-flex;

  align-items: center;

  gap: 12px;

  padding-bottom: 7px;

  border-bottom:
    1px solid rgba(200, 169, 107, 0.4);

  white-space: nowrap;

  font-size: 10px;

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

  color: var(--gold-soft);
}


/* =========================================================
   ACTIVO POR SCROLL
========================================================= */

.ef-lawyer-service.is-lawyer-active {
  opacity: 1;

  transform:
    translateY(0)
    scale(1);

  filter: blur(0);

  background:
    linear-gradient(
      135deg,
      rgba(200, 169, 107, 0.05),
      #06101b 55%
    );
}

.ef-lawyer-service.is-lawyer-past {
  opacity: 0.52;

  transform:
    translateY(0)
    scale(1);

  filter: blur(0);
}

.ef-lawyer-service.is-lawyer-active
.ef-lawyer-service__number {
  color: var(--gold-soft);

  transform: translateX(4px);
}

.ef-lawyer-service.is-lawyer-active
.ef-lawyer-service__content h3 {
  color: var(--gold-soft);

  transform: translateX(7px);
}

.ef-lawyer-service.is-lawyer-active
.ef-lawyer-service__content > p:last-child {
  color:
    rgba(255, 255, 255, 0.67);

  transform: translateX(7px);
}

.ef-lawyer-service.is-lawyer-active
.ef-lawyer-service__mark {
  color:
    rgba(200, 169, 107, 0.045);

  transform: translateY(-6px);
}


/* =========================================================
   CIERRE
========================================================= */

.ef-lawyers__closing {
  margin-top: 80px;

  padding-top: 36px;

  display: grid;

  grid-template-columns:
    auto
    minmax(0, 1fr)
    auto;

  gap: 50px;

  align-items: center;

  border-top:
    1px solid rgba(255, 255, 255, 0.07);
}

.ef-lawyers__closing > div {
  display: flex;
  flex-wrap: wrap;

  gap: 9px;
}

.ef-lawyers__closing > div span {
  padding:
    7px 10px;

  border:
    1px solid rgba(200, 169, 107, 0.18);

  font-size: 9px;

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

  color:
    rgba(200, 169, 107, 0.65);
}

.ef-lawyers__closing p {
  max-width: 560px;

  margin: 0;

  font-family: var(--serif);

  font-size:
    clamp(18px, 2vw, 27px);

  line-height: 1.45;

  color:
    rgba(255, 255, 255, 0.55);
}

.ef-lawyers__closing p strong {
  display: block;

  font-weight: 500;

  color:
    rgba(255, 255, 255, 0.86);
}

.ef-lawyers__closing > a {
  display: inline-flex;

  align-items: center;

  gap: 11px;

  padding-bottom: 7px;

  border-bottom:
    1px solid rgba(200, 169, 107, 0.4);

  white-space: nowrap;

  font-size: 10px;

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

  color: var(--gold-soft);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 980px) {

  .ef-lawyers {
    padding: 120px 0 130px;
  }

  .ef-lawyers__header {
    grid-template-columns: 1fr;

    gap: 35px;
  }

  .ef-lawyers__statement {
    grid-template-columns: 1fr;

    gap: 25px;
  }

  .ef-lawyers__services {
    grid-template-columns: 1fr;
  }

  .ef-lawyer-service--wide {
    grid-column: auto;

    grid-template-columns:
      1fr;

    align-items: start;
  }

  .ef-lawyer-service--wide
  .ef-lawyer-service__number {
    margin-bottom: 20px;
  }

  .ef-lawyers__closing {
    grid-template-columns: 1fr;

    gap: 30px;
  }

}


@media (max-width: 620px) {

  .ef-lawyers {
    padding: 95px 0 105px;
  }

  .ef-lawyers::after {
    display: none;
  }

  .ef-lawyers__heading h2 {
    font-size: 52px;
  }

  .ef-lawyer-service {
    min-height: 0;

    padding: 32px 24px;
  }

  .ef-lawyer-service__number {
    margin-bottom: 35px;
  }

  .ef-lawyer-service__mark {
    font-size: 62px;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .ef-lawyer-service {
    opacity: 1;

    transform: none;

    filter: none;
  }

}

/* =========================================================
   MENÚ EXPLORAR — AJUSTE FINAL CON NUEVAS SECCIONES
========================================================= */

.ef-menu__content {
  width: min(1180px, calc(100% - 80px));

  min-height: 100%;

  margin: 0 auto;

  display: flex;
  flex-direction: column;
  justify-content: flex-start;

  padding:
    clamp(85px, 10vh, 120px)
    0
    45px;

  overflow-y: auto;
}


/* título institucional */

.ef-menu__eyebrow {
  flex: 0 0 auto;

  margin-bottom: 26px;
}


/* navegación */

.ef-menu__nav {
  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  column-gap: 70px;
  row-gap: 0;

  width: 100%;

  flex: 0 0 auto;
}


.ef-menu__nav a {
  position: relative;

  display: flex;
  align-items: center;

  min-height: 42px;

  padding:
    8px
    26px
    8px
    0;

  border-bottom:
    1px solid rgba(255, 255, 255, 0.06);

  font-size:
    clamp(16px, 1.35vw, 21px);

  line-height: 1.2;
}


.ef-menu__nav a::after {
  content: "→";

  position: absolute;

  right: 2px;

  opacity: 0;

  color: var(--gold-soft);

  transform: translateX(-8px);

  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}


.ef-menu__nav a:hover::after,
.ef-menu__nav a:focus-visible::after {
  opacity: 1;

  transform: translateX(0);
}


/* accesos directos */

.ef-menu__quick {
  margin-top: 28px;

  flex: 0 0 auto;
}


/* =========================================================
   PANTALLAS MEDIANAS
========================================================= */

@media (max-width: 900px) {

  .ef-menu__content {
    width: min(100% - 42px, 720px);

    padding:
      90px
      0
      35px;
  }


  .ef-menu__nav {
    grid-template-columns: 1fr;

    column-gap: 0;
  }


  .ef-menu__nav a {
    min-height: 38px;

    font-size: 17px;
  }

}


/* =========================================================
   CELULAR
========================================================= */

@media (max-width: 620px) {

  .ef-menu__content {
    width: calc(100% - 32px);

    padding:
      82px
      0
      28px;
  }


  .ef-menu__eyebrow {
    margin-bottom: 18px;
  }


  .ef-menu__nav a {
    min-height: 36px;

    padding:
      7px
      22px
      7px
      0;

    font-size: 15px;
  }


  .ef-menu__quick {
    margin-top: 22px;
  }

}


/* =========================================================
   AJUSTE SUPERIOR MENÚ EXPLORAR
========================================================= */

.ef-menu__content {
  padding-top: clamp(110px, 13vh, 150px);
}

.ef-menu__eyebrow {
  margin-top: 6px;
}


/* =========================================================
   CÓMO TRABAJAMOS
========================================================= */

.ef-process {
  position: relative;
  overflow: hidden;
  padding: 165px 0 180px;

  background:
    radial-gradient(
      circle at 18% 16%,
      rgba(200, 169, 107, 0.07),
      transparent 28%
    ),
    linear-gradient(
      180deg,
      #06101b 0%,
      #040a13 100%
    );

  border-top: 1px solid rgba(255, 255, 255, 0.05);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.ef-process::after {
  content: "PROCESO";

  position: absolute;
  right: -28px;
  top: 46%;

  transform:
    rotate(90deg)
    translateX(50%);

  transform-origin: right center;

  font-family: var(--serif);
  font-size: 10px;

  letter-spacing: 0.55em;

  color: rgba(255, 255, 255, 0.04);

  pointer-events: none;
}


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

.ef-process__header {
  display: grid;

  grid-template-columns:
    0.72fr
    2fr;

  gap: 90px;

  margin-bottom: 90px;
}

.ef-process__index {
  display: flex;
  align-items: baseline;
  gap: 16px;

  padding-top: 13px;
}

.ef-process__overline {
  margin: 0 0 20px;

  color: var(--gold-soft);

  font-size: 10px;

  text-transform: uppercase;
  letter-spacing: 0.28em;
}

.ef-process__heading h2 {
  margin: 0;

  max-width: 980px;

  font-family: var(--serif);

  font-size:
    clamp(58px, 7.4vw, 108px);

  font-weight: 400;
  line-height: 0.9;

  letter-spacing: -0.05em;
}

.ef-process__heading h2 span {
  display: block;

  color: var(--gold-soft);
}

.ef-process__heading > p:last-child {
  max-width: 760px;

  margin: 32px 0 0;

  font-size: 16px;
  line-height: 1.75;

  color: rgba(255, 255, 255, 0.56);
}


/* =========================================================
   FRASE CENTRAL
========================================================= */

.ef-process__statement {
  margin-bottom: 90px;

  padding: 48px 0;

  display: grid;

  grid-template-columns:
    1fr
    1fr;

  gap: 70px;

  border-top:
    1px solid rgba(255, 255, 255, 0.08);

  border-bottom:
    1px solid rgba(255, 255, 255, 0.08);
}

.ef-process__statement p {
  margin: 0;

  font-family: var(--serif);

  font-size:
    clamp(24px, 2.8vw, 39px);

  line-height: 1.35;

  color:
    rgba(255, 255, 255, 0.62);
}

.ef-process__statement span {
  color:
    rgba(255, 255, 255, 0.9);
}

.ef-process__statement strong {
  font-weight: 500;

  color: var(--gold-soft);
}


/* =========================================================
   TIMELINE
========================================================= */

.ef-process__timeline {
  position: relative;

  border-top:
    1px solid rgba(255, 255, 255, 0.07);
}

.ef-process__timeline::before {
  content: "";

  position: absolute;

  left: 70px;
  top: 0;
  bottom: 0;

  width: 1px;

  background:
    linear-gradient(
      to bottom,
      rgba(200, 169, 107, 0.05),
      rgba(200, 169, 107, 0.28),
      rgba(200, 169, 107, 0.05)
    );
}


/* =========================================================
   PASO
========================================================= */

.ef-process-step {
  position: relative;

  min-height: 260px;

  display: grid;

  grid-template-columns:
    140px
    minmax(0, 1fr)
    minmax(180px, 0.55fr);

  gap: 40px;

  align-items: center;

  padding: 44px 0;

  border-bottom:
    1px solid rgba(255, 255, 255, 0.07);

  opacity: 0.2;

  transform:
    translateY(30px)
    scale(0.988);

  filter: blur(3px);

  transition:
    opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.8s ease,
    background 0.4s ease,
    padding 0.4s ease;
}

.ef-process-step::before {
  content: "";

  position: absolute;

  left: 0;
  top: 14%;

  width: 2px;
  height: 0;

  opacity: 0;

  background:
    linear-gradient(
      to bottom,
      transparent,
      var(--gold-soft),
      transparent
    );

  transition:
    height 0.65s ease,
    opacity 0.5s ease;
}


/* =========================================================
   RIEL / NÚMERO
========================================================= */

.ef-process-step__rail {
  position: relative;

  min-height: 110px;

  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.ef-process-step__number {
  position: relative;
  z-index: 2;

  min-width: 44px;

  font-size: 10px;

  letter-spacing: 0.22em;

  color:
    rgba(200, 169, 107, 0.52);

  transition:
    color 0.4s ease,
    transform 0.4s ease;
}

.ef-process-step__point {
  position: absolute;

  left: 64px;

  width: 13px;
  height: 13px;

  border-radius: 50%;

  border:
    1px solid rgba(200, 169, 107, 0.32);

  background: #06101b;

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


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

.ef-process-step__content {
  position: relative;
  z-index: 2;

  max-width: 760px;
}

.ef-process-step__label {
  margin: 0 0 11px;

  font-size: 9px;

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

  color:
    rgba(200, 169, 107, 0.62);
}

.ef-process-step__content h3 {
  margin: 0;

  font-family: var(--serif);

  font-size:
    clamp(30px, 3.2vw, 47px);

  font-weight: 400;
  line-height: 1.12;

  color:
    rgba(255, 255, 255, 0.9);

  transition:
    color 0.4s ease,
    transform 0.4s ease;
}

.ef-process-step__content > p:last-child {
  max-width: 680px;

  margin: 17px 0 0;

  font-size: 14px;
  line-height: 1.75;

  color:
    rgba(255, 255, 255, 0.45);

  transition:
    color 0.4s ease,
    transform 0.4s ease;
}


/* =========================================================
   PALABRA DE FONDO
========================================================= */

.ef-process-step__word {
  justify-self: end;

  font-family: var(--serif);

  font-size:
    clamp(33px, 4.1vw, 63px);

  line-height: 0.9;

  text-align: right;

  color:
    rgba(255, 255, 255, 0.025);

  pointer-events: none;
  user-select: none;

  transition:
    color 0.5s ease,
    transform 0.5s ease;
}


/* =========================================================
   PASO ACTIVO POR SCROLL
========================================================= */

.ef-process-step.is-process-active {
  opacity: 1;

  transform:
    translateY(0)
    scale(1);

  filter: blur(0);

  padding-left: 18px;

  background:
    linear-gradient(
      90deg,
      rgba(200, 169, 107, 0.045),
      transparent 72%
    );
}

.ef-process-step.is-process-past {
  opacity: 0.5;

  transform:
    translateY(0)
    scale(1);

  filter: blur(0);
}

.ef-process-step.is-process-active::before {
  height: 72%;
  opacity: 0.75;
}

.ef-process-step.is-process-active
.ef-process-step__number {
  color: var(--gold-soft);

  transform: translateX(5px);
}

.ef-process-step.is-process-active
.ef-process-step__point {
  border-color: var(--gold-soft);

  background: var(--gold-soft);

  transform: scale(1.12);

  box-shadow:
    0 0 0 6px rgba(200, 169, 107, 0.07),
    0 0 24px rgba(200, 169, 107, 0.16);
}

.ef-process-step.is-process-active
.ef-process-step__content h3 {
  color: var(--gold-soft);

  transform: translateX(7px);
}

.ef-process-step.is-process-active
.ef-process-step__content > p:last-child {
  color:
    rgba(255, 255, 255, 0.68);

  transform: translateX(7px);
}

.ef-process-step.is-process-active
.ef-process-step__word {
  color:
    rgba(200, 169, 107, 0.055);

  transform: translateX(-8px);
}


/* =========================================================
   CIERRE
========================================================= */

.ef-process__closing {
  margin-top: 95px;

  padding:
    46px
    0
    10px;

  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap: 70px;

  align-items: end;

  border-top:
    1px solid rgba(255, 255, 255, 0.08);
}

.ef-process__closing-copy {
  max-width: 720px;
}

.ef-process__closing-eyebrow {
  margin: 0 0 15px;

  font-size: 9px;

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

  color: var(--gold-soft);
}

.ef-process__closing-copy h3 {
  margin: 0;

  font-family: var(--serif);

  font-size:
    clamp(34px, 4vw, 58px);

  font-weight: 400;

  line-height: 1.08;

  color:
    rgba(255, 255, 255, 0.92);
}

.ef-process__closing-copy > p:last-child {
  max-width: 650px;

  margin: 20px 0 0;

  font-size: 14px;
  line-height: 1.75;

  color:
    rgba(255, 255, 255, 0.5);
}

.ef-process__action {
  display: inline-flex;

  align-items: center;

  gap: 14px;

  padding:
    15px
    0
    10px;

  border-bottom:
    1px solid rgba(200, 169, 107, 0.45);

  white-space: nowrap;

  font-size: 10px;

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

  color: var(--gold-soft);

  transition:
    gap 0.35s ease,
    border-color 0.35s ease;
}

.ef-process__action:hover {
  gap: 20px;

  border-color: var(--gold-soft);
}


/* =========================================================
   FIRMA
========================================================= */

.ef-process__signature {
  margin-top: 80px;

  display: grid;

  grid-template-columns:
    1fr
    auto
    1fr;

  gap: 20px;

  align-items: center;
}

.ef-process__signature span {
  height: 1px;

  background:
    rgba(255, 255, 255, 0.06);
}

.ef-process__signature p {
  margin: 0;

  font-size: 9px;

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

  color:
    rgba(255, 255, 255, 0.22);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 980px) {

  .ef-process {
    padding: 120px 0 130px;
  }

  .ef-process__header {
    grid-template-columns: 1fr;

    gap: 35px;
  }

  .ef-process__statement {
    grid-template-columns: 1fr;

    gap: 24px;
  }

  .ef-process-step {
    grid-template-columns:
      95px
      minmax(0, 1fr);

    gap: 28px;
  }

  .ef-process__timeline::before {
    left: 48px;
  }

  .ef-process-step__point {
    left: 42px;
  }

  .ef-process-step__word {
    grid-column: 2;

    justify-self: start;

    margin-top: 4px;

    text-align: left;
  }

  .ef-process__closing {
    grid-template-columns: 1fr;

    gap: 35px;

    align-items: start;
  }

}


@media (max-width: 620px) {

  .ef-process {
    padding: 95px 0 105px;
  }

  .ef-process::after {
    display: none;
  }

  .ef-process__heading h2 {
    font-size: 52px;
  }

  .ef-process__timeline::before {
    display: none;
  }

  .ef-process-step {
    grid-template-columns: 1fr;

    gap: 14px;

    min-height: 0;

    padding: 30px 0;
  }

  .ef-process-step__rail {
    min-height: 0;

    display: flex;

    gap: 13px;
  }

  .ef-process-step__point {
    position: static;

    width: 10px;
    height: 10px;
  }

  .ef-process-step__word {
    grid-column: 1;

    font-size: 38px;
  }

  .ef-process-step.is-process-active {
    padding-left: 15px;
  }

  .ef-process__signature {
    grid-template-columns: 1fr;

    gap: 14px;

    text-align: center;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .ef-process-step {
    opacity: 1;

    transform: none;

    filter: none;
  }

}