/* ===== Intros conceptuales de MOZART (una sola pantalla por marca) ===== */
/* Estado base = pantalla final. Con html.play se reproduce la intro (fill both). */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body { overflow: hidden; -webkit-font-smoothing: antialiased; }
img { display: block; }
a { color: inherit; text-decoration: none; }
.escena { position: fixed; inset: 0; overflow: hidden; transition: opacity .6s ease; }
.oculto .escena { opacity: 0; }
.foto { position: absolute; inset: 0; }
.foto img { width: 100%; height: 100%; object-fit: cover; }
.velo { position: absolute; inset: 0; pointer-events: none; }
.intro { position: absolute; inset: 0; z-index: 30; display: grid; place-items: center; opacity: 0; visibility: hidden; }
.intro__centro { display: flex; flex-direction: column; align-items: center; text-align: center; }
.nav { position: absolute; z-index: 10; top: 0; left: 0; right: 0; display: flex; align-items: center; gap: 2.6vw; padding: 2.3vw 4.4vw; }
.nav__logo { margin-right: auto; }
.nav__links { display: flex; gap: 2.4vw; font-size: max(11px, .98vw); }
.texto { position: absolute; z-index: 5; left: 4.4vw; bottom: 9vh; max-width: 52vw; }
.linea { display: block; overflow: hidden; padding-bottom: .1em; }
.linea > span { display: inline-block; }
.btns { display: flex; gap: .9vw; margin-top: 2.6vw; }
.btn { display: inline-flex; align-items: center; gap: .6vw; padding: 1.05vw 2vw; border-radius: 99px; font-size: max(11px, 1vw); font-weight: 500; }

