/* ===== Layout en hero ===== */
.ff-hero__content--nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

/* ===== Desktop ===== */
.ff-nav--desktop{ display:none; }

.ff-menu{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:.35rem;
}

.ff-menu > li{ position:relative; }

.ff-menu > li > a{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  font-weight:800;
  font-size:.95rem;
  padding:.6rem .85rem;
  border-radius:999px;
  color:#0b294b;
  background:rgba(11,41,75,.06);
  transition:transform .12s ease, background .12s ease;
}
.ff-menu > li > a:hover,
.ff-menu > li > a:focus{
  background:rgba(15,157,88,.16);
  outline:none;
  transform:translateY(-1px);
}

/* Submenú desktop (turístico: blanco + sombra suave) */
.ff-menu .sub-menu{
  position:absolute;
  left:0;
  top:calc(100% + .5rem);
  min-width: 260px;
  list-style:none;
  margin:0;
  padding:.55rem;
  background:#fff;
  border:1px solid rgba(11,41,75,.12);
  border-radius:1.1rem;
  box-shadow:0 18px 50px rgba(0,0,0,.14);
  display:none;
  z-index:50;
}
.ff-menu li:hover > .sub-menu,
.ff-menu li:focus-within > .sub-menu{
  display:block;
}
.ff-menu .sub-menu a{
  display:flex;
  width:100%;
  padding:.75rem .85rem;
  border-radius:.95rem;
  text-decoration:none;
  color:#0b294b;
  font-weight:750;
}
.ff-menu .sub-menu a:hover{
  background:rgba(135,201,199,.35); /* guiño al color #87c9c7 */
}

/* CTA */
.ff-nav__cta{
  display:none;
  text-decoration:none;
  font-weight:900;
  padding:.7rem 1rem;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg, #0b294b, #0f9d58);
  box-shadow:0 10px 24px rgba(0,0,0,.14);
  white-space:nowrap;
}
.ff-nav__cta:hover{ filter:brightness(1.05); }

/* ===== Toggle móvil ===== */
.ff-nav__toggle{
  border:0;
  background:rgba(11,41,75,.06);
  padding:.55rem .7rem;
  border-radius:999px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
}
.ff-nav__toggle:focus{ outline:2px solid rgba(15,157,88,.35); outline-offset:2px; }

.ff-nav__toggle-text{
  font-weight:900;
  color:#0b294b;
  font-size:.9rem;
}

.ff-nav__burger{
  display:block;
  width:22px;
  height:16px;
  position:relative;
  background:linear-gradient(#0b294b,#0b294b);
  background-size:100% 3px;
  background-repeat:no-repeat;
  background-position:center;
  border-radius:999px;
}
.ff-nav__burger::before,
.ff-nav__burger::after{
  content:"";
  position:absolute;
  left:0; right:0;
  height:3px;
  border-radius:999px;
  background:#0b294b;
}
.ff-nav__burger::before{ top:0; }
.ff-nav__burger::after{ bottom:0; }

/* ===== Overlay con blur (turístico) ===== */
.ff-nav__overlay{
  position:fixed;
  inset:0;
  background:rgba(11,41,75,.25);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index:9998;
}

/* ===== Panel móvil (blanco, card grande) ===== */
.ff-nav__panel{
  position:fixed;
  top:14px;
  right:14px;
  width:min(90vw, 420px);
  height:calc(100vh - 28px);
  background:rgba(255,255,255,.94);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border:1px solid rgba(11,41,75,.10);
  border-radius:1.25rem;
  z-index:9999;
  box-shadow:0 30px 80px rgba(0,0,0,.22);
  display:flex;
  flex-direction:column;
  transform:translateX(110%);
  transition:transform .22s ease;
}
.ff-nav__panel.is-open{ transform:translateX(0); }

.ff-nav__panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1rem 1rem .75rem;
}

.ff-nav__brand img{
  height:34px;
  width:auto;
  display:block;
}

.ff-nav__close{
  border:0;
  background:rgba(11,41,75,.08);
  padding:.5rem .75rem;
  border-radius:999px;
  cursor:pointer;
  color:#0b294b;
  font-weight:900;
}

/* ===== Menú móvil estilo turístico ===== */
.ff-menu--mobile{
  list-style:none;
  margin:0;
  padding:.5rem .75rem 1rem;
  overflow:auto;
}

.ff-menu--mobile > li{
  margin:.4rem 0;
}

.ff-menu--mobile > li > a{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.85rem .9rem;
  border-radius:1rem;
  text-decoration:none;
  color:#0b294b;
  font-weight:900;
  background:rgba(11,41,75,.06);
}

/* Submenú móvil: acordeón (lo abre el JS con class .is-open) */
.ff-menu--mobile .sub-menu{
  list-style:none;
  margin:.35rem 0 0 0;
  padding:.35rem .35rem .35rem .75rem;
  display:none;
  border-left:3px solid rgba(15,157,88,.35);
}

.ff-menu--mobile li.is-open > .sub-menu{ display:block; }

.ff-menu--mobile .sub-menu a{
  display:block;
  padding:.7rem .85rem;
  border-radius:.95rem;
  text-decoration:none;
  color:#0b294b;
  font-weight:750;
  background:rgba(135,201,199,.22);
  margin:.35rem 0;
}

/* CTA abajo */
.ff-nav__panel-foot{
  margin-top:auto;
  padding:1rem;
  border-top:1px solid rgba(11,41,75,.10);
}

.ff-nav__cta--mobile{
  display:flex;
  justify-content:center;
  width:100%;
  padding:.9rem 1rem;
  border-radius:1rem;
}

/* ===== Breakpoint desktop ===== */
@media (min-width: 992px){
  .ff-nav__toggle{ display:none; }
  .ff-nav--desktop{ display:block; }
  .ff-nav__cta{ display:inline-flex; }
  .ff-nav__panel,
  .ff-nav__overlay{ display:none !important; }
}