/* Budapest Free Tour — lightweight 3D depth layer */
:root{--bft-depth-red:#c72638;--bft-depth-black:#090909}
html{overflow-x:clip}
#hero{perspective:1400px;transform-style:preserve-3d;overflow:hidden;isolation:isolate}
#hero .hero-poster,#hero .hero-video{will-change:transform;transform:translate3d(var(--bft-hero-x,0),var(--bft-hero-y,0),0) scale(1.035)}
#hero .hero-content{position:relative;z-index:4;will-change:transform;transform:translate3d(var(--bft-copy-x,0),var(--bft-copy-y,0),28px)}
.bft-depth-scene{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;transform-style:preserve-3d}
.bft-depth-orbit{position:absolute;right:5%;top:12%;width:min(35vw,620px);height:auto;opacity:.44;filter:drop-shadow(0 0 12px rgba(199,38,56,.18));transform:translate3d(var(--bft-orbit-x,0),var(--bft-orbit-y,0),55px)}
.bft-depth-orbit path{fill:none;stroke:var(--bft-depth-red);stroke-width:1.35;stroke-linecap:round;stroke-dasharray:6 12;animation:bftOrbit 18s linear infinite}
.bft-depth-dot{position:absolute;right:18%;bottom:19%;width:9px;height:9px;border-radius:50%;background:var(--bft-depth-red);box-shadow:0 0 0 8px rgba(199,38,56,.12),0 0 25px rgba(199,38,56,.45);transform:translate3d(var(--bft-dot-x,0),var(--bft-dot-y,0),75px)}
@keyframes bftOrbit{to{stroke-dashoffset:-180}}

#tours{position:relative;overflow:hidden;isolation:isolate}
#tours>.container,#tours>.section-inner{position:relative;z-index:2}
.bft-depth-umbrella{position:absolute;z-index:1;right:-4%;top:4%;width:clamp(320px,37vw,720px);height:auto;opacity:.2;pointer-events:none;user-select:none;filter:grayscale(1) contrast(1.12) drop-shadow(0 32px 38px rgba(0,0,0,.42));transform-origin:62% 42%;transform:translate3d(var(--bft-umbrella-x,0),var(--bft-umbrella-y,0),0) rotate(-8deg);will-change:transform}
.bft-depth-redline{position:absolute;z-index:1;left:5%;right:5%;top:12%;height:1px;background:linear-gradient(90deg,transparent,var(--bft-depth-red),transparent);opacity:.46;transform:scaleX(var(--bft-line-scale,.15));transform-origin:left center}

.bft-reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity .72s cubic-bezier(.2,.7,.2,1),transform .72s cubic-bezier(.2,.7,.2,1)}
.bft-reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.bft-tilt{--bft-rx:0deg;--bft-ry:0deg;--bft-lift:0px;transform-style:preserve-3d;transform:perspective(950px) rotateX(var(--bft-rx)) rotateY(var(--bft-ry)) translateY(var(--bft-lift));transition:transform .18s ease,box-shadow .28s ease;will-change:transform}
.bft-tilt:hover{--bft-lift:-5px;box-shadow:0 26px 48px rgba(0,0,0,.18)}
.bft-tilt>*{transform:translateZ(1px)}
.bft-tilt .tour-img,.bft-tilt img{transform:translateZ(13px)}

@media(max-width:900px){
  #hero .hero-poster,#hero .hero-video,#hero .hero-content{transform:none!important}
  .bft-depth-orbit{width:72vw;right:-25%;top:18%;opacity:.24}
  .bft-depth-dot{right:10%;bottom:14%}
  .bft-depth-umbrella{width:420px;right:-180px;top:8%;opacity:.1}
}
@media(max-width:620px){.bft-depth-orbit,.bft-depth-dot,.bft-depth-umbrella{display:none}.bft-depth-redline{opacity:.3}.bft-tilt,.bft-tilt:hover{transform:none!important;box-shadow:inherit}}
@media(prefers-reduced-motion:reduce){
  .bft-depth-orbit path{animation:none}.bft-reveal{opacity:1;transform:none;transition:none}.bft-tilt,.bft-tilt:hover,#hero .hero-poster,#hero .hero-video,#hero .hero-content,.bft-depth-umbrella{transform:none!important;transition:none!important}
}

/* BFT-HOME-HEADER-BLOG-MATCH-START */