@keyframes salirIntro { 0%, 80% { opacity: 1; visibility: visible; } 100% { opacity: 0; visibility: hidden; } }
@keyframes subir { from { transform: translateY(110%); } to { transform: none; } }
@keyframes aparecer { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes bajar { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: none; } }
@keyframes trazo { from { clip-path: inset(-20% 100% -20% 0); } to { clip-path: inset(-20% -5% -20% 0); } }
@keyframes barra { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes girar { to { transform: rotate(360deg); } }

.play .intro { animation: salirIntro 3.2s linear both; }
.play .nav { animation: bajar 1.1s cubic-bezier(.22,1,.36,1) 3.5s both; }
.play .texto .eyebrow { animation: aparecer 1s cubic-bezier(.22,1,.36,1) 3.5s both; }
.play .texto .linea > span { animation: subir 1.2s cubic-bezier(.22,1,.36,1) 3.6s both; }
.play .texto .linea:nth-of-type(2) > span { animation-delay: 3.75s; }
.play .texto p, .play .texto .btns { animation: aparecer 1.1s cubic-bezier(.22,1,.36,1) 4s both; }
.play .texto .btns { animation-delay: 4.15s; }

.quieto .intro, .quieto .transicion { display: none; }
.pausa *, .pausa *::before, .pausa *::after { animation-play-state: paused !important; }

/* ============ BRASA · restaurante nikkei ============ */
.brasa { background: #0a0605; color: #f6e8d8; font-family: "Manrope", system-ui, sans-serif; }
.brasa .intro { background: radial-gradient(60% 60% at 50% 60%, #2a0f07, #0a0605 70%); }
.brasa .intro__logo { font-family: "Kaushan Script", cursive; font-size: 10.5vw; line-height: 1.1; color: #ffb35c; text-shadow: 0 0 2vw rgba(255, 106, 43, .75), 0 0 6vw rgba(255, 60, 0, .35); }
.brasa .intro__sub { margin-top: .6vw; font-size: max(10px, .85vw); letter-spacing: .6em; color: rgba(246, 232, 216, .7); }
.brasa .intro__barra { position: relative; width: 22vw; height: 2px; margin-top: 2.6vw; background: rgba(255, 179, 92, .15); overflow: hidden; }
.brasa .intro__barra i { position: absolute; inset: 0; transform-origin: left; background: linear-gradient(90deg, #ff3d00, #ffb35c); box-shadow: 0 0 12px #ff6a2b; }
.brasa .intro__txt { margin-top: 1.1vw; font-size: max(9px, .75vw); letter-spacing: .4em; text-transform: uppercase; color: rgba(246, 232, 216, .55); }
.play .brasa .intro__logo { animation: trazo 1.5s cubic-bezier(.65,0,.35,1) .3s both; }
.play .brasa .intro__barra i { animation: barra 2s cubic-bezier(.65,0,.35,1) .5s both; }
.brasa .llamarada {
  position: absolute; z-index: 31; left: 50%; bottom: -40vh; width: 90vw; height: 90vw; margin-left: -45vw; border-radius: 50%;
  background: radial-gradient(circle, #ffd9a0 0%, #ff9a3c 25%, #ff5a1f 48%, rgba(140, 25, 0, .55) 64%, transparent 74%);
  filter: blur(3vw); opacity: 0; transform: scale(0); pointer-events: none;
}
@keyframes llamarada { 0% { opacity: 0; transform: scale(.5); } 30% { opacity: .95; transform: scale(1.5); } 100% { opacity: 0; transform: scale(3.6); } }
.play .brasa .llamarada { animation: llamarada 1.3s cubic-bezier(.5,0,.3,1) 2.55s both; }
.brasa .foto img { transform: scale(1.05); }
@keyframes brasaFoto { from { transform: scale(1.35); filter: brightness(.3) saturate(1.3); } to { transform: scale(1.05); filter: none; } }
@keyframes respira { from { transform: scale(1.05); } to { transform: scale(1.12) translateX(-1%); } }
.play .brasa .foto img { animation: brasaFoto 3.6s cubic-bezier(.22,1,.36,1) 2.8s both, respira 14s ease-in-out 6.4s infinite alternate; }
.brasa .velo { background: linear-gradient(90deg, rgba(10,6,5,.94) 0%, rgba(10,6,5,.72) 34%, rgba(10,6,5,.1) 66%), linear-gradient(0deg, rgba(10,6,5,.85), transparent 45%); }
.brasa .nav__logo { font-family: "Kaushan Script", cursive; font-size: 3vw; color: #ffb35c; }
.brasa .nav__links { text-transform: uppercase; letter-spacing: .18em; font-size: max(10px, .78vw); color: rgba(246,232,216,.8); }
.brasa .nav__cta { padding: .7vw 1.6vw; border: 1px solid #ff6a2b; border-radius: 99px; font-size: max(10px, .85vw); color: #ffcf99; }
.brasa .texto { max-width: 64vw; }
.brasa .eyebrow { font-size: max(10px, .8vw); letter-spacing: .38em; color: #ff8a4a; text-transform: uppercase; }
.brasa h1 { margin-top: 1.2vw; font-family: "Kaushan Script", cursive; font-weight: 400; font-size: 7vw; line-height: .98; color: #fff3e4; text-shadow: 0 .4vw 3vw rgba(0,0,0,.5); }
.brasa h1 em { font-style: normal; color: #ffb35c; }
.brasa .texto p { margin-top: 1.6vw; max-width: 34vw; font-size: max(12px, 1.2vw); line-height: 1.6; color: rgba(246,232,216,.78); }
.brasa .btn--a { background: linear-gradient(135deg, #ff8a3d, #ff4d12); color: #1a0703; box-shadow: 0 1vw 3vw -1vw rgba(255, 77, 18, .8); }
.brasa .btn--b { border: 1px solid rgba(246,232,216,.35); }
.brasa .sello { position: absolute; z-index: 6; right: 5vw; bottom: 7vh; width: 11vw; height: 11vw; }
.brasa .sello svg { width: 100%; height: 100%; animation: girar 18s linear infinite; }
.brasa .sello text { fill: #ffcf99; font: 600 9.5px "Manrope", sans-serif; letter-spacing: 3.2px; }
.brasa .sello b { position: absolute; inset: 0; display: grid; place-items: center; font-family: "Kaushan Script", cursive; font-weight: 400; font-size: 2.6vw; color: #ff8a4a; }
.play .brasa .sello { animation: aparecer 1.2s ease 4.5s both; }
.chispas { position: absolute; inset: 0; pointer-events: none; }
.chispas i { position: absolute; bottom: -2vh; width: .35vw; height: .35vw; border-radius: 50%; background: #ffb35c; box-shadow: 0 0 .8vw #ff6a2b, 0 0 1.6vw #ff3d00; opacity: 0; animation: chispa 5s linear infinite; }
@keyframes chispa { 0% { opacity: 0; transform: translate(0, 0); } 10% { opacity: 1; } 70% { opacity: .8; } 100% { opacity: 0; transform: translate(4vw, -95vh); } }
.chispas i:nth-child(1) { left: 12%; animation-delay: -.2s; } .chispas i:nth-child(2) { left: 22%; animation-delay: -1.4s; animation-duration: 6s; }
.chispas i:nth-child(3) { left: 31%; animation-delay: -2.6s; } .chispas i:nth-child(4) { left: 43%; animation-delay: -.9s; animation-duration: 4.2s; }
.chispas i:nth-child(5) { left: 51%; animation-delay: -3.3s; } .chispas i:nth-child(6) { left: 58%; animation-delay: -1.9s; animation-duration: 5.6s; }
.chispas i:nth-child(7) { left: 66%; animation-delay: -4.1s; } .chispas i:nth-child(8) { left: 74%; animation-delay: -.5s; animation-duration: 6.4s; }
.chispas i:nth-child(9) { left: 83%; animation-delay: -2.2s; } .chispas i:nth-child(10) { left: 91%; animation-delay: -3.7s; animation-duration: 4.6s; }
.chispas i:nth-child(odd) { width: .22vw; height: .22vw; }
.chispas--frente { z-index: 7; opacity: .6; }

/* ============ ALTAVISTA · inmobiliaria ============ */
.altavista { background: #06080c; color: #f3efe7; font-family: "Jost", system-ui, sans-serif; font-weight: 300; }
.altavista .intro { background: #05070a; }
.altavista .intro__logo { font-family: "Italiana", serif; font-size: 6.6vw; letter-spacing: .32em; margin-right: -.32em; color: #efe6d4; }
.altavista .intro__sub { margin-top: .4vw; font-size: max(9px, .8vw); letter-spacing: .9em; margin-right: -.9em; color: #c8a86b; }
.altavista .intro__barra { width: 24vw; height: 1px; margin-top: 3vw; background: rgba(200,168,107,.18); position: relative; overflow: hidden; }
.altavista .intro__barra i { position: absolute; inset: 0; transform-origin: left; background: linear-gradient(90deg, transparent, #e7cf9c 70%, #fff); box-shadow: 0 0 10px #e7cf9c; }
.altavista .intro__txt { margin-top: 1.2vw; font-size: max(8px, .66vw); letter-spacing: .5em; color: rgba(243,239,231,.5); }
@keyframes espaciar { from { letter-spacing: .9em; opacity: 0; } to { letter-spacing: .32em; opacity: 1; } }
.play .altavista .intro__logo { animation: espaciar 2s cubic-bezier(.22,1,.36,1) .2s both; }
.play .altavista .intro__barra i { animation: barra 2.1s cubic-bezier(.65,0,.35,1) .5s both; }
.altavista .niebla { position: absolute; z-index: 31; top: -20%; bottom: -20%; width: 75%; pointer-events: none; opacity: 0;
  background: radial-gradient(closest-side, rgba(225,228,232,.95), rgba(190,196,204,.75) 55%, transparent); filter: blur(3vw); }
.altavista .niebla--a { left: -10%; } .altavista .niebla--b { right: -10%; }
@keyframes nieblaA { 0% { opacity: 0; transform: translateX(15%) scale(1.2); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateX(-70%) scale(1.5); } }
@keyframes nieblaB { 0% { opacity: 0; transform: translateX(-15%) scale(1.2); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateX(70%) scale(1.5); } }
.play .altavista .niebla--a { animation: nieblaA 2.2s cubic-bezier(.5,0,.3,1) 2.5s both; }
.play .altavista .niebla--b { animation: nieblaB 2.2s cubic-bezier(.5,0,.3,1) 2.5s both; }
@keyframes altaFoto { from { transform: scale(1.4) translateY(4%); } to { transform: scale(1.06); } }
@keyframes deriva { from { transform: scale(1.06); } to { transform: scale(1.1) translateX(1.5%); } }
.altavista .foto img { transform: scale(1.06); }
.play .altavista .foto img { animation: altaFoto 4.4s cubic-bezier(.22,1,.36,1) 2.6s both, deriva 16s ease-in-out 7s infinite alternate; }
.altavista .velo { background: linear-gradient(90deg, rgba(6,8,12,.85) 0%, rgba(6,8,12,.45) 40%, transparent 70%), linear-gradient(0deg, rgba(6,8,12,.92), transparent 50%); }
.altavista .nav__logo { font-family: "Italiana", serif; font-size: 2.1vw; letter-spacing: .3em; }
.altavista .nav__links { font-size: max(10px, .9vw); color: rgba(243,239,231,.78); }
.altavista .nav__cta { padding: .7vw 1.5vw; border: 1px solid rgba(231,207,156,.7); font-size: max(9px, .75vw); letter-spacing: .25em; color: #e7cf9c; }
.altavista .texto { bottom: 30vh; }
.altavista .eyebrow { font-size: max(9px, .78vw); letter-spacing: .45em; color: #c8a86b; }
.altavista h1 { margin-top: 1.2vw; font-family: "Italiana", serif; font-weight: 400; font-size: 6.8vw; line-height: 1; }
.altavista .texto p { margin-top: 1.4vw; max-width: 30vw; font-size: max(12px, 1.15vw); line-height: 1.6; color: rgba(243,239,231,.72); }
.altavista .buscador { position: absolute; z-index: 6; left: 4.4vw; bottom: 9vh; display: flex; align-items: stretch; background: rgba(12,14,19,.6); border: 1px solid rgba(231,207,156,.25); backdrop-filter: blur(14px); }
.altavista .buscador div { padding: 1.1vw 2.2vw; border-right: 1px solid rgba(231,207,156,.18); }
.altavista .buscador small { display: block; font-size: max(8px, .62vw); letter-spacing: .3em; color: #c8a86b; }
.altavista .buscador b { font-weight: 400; font-size: max(11px, 1vw); }
.altavista .buscador span { display: grid; place-items: center; padding: 0 2.4vw; background: #e7cf9c; color: #06080c; font-size: max(10px, .8vw); letter-spacing: .25em; font-weight: 500; }
.play .altavista .buscador { animation: aparecer 1.1s cubic-bezier(.22,1,.36,1) 4.4s both; }
.altavista .fichas { position: absolute; z-index: 6; right: 4.4vw; bottom: 9vh; display: flex; gap: 1vw; }
.altavista .ficha { width: 13vw; background: rgba(12,14,19,.72); border: 1px solid rgba(231,207,156,.2); backdrop-filter: blur(10px); }
.altavista .ficha img { width: 100%; height: 7.6vw; object-fit: cover; }
.altavista .ficha div { padding: .8vw 1vw 1vw; }
.altavista .ficha b { display: block; font-weight: 400; font-size: max(10px, .95vw); }
.altavista .ficha small { display: block; margin-top: .2vw; font-size: max(8px, .7vw); color: rgba(243,239,231,.6); }
.altavista .ficha em { display: block; margin-top: .4vw; font-style: normal; font-size: max(10px, .9vw); color: #e7cf9c; }
.play .altavista .ficha { animation: aparecer 1.1s cubic-bezier(.22,1,.36,1) 4.7s both; }
.play .altavista .ficha:nth-child(2) { animation-delay: 4.85s; } .play .altavista .ficha:nth-child(3) { animation-delay: 5s; }

/* ============ SÈVE · spa y belleza ============ */
.seve { background: #efe6dc; color: #3a2c25; font-family: "Jost", system-ui, sans-serif; }
.seve .intro { background: radial-gradient(70% 70% at 50% 50%, #f7f0e8, #eadccf); }
.seve .intro__aro { position: absolute; width: 30vw; height: 30vw; border-radius: 50%; border: 1px solid rgba(185,138,110,.45); }
.seve .intro__aro--b { width: 24vw; height: 24vw; border-color: rgba(185,138,110,.25); }
@keyframes respirarAro { from { transform: scale(.9); opacity: .5; } to { transform: scale(1.06); opacity: 1; } }
.play .seve .intro__aro { animation: respirarAro 1.6s ease-in-out infinite alternate; }
.play .seve .intro__aro--b { animation-delay: -.8s; }
.seve .intro__logo { font-family: "Parisienne", cursive; font-size: 10vw; line-height: 1.2; color: #3a2c25; }
.seve .intro__sub { font-size: max(9px, .8vw); letter-spacing: .7em; margin-right: -.7em; color: #b98a6e; }
.seve .intro__txt { margin-top: 2vw; font-family: "Cormorant Garamond", serif; font-style: italic; font-size: max(12px, 1.3vw); color: rgba(58,44,37,.7); }
.play .seve .intro__logo { animation: trazo 1.8s cubic-bezier(.65,0,.35,1) .3s both; }
.play .seve .intro__txt { animation: aparecer 1s ease 1.2s both; }
.seve .capa-foto { position: absolute; inset: 0; }
@keyframes onda { from { clip-path: circle(0% at 62% 50%); } to { clip-path: circle(120% at 62% 50%); } }
.play .seve .capa-foto { animation: onda 1.8s cubic-bezier(.65,0,.35,1) 2.7s both; }
.seve .anillo { position: absolute; z-index: 31; left: 62%; top: 50%; width: 10vw; height: 10vw; margin: -5vw 0 0 -5vw; border-radius: 50%; border: 2px solid rgba(255,255,255,.8); opacity: 0; pointer-events: none; }
@keyframes anillo { 0% { opacity: 0; transform: scale(.2); } 20% { opacity: 1; } 100% { opacity: 0; transform: scale(9); } }
.play .seve .anillo { animation: anillo 2s cubic-bezier(.3,0,.3,1) 2.6s both; }
.seve .foto img { transform: scale(1.04); }
@keyframes seveFoto { from { transform: scale(1.25); } to { transform: scale(1.04); } }
.play .seve .foto img { animation: seveFoto 4s cubic-bezier(.22,1,.36,1) 2.7s both, respira 16s ease-in-out 6.8s infinite alternate; }
.seve .velo { background: linear-gradient(90deg, rgba(239,230,220,.97) 0%, rgba(239,230,220,.86) 34%, rgba(239,230,220,.2) 58%, transparent 70%); }
.seve .nav__logo { font-family: "Parisienne", cursive; font-size: 3.1vw; }
.seve .nav__links { color: rgba(58,44,37,.75); }
.seve .nav__cta { padding: .75vw 1.7vw; border-radius: 99px; background: #3a2c25; color: #f4ece3; font-size: max(10px, .85vw); }
.seve .texto { bottom: auto; top: 50%; transform: translateY(-42%); }
.seve .eyebrow { font-size: max(9px, .78vw); letter-spacing: .42em; color: #b98a6e; }
.seve h1 { margin-top: 1vw; font-family: "Cormorant Garamond", serif; font-weight: 300; font-size: 7.6vw; line-height: .95; }
.seve h1 em { color: #a8735a; }
.seve .texto p { margin-top: 1.5vw; max-width: 30vw; font-size: max(12px, 1.15vw); line-height: 1.65; color: rgba(58,44,37,.75); }
.seve .btn--a { background: #3a2c25; color: #f4ece3; }
.seve .btn--b { border: 1px solid rgba(58,44,37,.35); }
.seve .reserva { position: absolute; z-index: 6; right: 5vw; top: 50%; width: 25vw; transform: translateY(-40%); padding: 1.8vw; border-radius: 1.4vw; background: rgba(250,245,240,.72); border: 1px solid rgba(255,255,255,.7); backdrop-filter: blur(16px); box-shadow: 0 2vw 5vw -2vw rgba(58,44,37,.35); }
.play .seve .reserva { animation: aparecer 1.2s cubic-bezier(.22,1,.36,1) 4.4s both; }
.seve .reserva h2 { font-family: "Cormorant Garamond", serif; font-weight: 400; font-size: 1.9vw; }
.seve .reserva small { display: block; margin-top: 1.1vw; font-size: max(8px, .66vw); letter-spacing: .3em; color: #b98a6e; }
.seve .servicio { margin-top: .5vw; padding: .8vw 1vw; border-radius: .6vw; background: #fff; font-size: max(10px, .9vw); }
.seve .fila { display: flex; gap: .5vw; margin-top: .5vw; }
.seve .fila i { flex: 1; font-style: normal; text-align: center; padding: .6vw 0; border-radius: .6vw; border: 1px solid rgba(58,44,37,.18); font-size: max(9px, .8vw); background: rgba(255,255,255,.5); }
.seve .fila i.si { background: #3a2c25; color: #f4ece3; border-color: #3a2c25; }
.seve .fila i.no { text-decoration: line-through; color: #b04a3c; opacity: .55; }
@keyframes pulso { 0% { box-shadow: 0 0 0 0 rgba(58,44,37,.45); } 70%, 100% { box-shadow: 0 0 0 .9vw rgba(58,44,37,0); } }
.play .seve .fila i.si.late { animation: pulso 2.2s ease-out 5.4s infinite; }
.seve .confirmar { display: flex; justify-content: center; align-items: center; gap: .5vw; margin-top: 1.2vw; padding: .9vw; border-radius: 99px; background: #b98a6e; color: #fff; font-size: max(10px, .9vw); font-weight: 500; }
.seve .confirmar svg { width: 1.2vw; height: 1.2vw; fill: currentColor; }

/* ============ OLIVO · tienda de objetos ============ */
.olivo { background: #1f1d1a; color: #f1ece4; font-family: "DM Sans", system-ui, sans-serif; }
.olivo .intro { background: #efe9e0; color: #2a2723; }
.olivo .tallos { display: flex; align-items: flex-end; gap: 1.4vw; height: 7vw; margin-bottom: 1.6vw; }
.olivo .tallos i { width: 1px; background: #6d7a55; transform-origin: bottom; }
.olivo .tallos i:nth-child(1) { height: 60%; } .olivo .tallos i:nth-child(2) { height: 100%; } .olivo .tallos i:nth-child(3) { height: 75%; }
@keyframes crecer { from { transform: scaleY(0); } to { transform: none; } }
.play .olivo .tallos i { animation: crecer 1.2s cubic-bezier(.22,1,.36,1) .2s both; }
.play .olivo .tallos i:nth-child(2) { animation-delay: .35s; } .play .olivo .tallos i:nth-child(3) { animation-delay: .5s; }
.olivo .intro__logo { font-family: "Fraunces", serif; font-weight: 300; font-style: italic; font-size: 9vw; line-height: 1; }
.olivo .intro__sub { margin-top: 1vw; font-size: max(9px, .8vw); letter-spacing: .6em; margin-right: -.6em; color: #6d7a55; }
.olivo .intro__num { margin-top: 2.2vw; font-size: max(9px, .8vw); letter-spacing: .3em; color: rgba(42,39,35,.5); }
.play .olivo .intro__logo { animation: aparecer 1.2s cubic-bezier(.22,1,.36,1) .6s both; }
.olivo .cortinas { position: absolute; inset: 0; z-index: 29; display: flex; pointer-events: none; }
.olivo .cortinas i { flex: 1; background: #efe9e0; transform: translateY(-101%); }
@keyframes cortina { from { transform: none; } to { transform: translateY(-101%); } }
.play .olivo .cortinas i { animation: cortina 1.1s cubic-bezier(.76,0,.24,1) 2.7s both; }
.play .olivo .cortinas i:nth-child(2) { animation-delay: 2.8s; } .play .olivo .cortinas i:nth-child(3) { animation-delay: 2.9s; } .play .olivo .cortinas i:nth-child(4) { animation-delay: 3s; }
.play .olivo .intro { animation-duration: 2.75s; }
.olivo .foto img { object-position: 70% 50%; transform: scale(1.04); }
@keyframes olivoFoto { from { transform: scale(1.22); } to { transform: scale(1.04); } }
.play .olivo .foto img { animation: olivoFoto 3.8s cubic-bezier(.22,1,.36,1) 2.8s both, respira 16s ease-in-out 6.6s infinite alternate; }
.olivo .velo { background: linear-gradient(90deg, rgba(24,22,19,.92) 0%, rgba(24,22,19,.7) 36%, transparent 62%); }
.olivo .nav__logo { font-family: "Fraunces", serif; font-style: italic; font-weight: 300; font-size: 2.6vw; }
.olivo .nav__links { color: rgba(241,236,228,.78); }
.olivo .bolsa { position: relative; font-size: max(10px, .9vw); }
.olivo .bolsa u { text-decoration: none; display: inline-grid; place-items: center; min-width: 1.5vw; height: 1.5vw; margin-left: .4vw; border-radius: 99px; background: #c9d3a8; color: #1f1d1a; font-size: max(9px, .75vw); font-weight: 500; }
@keyframes bump { 0%, 100% { transform: none; } 40% { transform: scale(1.6); } }
.play .olivo .bolsa u { animation: bump .6s ease 5.6s both; }
.olivo .eyebrow { font-size: max(9px, .78vw); letter-spacing: .4em; color: #c9d3a8; }
.olivo h1 { margin-top: 1.1vw; font-family: "Fraunces", serif; font-weight: 300; font-size: 7.8vw; line-height: .96; letter-spacing: -.02em; }
.olivo h1 em { color: #d9c9a8; }
.olivo .texto p { margin-top: 1.5vw; max-width: 30vw; font-size: max(12px, 1.15vw); line-height: 1.65; color: rgba(241,236,228,.72); }
.olivo .btn--a { background: #f1ece4; color: #1f1d1a; }
.olivo .btn--b { border: 1px solid rgba(241,236,228,.35); }
.olivo .productos { position: absolute; z-index: 6; right: 4.4vw; bottom: 8vh; display: flex; gap: 1vw; }
.olivo .producto { display: flex; align-items: center; gap: .9vw; padding: .7vw 1.2vw .7vw .7vw; border-radius: 1vw; background: rgba(30,28,25,.62); border: 1px solid rgba(241,236,228,.16); backdrop-filter: blur(12px); }
.olivo .producto img { width: 4.6vw; height: 4.6vw; border-radius: .6vw; object-fit: cover; }
.olivo .producto b { display: block; font-weight: 500; font-size: max(10px, .92vw); }
.olivo .producto small { display: block; font-size: max(9px, .8vw); color: #c9d3a8; }
.olivo .producto span { display: grid; place-items: center; width: 2vw; height: 2vw; margin-left: .6vw; border-radius: 50%; background: #f1ece4; color: #1f1d1a; font-size: 1.2vw; }
.play .olivo .producto { animation: aparecer 1.1s cubic-bezier(.22,1,.36,1) 4.5s both; }
.play .olivo .producto:nth-child(2) { animation-delay: 4.7s; }

/* ---------- pantallas verticales (celular) ---------- */
@media (max-aspect-ratio: 4/5) {
  .nav { padding: 5vw; }
  .nav__links { display: none; }
  .brasa .nav__logo, .seve .nav__logo, .olivo .nav__logo { font-size: 8vw; }
  .altavista .nav__logo { font-size: 5vw; }
  .texto { left: 6vw; right: 6vw; max-width: none; bottom: 12vh; }
  .brasa h1 { font-size: 15vw; } .altavista h1 { font-size: 13vw; } .seve h1 { font-size: 15vw; } .olivo h1 { font-size: 14vw; }
  .texto p, .brasa .texto p, .altavista .texto p, .seve .texto p, .olivo .texto p { max-width: none; font-size: 3.8vw; }
  .btn { padding: 3vw 5vw; font-size: 3.4vw; } .btns { gap: 2vw; margin-top: 5vw; }
  .eyebrow, .brasa .eyebrow, .altavista .eyebrow, .seve .eyebrow, .olivo .eyebrow { font-size: 2.6vw; }
  .brasa .sello, .altavista .fichas, .altavista .buscador, .seve .reserva, .olivo .productos { display: none; }
  .altavista .texto { bottom: 12vh; }
  .seve .texto { top: auto; bottom: 10vh; transform: none; }
  .seve .velo { background: linear-gradient(0deg, rgba(239,230,220,.97) 0%, rgba(239,230,220,.85) 45%, transparent 75%); }
  .brasa .velo, .altavista .velo, .olivo .velo { background: linear-gradient(0deg, rgba(8,6,5,.95) 0%, rgba(8,6,5,.7) 45%, rgba(8,6,5,.15) 80%); }
  .intro__logo { font-size: 18vw !important; }
  .intro__barra { width: 50vw !important; }
}
