@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: block; src: url("/assets/fonts/Inter-latin.woff2") format("woff2"); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
a { color: inherit; }
img { max-width: 100%; }
.hp, .oculto { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.idiomas-sel { display: flex; gap: 4px; font-size: 13px; font-weight: 600; letter-spacing: 0.06em; }
.idiomas-sel a { text-decoration: none; padding: 10px 7px; opacity: 0.6; }
.idiomas-sel a[aria-current] { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.idiomas-sel a:hover { opacity: 1; }
.form { display: flex; flex-direction: column; gap: 16px; }
.form .fila { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; align-items: end; }
@media (max-width: 520px) { .form .fila { grid-template-columns: 1fr; } }
.form label { display: flex; flex-direction: column; gap: 6px; font-size: 0.88rem; font-weight: 500; margin: 0; }
.form .lab { display: block; line-height: 1.3; white-space: nowrap; }
.form .opc { font-weight: 300; opacity: 0.85; }
.form input[type=text], .form input[type=email], .form input[type=tel], .form textarea { width: 100%; font: inherit; font-size: 1rem; padding: 10px 12px; border-radius: 2px; margin: 0; display: block; }
.form input[type=text], .form input[type=email], .form input[type=tel] { height: 46px; }
.form textarea { resize: vertical; min-height: 140px; }
.form .check { flex-direction: row; align-items: flex-start; gap: 12px; font-weight: 300; font-size: 0.9rem; padding: 0; }
.form .check input { width: 18px; height: 18px; margin: 2px 0 0 0; flex: 0 0 auto; }
.form .btn { align-self: flex-start; }
.form .nota { font-size: 0.78rem; line-height: 1.5; margin: 4px 0 0; opacity: 0.85; }
.pie { padding: 48px 24px 56px; font-size: 0.92rem; }
.pie-in { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px; }
.pie-t { margin: 0 0 10px; font-weight: 600; }
.pie-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.pie-lista a { text-decoration: none; padding: 4px 0; display: inline-block; }
.pie-lista a:hover, .pie-lista a[aria-current] { text-decoration: underline; }
.pie-emp p { margin: 0 0 10px; }
.legal { max-width: 760px; margin: 0 auto; padding: 72px 24px 96px; }
.legal h1 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); margin: 0 0 24px; line-height: 1.15; }
.legal h2 { font-size: 1.2rem; margin: 36px 0 10px; }
.legal .fecha { margin-top: 40px; font-size: 0.9rem; opacity: 0.8; }
.legal .aviso-trad { font-size: 0.9rem; padding: 12px 14px; border-left: 3px solid currentColor; opacity: 0.85; }

.logo-anim { display: block; overflow: hidden; width: var(--w-icono); transition: width 0.55s cubic-bezier(0.2, 0.7, 0.2, 1); }
.logo-anim svg { display: block; max-width: none; }
.logo-anim svg > g path { opacity: 0; transition: opacity 0.35s ease; }
.logo:hover .logo-anim, .logo:focus-visible .logo-anim { width: var(--w-total); }
.logo:hover .logo-anim svg > g path, .logo:focus-visible .logo-anim svg > g path { opacity: 1; }
.logo:hover .logo-anim svg > g path:nth-child(1), .logo:focus-visible .logo-anim svg > g path:nth-child(1) { transition-delay: 0.04s; }
.logo:hover .logo-anim svg > g path:nth-child(2), .logo:focus-visible .logo-anim svg > g path:nth-child(2) { transition-delay: 0.08s; }
.logo:hover .logo-anim svg > g path:nth-child(3), .logo:focus-visible .logo-anim svg > g path:nth-child(3) { transition-delay: 0.12s; }
.logo:hover .logo-anim svg > g path:nth-child(4), .logo:focus-visible .logo-anim svg > g path:nth-child(4) { transition-delay: 0.16s; }
.logo:hover .logo-anim svg > g path:nth-child(5), .logo:focus-visible .logo-anim svg > g path:nth-child(5) { transition-delay: 0.20s; }
.logo:hover .logo-anim svg > g path:nth-child(6), .logo:focus-visible .logo-anim svg > g path:nth-child(6) { transition-delay: 0.24s; }
.logo:hover .logo-anim svg > g path:nth-child(7), .logo:focus-visible .logo-anim svg > g path:nth-child(7) { transition-delay: 0.28s; }
.logo:hover .logo-anim svg > g path:nth-child(8), .logo:focus-visible .logo-anim svg > g path:nth-child(8) { transition-delay: 0.32s; }
.logo:hover .logo-anim svg > g path:nth-child(9), .logo:focus-visible .logo-anim svg > g path:nth-child(9) { transition-delay: 0.36s; }
.logo:hover .logo-anim svg > g path:nth-child(10), .logo:focus-visible .logo-anim svg > g path:nth-child(10) { transition-delay: 0.40s; }
.logo:hover .logo-anim svg > g path:nth-child(11), .logo:focus-visible .logo-anim svg > g path:nth-child(11) { transition-delay: 0.44s; }
.logo:hover .logo-anim svg > g path:nth-child(12), .logo:focus-visible .logo-anim svg > g path:nth-child(12) { transition-delay: 0.48s; }
.logo:hover .logo-anim svg > g path:nth-child(13), .logo:focus-visible .logo-anim svg > g path:nth-child(13) { transition-delay: 0.52s; }