/* Esta regla vive en home-depth.css porque es la ultima hoja cargada. */
@media (min-width: 901px) {
  html body #main-header {
    position: sticky !important;
    top: 0 !important;
    left: auto !important;
    right: auto !important;
    height: 62px !important;
    min-height: 62px !important;
    max-height: 62px !important;
    z-index: 1000 !important;
  }

  html body #main-header .nav-container {
    width: 100% !important;
    max-width: 1240px !important;
    height: 62px !important;
    min-height: 62px !important;
    max-height: 62px !important;
    padding: 6px 20px !important;
    gap: 20px !important;
    flex-wrap: nowrap !important;
  }

  #main-header .bft-logo-link,
  #main-header .nav-logo.bft-logo-link {
    gap: 8px !important;
    min-width: 0 !important;
  }

  #main-header .bft-logo-link::before,
  #main-header .nav-logo.bft-logo-link::before {
    width: 40px !important;
    height: 40px !important;
    flex: 0 0 40px !important;
  }

  #main-header .bft-logo-main {
    font-size: clamp(1.25rem, 1.55vw, 1.65rem) !important;
    line-height: .94 !important;
  }

  #main-header .bft-logo-sub {
    margin-top: 3px !important;
    font-size: .52rem !important;
  }

  #main-header .nav-links {
    gap: 18px !important;
  }

  #main-header .nav-links a {
    font-size: 14px !important;
  }

  #main-header .nav-right {
    gap: 12px !important;
  }

  #main-header .lang-btn {
    padding: 5px 7px !important;
    font-size: 12px !important;
  }

  #main-header .nav-cta {
    min-height: 0 !important;
    padding: 8px 14px !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
  }

  html body #hero {
    margin-top: 0 !important;
    min-height: calc(100svh - 62px) !important;
  }
}

@media (min-width: 901px) and (max-width: 1250px) {
  html body #main-header .nav-container {
    padding-inline: 14px !important;
    gap: 11px !important;
  }

  #main-header .nav-links {
    gap: 10px !important;
  }

  #main-header .nav-links a,
  #main-header .nav-cta {
    font-size: 12px !important;
  }

  #main-header .nav-right {
    gap: 6px !important;
  }
}

@media (max-width: 900px) {
  html body #main-header {
    position: sticky !important;
    top: 0 !important;
    left: auto !important;
    right: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    z-index: 1000 !important;
  }

  html body #main-header .nav-container {
    height: auto !important;
    min-height: 64px !important;
    max-height: none !important;
    padding: 7px 14px !important;
  }

  html body #hero {
    margin-top: 0 !important;
    min-height: calc(100svh - 64px) !important;
  }

  html body #hero .hero-content {
    padding-top: 40px !important;
  }
}

@media (max-width: 620px) {
  html body #main-header .nav-container {
    min-height: 62px !important;
    padding: 6px 10px !important;
  }

  #main-header .bft-logo-link::before,
  #main-header .nav-logo.bft-logo-link::before {
    width: 34px !important;
    height: 34px !important;
    flex: 0 0 34px !important;
  }

  #main-header .bft-logo-main {
    font-size: clamp(1rem, 5.6vw, 1.25rem) !important;
  }

  #main-header .bft-logo-sub {
    font-size: .43rem !important;
  }

  #main-header .nav-links {
    top: 62px !important;
    height: calc(100dvh - 62px) !important;
  }

  html body #hero {
    min-height: calc(100svh - 62px) !important;
  }

  html body #hero .hero-content {
    padding: 34px 14px 44px !important;
  }

  #hero h1 {
    font-size: clamp(34px, 11vw, 48px) !important;
  }

  #hero .hero-sub {
    font-size: 16px !important;
    line-height: 1.45 !important;
  }
}

/* BFT-HOME-HEADER-BLOG-MATCH-END */

/* BFT-HOME-MOBILE-LOGO-CONTRAST-START */
@media (max-width: 768px) {
  html body #main-header,
  html body #main-header.header-solid {
    background: #f7f5f1 !important;
    color: #090909 !important;
  }

  html body #main-header .nav-logo,
  html body #main-header .bft-logo-link,
  html body #main-header .bft-logo {
    color: #090909 !important;
    -webkit-text-fill-color: #090909 !important;
    opacity: 1 !important;
    filter: none !important;
    mix-blend-mode: normal !important;
  }

  html body #main-header .bft-logo-main,
  html body #main-header .bft-logo-word,
  html body #main-header .bft-logo-accent,
  html body #main-header .logo-accent {
    color: #090909 !important;
    -webkit-text-fill-color: #090909 !important;
    opacity: 1 !important;
    filter: none !important;
    mix-blend-mode: normal !important;
    text-shadow: none !important;
  }

  html body #main-header .bft-logo-sub {
    color: #555555 !important;
    -webkit-text-fill-color: #555555 !important;
    opacity: 1 !important;
    filter: none !important;
    mix-blend-mode: normal !important;
    text-shadow: none !important;
  }

  html body #main-header .bft-logo-link svg,
  html body #main-header .nav-logo svg {
    color: #090909 !important;
    opacity: 1 !important;
    filter: none !important;
    mix-blend-mode: normal !important;
  }

  html body #main-header .bft-logo-link svg path:not([fill="none"]),
  html body #main-header .nav-logo svg path:not([fill="none"]) {
    fill: #090909 !important;
  }
}
/* BFT-HOME-MOBILE-LOGO-CONTRAST-END */