@media (hover: none) { .logo-anim { width: var(--w-total); } .logo-anim svg > g path { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .logo-anim, .logo-anim svg > g path { transition: none; } }

:root { --acc-d: #C09848; --acc-l: #A8802E; --acc-t: #7A5C1E; --oliva: #2F3526; --sand: #F4ECDF; --arena: #DDD2C0; --tinta: #1A1E24; --gris: #4A4A44; --linea: #D8D2C6; }
body { margin: 0; font-family: Inter, "Helvetica Neue", Arial, sans-serif; color: var(--tinta); background: #FFFFFF; line-height: 1.6; -webkit-font-smoothing: antialiased; }
:focus-visible { outline: 3px solid var(--acc-d); outline-offset: 3px; }
.cont { max-width: 1160px; margin: 0 auto; padding: 0 32px; }
.osc { background: var(--oliva); color: var(--sand); }
.top { display: grid; grid-template-columns: minmax(max-content, 1fr) auto minmax(max-content, 1fr); gap: 20px; align-items: center; padding-top: 22px; padding-bottom: 22px; }
.top .logo { justify-self: start; }
.top .logo { display: block; }
.top nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 28px; font-size: 15px; font-weight: 500; }
.top nav a { text-decoration: none; padding: 12px 0; }
.top nav a:hover { color: var(--acc-d); }
.top .idiomas-sel { justify-self: end; }
.hero { overflow: hidden; }
.hero .cont { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 48px; align-items: end; padding-top: 56px; }
.hero-txt { padding-bottom: 96px; display: flex; flex-direction: column; gap: 24px; }
.hero h1 { margin: 0; font-size: clamp(2.3rem, 4.8vw, 4rem); line-height: 1.06; letter-spacing: -0.025em; font-weight: 700; }
.hero p { margin: 0; max-width: 36rem; font-size: 1.15rem; color: var(--arena); }
.hero-ico { justify-self: end; width: min(420px, 80%); margin-bottom: -110px; display: block; }
.acciones { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.btn { display: inline-block; background: var(--acc-d); color: var(--oliva); text-decoration: none; font-weight: 600; font-size: 1rem; padding: 14px 26px; border-radius: 2px; border: 0; cursor: pointer; font-family: inherit; }
.btn:hover { filter: brightness(1.06); }
.enl { color: var(--sand); text-decoration: none; font-weight: 600; padding: 12px 2px; border-bottom: 1px solid var(--arena); }
.sec { padding: 104px 0 88px; }
.sec + .sec { padding-top: 0; }
.sec h2 { margin: 0 0 14px; font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.15; letter-spacing: -0.015em; }
.sec .intro { margin: 0 0 48px; max-width: 42rem; font-size: 1.08rem; color: var(--gris); }
.rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 40px; }
.item { border-top: 2px solid var(--acc-l); padding-top: 22px; display: flex; flex-direction: column; gap: 10px; }
.item h3 { margin: 0; font-size: 1.3rem; }
.item p { margin: 0; color: var(--gris); }
.item a.mas { margin-top: 6px; font-weight: 600; color: var(--acc-t); text-decoration: none; }
.item a.mas:hover { text-decoration: underline; }
.linea-ico { width: 44px; height: 44px; display: block; }
.soon { margin: 8px 0 0; font-size: clamp(3rem, 9vw, 7rem); font-weight: 700; letter-spacing: 0.08em; line-height: 1; color: var(--acc-t); }
.lista:has(.soon) { border-top: 0; }
.lista { border-top: 1px solid var(--linea); }
.fila-l { display: flex; flex-wrap: wrap; gap: 8px 40px; align-items: baseline; padding: 26px 0; border-bottom: 1px solid var(--linea); }
.fila-l .n { flex: 0 0 220px; font-weight: 700; font-size: 1.35rem; }
.fila-l .d { flex: 1 1 320px; color: var(--gris); }
.fila-l a { font-weight: 600; color: var(--acc-t); padding: 8px 0; }
.pasos { list-style: none; margin: 0; padding: 0; counter-reset: p; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px; }
.pasos li { counter-increment: p; display: flex; flex-direction: column; gap: 8px; }
.pasos li::before { content: counter(p, decimal-leading-zero); font-weight: 700; font-size: 0.95rem; color: var(--acc-t); letter-spacing: 0.08em; }
.pasos strong { font-size: 1.15rem; }
.pasos span { color: var(--gris); }
.contacto { padding: 96px 0; }
.contacto .cont { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 56px; align-items: start; }
.contacto h2 { margin: 0 0 16px; font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.15; }
.contacto p { color: var(--arena); margin: 0 0 12px; }
.contacto a { color: var(--sand); }
.form input[type=text], .form input[type=email], .form input[type=tel], .form textarea { border: 1px solid #8C8676; background: #FFFFFF; color: var(--tinta); }
.form .check input { accent-color: var(--acc-d); }
.pie { border-top: 1px solid var(--linea); color: var(--gris); }
.pie-t, .pie-lista a:hover, .pie-lista a[aria-current] { color: var(--tinta); }
.legal p, .legal li { color: #33332E; }
.legal a { color: var(--acc-t); }
@media (max-width: 860px) {
  .top { grid-template-columns: 1fr auto; }
  .top nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; gap: 20px; }
}
@media (max-width: 720px) {
  .cont { padding-left: 20px; padding-right: 20px; }
  .hero-txt { padding-bottom: 40px; }
  .hero-ico { width: 60%; margin-bottom: -60px; }
  .sec { padding: 72px 0 64px; }
}

.logo-anim { display: block; overflow: hidden; width: var(--w-icono); transition: width 0.55s cubic-bezier(0.2, 0.7, 0.2, 1); }
.logo-anim svg { display: block; max-width: none; }
.logo-anim svg > g path { opacity: 0; transition: opacity 0.35s ease; }
.logo:hover .logo-anim, .logo:focus-visible .logo-anim { width: var(--w-total); }
.logo:hover .logo-anim svg > g path, .logo:focus-visible .logo-anim svg > g path { opacity: 1; }
.logo:hover .logo-anim svg > g path:nth-child(1), .logo:focus-visible .logo-anim svg > g path:nth-child(1) { transition-delay: 0.04s; }
.logo:hover .logo-anim svg > g path:nth-child(2), .logo:focus-visible .logo-anim svg > g path:nth-child(2) { transition-delay: 0.08s; }
.logo:hover .logo-anim svg > g path:nth-child(3), .logo:focus-visible .logo-anim svg > g path:nth-child(3) { transition-delay: 0.12s; }
.logo:hover .logo-anim svg > g path:nth-child(4), .logo:focus-visible .logo-anim svg > g path:nth-child(4) { transition-delay: 0.16s; }
.logo:hover .logo-anim svg > g path:nth-child(5), .logo:focus-visible .logo-anim svg > g path:nth-child(5) { transition-delay: 0.20s; }
.logo:hover .logo-anim svg > g path:nth-child(6), .logo:focus-visible .logo-anim svg > g path:nth-child(6) { transition-delay: 0.24s; }
.logo:hover .logo-anim svg > g path:nth-child(7), .logo:focus-visible .logo-anim svg > g path:nth-child(7) { transition-delay: 0.28s; }
.logo:hover .logo-anim svg > g path:nth-child(8), .logo:focus-visible .logo-anim svg > g path:nth-child(8) { transition-delay: 0.32s; }
.logo:hover .logo-anim svg > g path:nth-child(9), .logo:focus-visible .logo-anim svg > g path:nth-child(9) { transition-delay: 0.36s; }
.logo:hover .logo-anim svg > g path:nth-child(10), .logo:focus-visible .logo-anim svg > g path:nth-child(10) { transition-delay: 0.40s; }
.logo:hover .logo-anim svg > g path:nth-child(11), .logo:focus-visible .logo-anim svg > g path:nth-child(11) { transition-delay: 0.44s; }
.logo:hover .logo-anim svg > g path:nth-child(12), .logo:focus-visible .logo-anim svg > g path:nth-child(12) { transition-delay: 0.48s; }
.logo:hover .logo-anim svg > g path:nth-child(13), .logo:focus-visible .logo-anim svg > g path:nth-child(13) { transition-delay: 0.52s; }

@media (hover: none) { .logo-anim { width: var(--w-total); } .logo-anim svg > g path { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .logo-anim, .logo-anim svg > g path { transition: none; } }

html, body { overflow-x: clip; }
html.lenis, html.lenis body { height: auto; } .lenis.lenis-smooth { scroll-behavior: auto !important; } .lenis.lenis-stopped { overflow: hidden; }
header.top { position: fixed; top: 0; left: 0; right: 0; z-index: 50; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 32px; color: var(--sand); transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1), background-color 0.35s ease; }
header.top.con-fondo { background: rgba(47, 53, 38, 0.88); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
header.top.oculto { transform: translateY(-115%); }
header.top .logo { display: block; }
header.top .der { display: flex; align-items: center; gap: 22px; }
header.top .idiomas-sel a { color: var(--sand); }
.menu-btn { display: inline-flex; align-items: center; gap: 14px; font-size: 14px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sand); text-decoration: none; padding: 12px 0; }
.hamb { position: relative; display: inline-block; width: 28px; height: 10px; }
.hamb::before, .hamb::after { content: ""; position: absolute; left: 0; right: 0; height: 2px; background: currentColor; transition: transform 0.35s ease; }
.hamb::before { top: 0; } .hamb::after { bottom: 0; }
.menu-btn:hover .hamb::before { transform: translateX(6px); } .menu-btn:hover .hamb::after { transform: translateX(-6px); }
.velo { position: fixed; inset: 0; z-index: 70; background: rgba(20, 24, 16, 0.5); opacity: 0; pointer-events: none; transition: opacity 0.5s ease; }
.cajon { position: fixed; top: 0; right: 0; bottom: 0; z-index: 80; width: min(480px, 92vw); background: #1F2419; color: var(--sand); display: flex; flex-direction: column; padding: 22px 40px 40px; overflow: auto; transform: translateX(100%); transition: transform 0.7s cubic-bezier(0.77, 0, 0.18, 1); }
html.menu-abierto .cajon, .cajon:target { transform: none; }
html.menu-abierto .velo { opacity: 1; pointer-events: auto; }
.cajon-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 56px; }
.logo-cajon { display: block; width: auto !important; }
.menu-cerrar { color: var(--sand); text-decoration: none; font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 10px 0; }
.cajon ol { list-style: none; margin: 0; padding: 0; counter-reset: m; display: flex; flex-direction: column; gap: 4px; }
.cajon li { counter-increment: m; opacity: 0; transform: translateX(40px); transition: opacity 0.5s ease, transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); }
html.menu-abierto .cajon li, .cajon:target li { opacity: 1; transform: none; }
html.menu-abierto .cajon li:nth-child(1) { transition-delay: 0.22s; }
html.menu-abierto .cajon li:nth-child(2) { transition-delay: 0.29s; }
html.menu-abierto .cajon li:nth-child(3) { transition-delay: 0.36s; }
html.menu-abierto .cajon li:nth-child(4) { transition-delay: 0.43s; }
html.menu-abierto .cajon li:nth-child(5) { transition-delay: 0.50s; }
html.menu-abierto .cajon li:nth-child(6) { transition-delay: 0.57s; }
html.menu-abierto .cajon li:nth-child(7) { transition-delay: 0.64s; }

.cajon ol a { display: flex; align-items: baseline; gap: 18px; color: var(--sand); text-decoration: none; font-size: clamp(26px, 3.2vw, 38px); font-weight: 300; line-height: 1.25; padding: 6px 0; }
.cajon ol a::before { content: counter(m, decimal-leading-zero); font-size: 13px; font-weight: 600; letter-spacing: 0.08em; color: var(--acc-d); }
.cajon ol a:hover { color: var(--acc-d); }
.cajon-pie { margin-top: auto; padding-top: 48px; display: flex; flex-direction: column; gap: 10px; font-size: 15px; color: #B9B2A3; }
.cajon-pie a { color: var(--sand); text-decoration: none; } .cajon-pie a:hover { color: var(--acc-d); }
.cajon .idiomas-sel { margin-bottom: 8px; } .cajon .idiomas-sel a { color: var(--sand); padding-left: 0; padding-right: 12px; }
.hero-futura { min-height: 100vh; display: flex; align-items: center; }
.hero-futura .cont { width: 100%; max-width: 1320px; padding-top: 120px; padding-bottom: 80px; }
.hero-futura .hf-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 56px; align-items: center; }
.hf-ico { width: min(340px, 25vw); height: auto; display: block; }
.hero-futura h1.hero-claim, .hero-futura p.hero-sub { margin: 0; font-size: clamp(2.3rem, 5vw, 5.2rem); line-height: 1.04; letter-spacing: -0.035em; font-weight: 700; color: var(--sand); text-wrap: balance; max-width: none; }
.hero-claim .br { color: var(--acc-d); }
.hero-futura p.hero-sub { margin-top: 0.35em; }
.hero-futura p.hero-lineas { margin: 40px 0 0; font-weight: 500; font-size: clamp(1rem, 1.4vw, 1.2rem); letter-spacing: 0.04em; color: var(--arena); }
body.solo-hero .hero-futura { min-height: 100vh; }
.cajon-legal { font-size: 13px; margin-top: 10px; } .cajon-legal a { color: #B9B2A3 !important; }

.apertura { display: none; }
html.intro-on .apertura { display: block; position: fixed; inset: 0; z-index: 100; }
.apertura .panel { position: absolute; inset: 0; background: var(--oliva); will-change: transform; }
.panel-a { clip-path: polygon(0 0, 100% 0, 100% 53%, 88% 47%, 76% 56%, 63% 41%, 52% 52%, 46% 49%, 33% 60%, 20% 46%, 9% 55%, 0 50%); }
.panel-b { clip-path: polygon(0 49.6%, 9% 54.6%, 20% 45.6%, 33% 59.6%, 46% 48.6%, 52% 51.6%, 63% 40.6%, 76% 55.6%, 88% 46.6%, 100% 52.6%, 100% 100%, 0 100%); }
.ap-escena { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 24px; text-align: center; color: var(--sand); }
.ap-claim, .ap-linea2 { margin: 0; font-size: clamp(2rem, 6vw, 5.4rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1.05; white-space: nowrap; opacity: 0; }
.w-cambio { display: inline-grid; vertical-align: top; justify-items: center; } .w-cambio > span { grid-area: 1 / 1; } .w-b { color: var(--acc-d); opacity: 0; }
.w-cambio:first-child { justify-items: end; }

.ap-lineas { margin: 6px 0 0; font-size: clamp(0.95rem, 1.4vw, 1.15rem); font-weight: 600; }
.ap-lineas span { display: inline-block; opacity: 0; }
.ap-logo { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; pointer-events: none; }
.intro-logo { width: min(620px, 80vw); opacity: 0; will-change: transform; }
.intro-logo svg { width: 100%; height: auto; display: block; overflow: visible; }
.intro-logo .intro-icono, .intro-logo svg > g path { opacity: 0; }
.ap-saltar { position: absolute; right: 28px; bottom: 24px; z-index: 3; background: none; border: 1px solid rgba(244, 236, 223, 0.4); color: var(--sand); font: inherit; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; padding: 10px 18px; border-radius: 100px; cursor: pointer; }
.ap-saltar:hover { border-color: var(--sand); }
html.intro-on body { overflow: hidden; }

.fut-principios { background: var(--sand); padding: 120px 0 110px; }
.fut-principios .pasos { gap: 48px; }
.fut-principios .pasos li { border-top: 1px solid #CDBF9F; padding-top: 22px; }
.fut-principios .pasos li::before { font-size: 2.6rem; font-weight: 300; letter-spacing: 0; color: var(--acc-l); }
.fut-principios .intro { color: #5A5444; }

.fl-sec { background: var(--oliva); padding: 120px 0 140px; }
.fl-sec .cont { display: flex; flex-direction: column; gap: 20px; }
.fl-tile { display: block; text-decoration: none; border-top-left-radius: 56px 44px; border-bottom-right-radius: 56px 44px; }
.fl-in { height: 100%; display: flex; flex-direction: column; gap: 14px; padding: 40px 40px 36px; border-radius: inherit; background: var(--fl-bg); color: var(--fl-txt); transition: box-shadow 0.4s ease; will-change: transform; }
.fl-ico { width: 52px; height: 52px; color: var(--fl-tit); display: block; }
.fl-in h2, .fl-in h3 { margin: 0; color: var(--fl-tit); font-weight: 400; letter-spacing: -0.02em; line-height: 1.1; }
.fl-in h3 { font-size: clamp(1.6rem, 2.4vw, 2.1rem); } .fl-in h3 strong { font-weight: 700; }
.fl-in p { margin: 0; color: var(--fl-txt); font-size: 1.04rem; line-height: 1.55; }
.fl-mas { margin-top: auto; padding-top: 18px; display: inline-flex; align-items: center; gap: 10px; color: var(--fl-tit); font-weight: 700; font-size: 0.98rem; }
.fl-mas svg { transition: transform 0.35s ease; }
.fl-tile:hover .fl-mas svg, .fl-tile:focus-visible .fl-mas svg { transform: translateX(6px); }
.fl-tile:hover .fl-in { box-shadow: 0 28px 50px rgba(0, 0, 0, 0.35); }
.fl-futura { --fl-bg: #C09848; --fl-tit: #2F3526; --fl-txt: #45360F; }
.fl-futura .fl-in { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.4fr); align-items: center; gap: 36px; padding: 44px 48px; }
.fl-futura h2 { font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 700; }
.fl-futura .fl-ico { width: 72px; height: 72px; }
.fl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.fl-grid .fl-tile { min-height: 380px; }
.fl-consulting { --fl-bg: #C4D30F; --fl-tit: #2F3526; --fl-txt: #3F4708; }
.fl-ventures { --fl-bg: #3CC7C0; --fl-tit: #0A3438; --fl-txt: #0F4A4F; }
.fl-systems { --fl-bg: #B9A0F0; --fl-tit: #24164D; --fl-txt: #3A2878; }
.fl-tile:focus-visible { outline: 3px solid var(--sand); outline-offset: 4px; }
@media (max-width: 900px) { .fl-grid { grid-template-columns: 1fr; } .fl-grid .fl-tile { min-height: 0; } .fl-futura .fl-in { grid-template-columns: 1fr; gap: 16px; } }

.hf-bajar { position: absolute; left: calc(50% - 28px); bottom: 26px; width: 56px; height: 76px; display: flex; justify-content: center; align-items: flex-end; color: var(--sand); z-index: 6; opacity: 0.85; transition: opacity 0.6s ease; }
.hf-bajar:hover { opacity: 1; }
.hf-bajar-in { display: flex; flex-direction: column; align-items: center; gap: 6px; animation: hf-bajar 2.4s ease-in-out infinite; }
.hf-bajar-linea { width: 1px; height: 34px; background: linear-gradient(to bottom, rgba(244, 236, 223, 0), rgba(244, 236, 223, 0.9)); }
@keyframes hf-bajar { 0%, 100% { transform: translateY(-6px); opacity: 0.55; } 50% { transform: translateY(6px); opacity: 1; } }
html.intro-on .hf-bajar, html.fut-escena .hf-bajar, html.fut-logo-arriba .hf-bajar { opacity: 0; pointer-events: none; }
html.intro-on .hf-bajar { transition: none; }
@media (prefers-reduced-motion: reduce) { .hf-bajar-in { animation: none; } }

.hero-futura { position: relative; overflow: hidden; }
.hero-futura .hf-sitio { width: min(420px, 31vw); aspect-ratio: 1 / 1; }
.hf-fallback { width: 100%; height: auto; display: block; }
html.js .hf-fallback { visibility: hidden; }
.hf-logo { position: fixed; left: 0; top: 0; width: 1000px; z-index: 60; pointer-events: none; visibility: hidden; }
html:not(.js) .hf-logo { display: none; }
.hf-logo svg { width: 100%; height: auto; display: block; overflow: visible; }
.hf-float { will-change: transform; filter: drop-shadow(0 28px 34px rgba(0, 0, 0, 0.38)); }
.hf-logo svg > g path, .hf-cresta, .hf-circulo { opacity: 0; }
.hero-claim .w-a { opacity: 0; } .hero-claim .w-b { opacity: 1; }
html.intro-on .hf-txt > *, html.intro-on header.top .der { visibility: hidden; }
html[data-sitio="futura"]:not(.fut-logo-arriba) header.top .logo { visibility: hidden; pointer-events: none; }
html.fut-logo-arriba .hf-logo { visibility: hidden !important; }
.hero-futura .ap-saltar { display: none; }
html.intro-on .hero-futura .ap-saltar { display: block; }
@media (max-width: 720px) { .hero-futura .hf-sitio { width: 46vw; order: -1; } }
.contacto-foto { position: relative; overflow: hidden; padding: 0; }
.contacto-foto .cont { position: relative; z-index: 1; min-height: 100vh; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; padding-top: 120px; padding-bottom: 110px; }
.cf-foto { position: absolute; left: 0; top: 0; bottom: 0; width: 47%; overflow: hidden; border-bottom-right-radius: 180px 130px; }
.cf-img { width: 100%; height: 100%; object-fit: cover; object-position: 42% 22%; display: block; }
.cf-foto::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgba(31, 36, 25, 0.94) 0%, rgba(31, 36, 25, 0.55) 34%, rgba(31, 36, 25, 0) 62%); }
.cf-txt { align-self: end; position: relative; padding-bottom: 8px; max-width: 30rem; }
.cf-txt h2 { text-shadow: 0 2px 26px rgba(0, 0, 0, 0.4); }
.cf-txt p { color: #E7E0D2 !important; }
@media (max-width: 900px) {
  .contacto-foto .cont { display: block; min-height: 0; padding-top: 0; padding-bottom: 80px; }
  .cf-foto { position: relative; width: 100%; height: 62vh; border-bottom-right-radius: 90px 70px; }
  .cf-txt { margin-top: -190px; padding-bottom: 40px; }
}
@media (max-width: 720px) { header.top { padding: 12px 18px; } .hero-futura .cont { padding-top: 104px; } .hero-futura .hf-grid { grid-template-columns: 1fr; gap: 32px; } .hf-ico { width: 46vw; order: -1; } .ap-claim, .ap-linea2 { white-space: normal; } }