/* BFT-HOME-MOBILE-MENU-FINAL-START */
@media (max-width: 900px) {
  /* La hamburguesa cerrada debe contrastar sobre la cabecera clara. */
  html body #main-header #navToggle.nav-toggle {
    display: flex !important;
    position: relative !important;
    z-index: 2147483647 !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 42px !important;
    padding: 9px !important;
    color: #0a0a0a !important;
    background: #fff !important;
    border: 1px solid rgba(10, 10, 10, .72) !important;
    border-radius: 3px !important;
    box-shadow: 0 3px 12px rgba(0, 0, 0, .12) !important;
  }

  html body #main-header #navToggle.nav-toggle span {
    display: block !important;
    width: 22px !important;
    height: 2px !important;
    min-height: 2px !important;
    opacity: 1 !important;
    background: #0a0a0a !important;
    border: 0 !important;
    border-radius: 2px !important;
  }

  /* El idioma seleccionado debe distinguirse claramente. */
  html body #main-header .nav-right .lang-btn.active,
  html body #main-header .nav-right a.lang-btn.active {
    color: #fff !important;
    background: #111 !important;
    border: 1px solid #111 !important;
    border-radius: 4px !important;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, .10) !important;
  }

  /* El panel parte del borde superior y cubre el viewport completo. */
  html body #main-header #navLinks.nav-links {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: clamp(76px, 12vh, 112px) 24px 38px !important;
    box-sizing: border-box !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(11px, 2.2vh, 21px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    background: rgba(2, 2, 2, .985) !important;
    z-index: 2147483000 !important;
  }

  html body #main-header #navLinks.nav-links > li,
  html body #main-header #navLinks.nav-links > li > a {
    width: 100% !important;
    max-width: 560px !important;
    margin: 0 auto !important;
    text-align: center !important;
  }

  html body #main-header #navLinks.nav-links > li > a {
    display: block !important;
    padding: 5px 12px !important;
    color: #fff !important;
    font-family: var(--bft-brand-font), sans-serif !important;
    font-size: clamp(25px, 7vw, 38px) !important;
    line-height: 1.05 !important;
    letter-spacing: .01em !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .65) !important;
  }

  /* El boton queda por encima del panel y permite cerrarlo. */
  html body:has(#navLinks.active) #main-header #navToggle.nav-toggle,
  html body:has(#navLinks.open) #main-header #navToggle.nav-toggle,
  html body:has(#navLinks.show) #main-header #navToggle.nav-toggle,
  html body #main-header #navToggle.nav-toggle[aria-expanded='true'] {
    position: fixed !important;
    top: 12px !important;
    right: 12px !important;
    color: #fff !important;
    background: #111 !important;
    border-color: rgba(255, 255, 255, .9) !important;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .38) !important;
  }

  html body:has(#navLinks.active) #main-header #navToggle.nav-toggle span,
  html body:has(#navLinks.open) #main-header #navToggle.nav-toggle span,
  html body:has(#navLinks.show) #main-header #navToggle.nav-toggle span,
  html body #main-header #navToggle.nav-toggle[aria-expanded='true'] span {
    background: #fff !important;
  }

  html body:has(#navLinks.active),
  html body:has(#navLinks.open),
  html body:has(#navLinks.show) {
    overflow: hidden !important;
  }
}
/* BFT-HOME-MOBILE-MENU-FINAL-END */

/* BFT-MOBILE-MENU-PREMIUM-START */
@media (max-width: 768px) {
  #main-header .nav-links {
    isolation: isolate;
    overflow: hidden !important;
    color: #fff !important;
    background:
      linear-gradient(180deg, rgba(3,3,3,.91), rgba(3,3,3,.965)),
      url('/assets/img/hero-blog.avif') center 42% / cover no-repeat !important;
    box-shadow: inset 0 1px rgba(255,255,255,.06) !important;
  }

  /* Una sola ruta roja, fina y casi imperceptible. */
  #main-header .nav-links::before {
    content: "" !important;
    position: absolute !important;
    z-index: -1 !important;
    inset: 13% 7% 11% 7% !important;
    width: auto !important;
    height: auto !important;
    opacity: .42 !important;
    border: 0 !important;
    border-radius: 0 !important;
    filter: drop-shadow(0 0 7px rgba(198,31,48,.18)) !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 620' preserveAspectRatio='none'%3E%3Cpath d='M255 8 C78 86 282 174 111 252 C-18 311 290 390 104 477 C39 507 47 564 208 614' fill='none' stroke='%23c61f30' stroke-opacity='.68' stroke-width='1.25' stroke-linecap='round'/%3E%3Ccircle cx='255' cy='8' r='3.5' fill='%23c61f30'/%3E%3Ccircle cx='208' cy='614' r='3.5' fill='%23c61f30'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
    transform: translate3d(0,0,0) !important;
    animation: bft-route-drift 14s ease-in-out infinite alternate !important;
    pointer-events: none !important;
  }

  #main-header .nav-links::after {
    content: "" !important;
    position: absolute !important;
    z-index: -1 !important;
    inset: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background:
      radial-gradient(circle at 50% 46%, transparent 0 18%, rgba(0,0,0,.18) 58%, rgba(0,0,0,.55) 100%) !important;
    pointer-events: none !important;
  }

  #main-header .nav-links > li {
    position: relative !important;
    z-index: 1 !important;
    opacity: 0;
    transform: translateY(14px);
    animation: bft-menu-link-in .46s cubic-bezier(.22,.72,.25,1) forwards;
  }

  #main-header .nav-links > li:nth-child(1) { animation-delay: .05s; }
  #main-header .nav-links > li:nth-child(2) { animation-delay: .09s; }
  #main-header .nav-links > li:nth-child(3) { animation-delay: .13s; }
  #main-header .nav-links > li:nth-child(4) { animation-delay: .17s; }
  #main-header .nav-links > li:nth-child(5) { animation-delay: .21s; }
  #main-header .nav-links > li:nth-child(6) { animation-delay: .25s; }
  #main-header .nav-links > li:nth-child(7) { animation-delay: .29s; }
  #main-header .nav-links > li:nth-child(8) { animation-delay: .33s; }

  #main-header .nav-links > li > a {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 5px 12px !important;
    color: #fff !important;
    text-shadow: 0 2px 18px rgba(0,0,0,.72) !important;
    transition: color .2s ease, transform .2s ease !important;
  }

  #main-header .nav-links > li > a::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 1px;
    width: 0;
    height: 2px;
    background: #c61f30;
    transform: translateX(-50%);
    transition: width .22s ease;
  }

  #main-header .nav-links > li > a:hover,
  #main-header .nav-links > li > a:focus-visible {
    color: #fff !important;
    transform: translateY(-1px) !important;
  }

  #main-header .nav-links > li > a:hover::after,
  #main-header .nav-links > li > a:focus-visible::after,
  #main-header .nav-links > li > a[aria-current="page"]::after {
    width: 34px;
  }

  #main-header .nav-toggle {
    position: relative !important;
    z-index: 10002 !important;
  }
}

@keyframes bft-menu-link-in {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes bft-route-drift {
  from { transform: translate3d(-3px,-5px,0); opacity: .30; }
  to { transform: translate3d(5px,7px,0); opacity: .48; }
}

@media (prefers-reduced-motion: reduce) {
  #main-header .nav-links::before,
  #main-header .nav-links > li {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
/* BFT-MOBILE-MENU-PREMIUM-END */
