
@font-face { font-family: "Titulos"; src: url("titulos.woff2") format("woff2"); font-weight: 400 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Texto"; src: url("texto.woff2") format("woff2"); font-weight: 300 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Cursiva"; src: url("cursiva.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

:root {
  --crema: #edccbe;          
  --pardo: #331917;          
  --rosa: #fc72c4;           
  --noche: #0e0e0e;
  --s: calc((100vw - 375px) / 1225);   
  --t100: clamp(250px, calc(250px + 330 * var(--s)), 580px);
  --t40: clamp(40px, calc(40px + 24 * var(--s)), 64px);
  --t20: clamp(24px, calc(24px + 24 * var(--s)), 48px);
  --t10: clamp(24px, calc(24px + 8 * var(--s)), 32px);
  --st30: clamp(18px, calc(18px + 4 * var(--s)), 22px);
  --st20: clamp(18px, calc(18px + 2 * var(--s)), 20px);
  --b30: clamp(16px, calc(16px + 2 * var(--s)), 18px);
  --b20: clamp(14px, calc(14px + 2 * var(--s)), 16px);
  --c30: clamp(12px, calc(12px + 4 * var(--s)), 16px);
  --suave: cubic-bezier(.65, .05, .36, 1);       
  --po: 30px;                                    
}
@media (min-width: 1024px) { :root { --po: 80px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; background: var(--noche); }
html.lenis, html.lenis body { height: auto; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
body { margin: 0; background: var(--noche); color: var(--crema); font-family: "Texto", "Helvetica Neue", Arial, sans-serif; font-size: var(--b30); line-height: 1.3; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3, p, ul { margin: 0; padding: 0; }
ul { list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
img, svg, video { display: block; max-width: 100%; }
:focus-visible { outline: 2px solid var(--rosa); outline-offset: 2px; }
.salto { position: fixed; left: 8px; top: -60px; z-index: 10000; background: var(--crema); color: var(--pardo); padding: 8px 14px; font-size: var(--b20); transition: top .2s; }
.salto:focus { top: 8px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }


.t20, .t40, .lema, .menu-a, .estudio-sub { font-family: "Titulos", "Playfair Display", Georgia, serif; font-weight: 400; text-transform: uppercase; }
.t20 { font-size: var(--t20); line-height: 1; letter-spacing: -.02em; }
.t40 { font-size: var(--t40); line-height: 1; letter-spacing: -.02em; }
.rotulo-c { font-size: var(--b30); line-height: 1.3; text-transform: uppercase; text-align: center; }
.cap { font-size: var(--c30); line-height: 1.3; text-transform: uppercase; }
.js [data-lineas]:not(.lista) { visibility: hidden; }
.br-lg { display: none; }
@media (min-width: 1024px) { .br-lg { display: inline; } }


.intro { position: fixed; inset: 0; z-index: 9999; background: var(--noche); pointer-events: none; animation: intro-sale 1.1s var(--suave) .22s both; }
@keyframes intro-sale { to { opacity: 0; visibility: hidden; } }


.mariposa { position: fixed; left: 0; top: 0; z-index: 9990; width: 40px; height: 40px; margin: -20px 0 0 -20px; pointer-events: none; opacity: 0; transition: opacity .5s; will-change: transform; }
.mariposa.viva { opacity: 1; }
.mariposa svg { overflow: visible; transform-origin: 50% 50%; will-change: transform; }
.m-alas { transform-origin: 20px 22px; }
.mariposa path { fill: var(--rosa); }
.mariposa .m-ala-i.b, .mariposa .m-ala-d.b { fill: color-mix(in srgb, var(--rosa) 70%, var(--pardo)); }
.mariposa .m-cuerpo { fill: var(--pardo); }
.mariposa .m-ant { stroke: var(--pardo); stroke-width: 1; stroke-linecap: round; fill: none; }
.mariposa .m-ant { fill: none; }
.m-ala-i, .m-ala-d { transform-origin: 20px 22px; animation: aleteo .28s ease-in-out infinite alternate; }
.m-ala-d { animation-name: aleteo-d; }
@keyframes aleteo { from { transform: scaleX(1); } to { transform: scaleX(.28); } }
@keyframes aleteo-d { from { transform: scaleX(1); } to { transform: scaleX(.28); } }
@media (pointer: coarse), (prefers-reduced-motion: reduce) { .mariposa { display: none; } }


.cab { position: fixed; left: 0; right: 0; top: 0; z-index: 20; height: 0; }
.cab-esc { display: none; position: absolute; left: 2px; right: 2px; top: 2px; height: 32px; align-items: center; pointer-events: none; }
.cab-esc nav, .cab-esc a { pointer-events: auto; }
.cab-esc nav { height: 100%; }
.cab-esc ul { display: flex; height: 100%; align-items: center; }
.cab-esc li { height: 100%; }
.chip { position: relative; display: flex; height: 100%; min-width: 0; align-items: center; justify-content: center; overflow: hidden; padding: 0 12px; text-align: center; font-size: var(--b20); line-height: 1.3; white-space: nowrap;
  background: var(--crema); color: var(--pardo); border-radius: 0; transition: border-radius .4s var(--suave), background-color .4s var(--suave), color .4s var(--suave); }
.chip:hover { border-radius: 25px; background: var(--rosa); color: var(--pardo); }
.chip-logo { padding: 0 6px; border-radius: 9999px; flex: none; }
.chip-logo svg { flex: none; }
.chip-cta { margin-left: auto; gap: 8px; padding: 0 4px 0 8px; }
.chip-cta .ico { display: flex; width: 24px; height: 24px; flex: none; align-items: center; justify-content: center; background: rgb(51 25 23 / .2); border-radius: 0; transition: border-radius .4s var(--suave); }
.chip-cta:hover .ico { border-radius: 50%; }
.cab-mov { position: absolute; left: 0; right: 0; top: 0; height: 48px; display: flex; align-items: center; }
.cab-mov-izq { position: relative; z-index: 1; display: flex; height: 100%; flex: 1; align-items: center; padding-left: 4px; background: var(--crema); color: var(--pardo); }
.cab-logo { display: flex; height: 100%; align-items: center; }
.cab-arriba { position: absolute; inset: 0; width: 100%; height: 100%; }
.cab-logo { position: relative; z-index: 1; }
.cab-menu { position: relative; z-index: 1; display: flex; width: 48px; height: 48px; flex: none; align-items: center; justify-content: center; border-radius: 9999px; background: var(--crema); color: var(--pardo); transition: background-color .65s var(--suave), color .65s var(--suave); }
.cab-menu .i-cruz { display: none; }
.cab-menu[aria-expanded="true"] .i-barras { display: none; }
.cab-menu[aria-expanded="true"] .i-cruz { display: block; }
@media (min-width: 1024px) { .cab { top: 0; } .cab-esc { display: flex; } .cab-mov { display: none; } }


.menu { position: fixed; inset: 0; z-index: 19; background: var(--pardo); color: var(--crema); overflow-y: auto; visibility: hidden; clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); transition: clip-path .6s var(--suave), visibility 0s linear .6s; overscroll-behavior: contain; }
.menu.abierto { visibility: visible; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transition: clip-path .8s var(--suave), visibility 0s; }
.menu-in { position: relative; margin-top: 48px; min-height: calc(100vh - 48px); min-height: calc(100svh - 48px); display: flex; flex-direction: column; overflow: hidden; padding: 8px; }
.menu nav { padding: 0 8px; }
.menu-a { position: relative; display: flex; height: 54px; align-items: center; padding-left: 80px; font-size: 18px; line-height: 1; letter-spacing: -.02em; opacity: .6; transition: opacity .3s; }
.menu-a.activo { opacity: 1; }
.menu-a .pto { position: absolute; left: 0; top: 50%; width: 6px; height: 6px; transform: translateY(-50%); background: currentColor; }
.menu-a.activo .pto { background: var(--rosa); border-radius: 50%; }
.menu li .lin { display: block; height: 1px; background: rgb(237 204 190 / .2); transform-origin: left; }
.menu li .lin.ultima { opacity: 0; }
.menu-datos { display: flex; flex-direction: column; gap: 24px; padding: 40px 8px 24px 88px; }
.menu-datos p { font-size: var(--c30); text-transform: uppercase; line-height: 1.3; }
.menu-datos a { display: block; font-size: var(--b30); opacity: .5; }
.menu-datos div { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.menu-pie { margin-top: auto; }
.menu .anim { opacity: 0; }
@media (min-width: 1024px) { .menu { display: none; } }


.boton { position: relative; display: inline-flex; width: 100%; min-width: 0; flex: none; height: 42px; align-items: center; justify-content: space-between; gap: 42px; overflow: hidden; padding: 8px 0; white-space: nowrap; cursor: pointer;
  font-size: var(--st20); line-height: 1.3; border-top: 1px solid currentColor; transition: color .4s var(--suave); outline: none; }
.boton:focus-visible { box-shadow: inset 0 0 0 2px var(--rosa); }
.boton .cortina { position: absolute; inset: 0; z-index: 0; transform: translateY(100%); will-change: transform; }
.boton .cont { position: relative; z-index: 1; display: flex; align-items: center; transition: transform .4s var(--suave); }
.boton .ico { position: relative; z-index: 1; display: flex; width: 24px; height: 24px; flex: none; align-items: center; justify-content: center; background: color-mix(in srgb, currentColor 20%, transparent); transition: transform .4s var(--suave), border-radius .4s var(--suave); }
.boton:hover .cont { transform: translateX(8px); }
.boton:hover .ico { transform: translateX(-8px); }
.boton svg { flex: none; width: 16px; height: 16px; }
.boton-pardo { color: var(--pardo); }                 
.boton-pardo .cortina { background: var(--pardo); }
.boton-pardo:hover { color: var(--crema); }
.boton-claro { color: var(--crema); }                 
.boton-claro .cortina { background: var(--crema); }
.boton-claro:hover { color: var(--pardo); }
.boton-pardo-b { color: var(--pardo); }               
.boton-pardo-b .cortina { background: var(--pardo); }
.boton-pardo-b:hover { color: #fff; }
.boton-pie { width: auto; border: 0; padding: 8px 8px; gap: 0; background: var(--crema); color: var(--pardo); font-size: var(--b20); }
.boton-pie .cortina { background: #fff; }
@media (min-width: 1024px) { .boton-pie { padding: 8px 16px; } }


.portada { position: relative; isolation: isolate; }
.portada-top { display: flex; flex-direction: column; padding: 72px 8px 24px; background: var(--crema); color: var(--pardo); }
.rotulo { width: 100%; height: auto; flex: none; margin-bottom: 24px; }
.lemas { display: flex; align-items: center; justify-content: space-between; gap: 80px; margin-top: 8px; }
.lema { font-size: var(--t10); line-height: 1; letter-spacing: -.02em; }
.lema.esc { display: none; }
.lema.mov { display: block; }
.ln { display: block; }
@media (min-width: 1024px) {
  .portada-top { padding-bottom: 16px; }
  .rotulo { margin-bottom: 0; }
  .lemas { margin-top: 0; }
  .lema.esc { display: block; }
  .lema.der { text-align: right; }
  .lema.mov { display: none; }
}


.carr { position: relative; isolation: isolate; height: 80vh; height: 80svh; overflow: hidden; background: var(--pardo); }
@media (min-width: 1024px) { .carr { height: 100vh; height: 100svh; } }
.slide { position: absolute; inset: 0; opacity: 0; clip-path: inset(0 0 0 100%); z-index: 0; }
.slide:first-child { opacity: 1; clip-path: inset(0 0 0 0); z-index: 1; }
.slide-t { position: relative; width: 100%; height: 100%; }
.slide-w { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: calc(100% + 9.5%); height: calc(100% + 9.5%); }
.par { position: absolute; inset: 0; overflow: hidden; }
.par-i { position: absolute; left: 0; right: 0; top: calc(-1 * var(--po)); height: calc(100% + 2 * var(--po)); will-change: transform; }
.par-i picture, .par-i > img, .par-i > .card-m { position: absolute; inset: 0; width: 100%; height: 100%; }
.par-i img { width: 100%; height: 100%; object-fit: cover; }
.slide img, .card-m, .dest-bg img, .contacto-bg img { filter: saturate(.96) contrast(1.02); }
.slide .video, .slide .poster, .card-video .video, .card-video .poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.slide .video, .card-video .video { opacity: 0; transition: opacity .5s; }
.slide .video.lista, .card-video .video.lista { opacity: 1; }
.barra { position: absolute; left: 0; right: 0; bottom: 0; z-index: 10; height: 4px; background: color-mix(in srgb, var(--crema) 30%, transparent); }
.barra i { display: block; height: 100%; background: var(--rosa); transform-origin: left; transform: scaleX(0); }


.estudio { position: relative; isolation: isolate; height: 100vh; height: 100svh; padding: 96px 24px; background: var(--pardo); color: var(--crema); }
.estudio-in { display: flex; height: 100%; flex-direction: column; gap: 16px; margin: 0 auto; }
.estudio h2 { max-width: 1054px; margin: 0 auto; text-align: center; }
.estudio-sub { margin: auto auto 0; width: 100%; text-align: center; font-size: var(--st30); line-height: 1.3; letter-spacing: -.02em; }
.estudio-sub .ln { display: block; }
@media (min-width: 1024px) { .estudio { padding: 102px 24px; } .estudio-in { gap: 24px; } }


.cinta { position: absolute; left: 0; right: 0; z-index: -1; pointer-events: none; color: var(--rosa); font-family: "Cursiva", "Pinyon Script", cursive; font-size: var(--t100); line-height: 1; }
.cinta.abajo { bottom: 0; transform: translateY(40%); }
.cinta-c { display: flex; overflow: hidden; padding: 80px 0; }
.cinta-f { display: flex; flex: 0 0 auto; min-width: 100%; align-items: center; animation: cinta var(--dur, 110s) linear infinite; }
.cinta-h { margin-right: 80px; white-space: nowrap; }
@keyframes cinta { from { transform: translateX(0); } to { transform: translateX(-100%); } }


.titular { position: relative; isolation: isolate; padding: 96px 16px 192px; }
.titular.claro { background: var(--crema); color: var(--pardo); }
.titular.oscuro { background: var(--pardo); color: var(--crema); }
.titular-in { display: flex; max-width: 1054px; flex-direction: column; gap: 16px; margin: 0 auto; }
.titular h2 { text-align: center; }
@media (min-width: 1024px) { .titular { padding: 264px 16px; } .titular-in { gap: 24px; } }


.rejilla { padding: 0 8px 96px; background: var(--crema); color: var(--pardo); }
.rejilla-in { position: relative; z-index: 10; }
.rejilla-g { display: grid; grid-template-columns: 1fr; gap: 60px 0; }
.card a { position: relative; isolation: isolate; display: block; width: 100%; height: 100%; overflow: hidden; }
.card-img { position: relative; overflow: hidden; aspect-ratio: 4 / 5; }
.card-img .par-i { transform: translateY(calc(-1 * var(--po))); }
.card-m { transition: transform .6s var(--suave); transform: scale(1); }
.card-txt { display: flex; flex-direction: column; gap: 8px; padding-top: 16px; background: var(--crema); }
.card-txt h3 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--b30); line-height: 1.3; font-weight: 400; text-transform: uppercase; }
.card-txt p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--b20); line-height: 1.3; opacity: .6; }
.rejilla .boton { margin-top: 96px; }
@media (min-width: 1024px) {
  .rejilla { padding-bottom: 102px; }
  .rejilla-g { grid-template-columns: repeat(3, 1fr); gap: 96px 8px; }
  .card-m { transform: scale(1.02); }
  .card a:hover .card-m, .card a:focus-visible .card-m { transform: scale(1); }
  .rejilla .boton { margin-top: 102px; }
}


.dest { padding: 0 8px 96px; background: var(--pardo); color: var(--crema); }
.dest-a { position: relative; isolation: isolate; display: flex; flex-direction: column; min-height: 70vh; min-height: 70svh; padding: 24px 8px; }
.dest-vel { position: absolute; inset: 0; z-index: -1; background: rgb(51 25 23 / .5); }
.dest-bg { z-index: -2; }
.dest-bg img { transition: transform .6s var(--suave); transform: scale(1); }
.dest-g { flex: 1; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto 1fr; gap: 24px; padding-top: 24px; border-top: 1px solid rgb(237 204 190 / .3); }
.dest-n { grid-row: span 2; font-size: var(--b30); text-transform: uppercase; opacity: .7; }
.dest-f { grid-column: 2; font-size: var(--b30); opacity: .7; }
.dest-t { grid-column: 2; grid-row: 2; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; }
.dest-t h3 { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.dest-t h3 .ln { display: block; }
.dest-leer { font-size: var(--st20); line-height: 1.3; opacity: .7; transition: opacity .4s var(--suave); }
.dest-a:hover .dest-leer { opacity: 1; }
.dest-btn { padding: 0 8px; }
@media (min-width: 1024px) {
  .dest { padding-bottom: 102px; }
  .dest-a { min-height: 100vh; min-height: 100svh; padding: 24px; }
  .dest-btn { margin-top: 102px; }
  .dest-bg img { transform: scale(1.02); }
  .dest-a:hover .dest-bg img { transform: scale(1); }
}


.contacto { position: relative; isolation: isolate; padding: 96px 8px; }
.contacto-bg { z-index: 0; }
.contacto-g { position: relative; z-index: 20; display: grid; grid-template-columns: 1fr; gap: 16px; }
.contacto-c { padding: 16px; background: var(--crema); color: var(--pardo); }
.contacto-top { display: flex; }
.rotulo-i { flex: 1; font-size: var(--b30); text-transform: uppercase; }
.contacto-mini { width: 112px; height: 140px; flex: none; object-fit: cover; }
.contacto-med { display: flex; flex-direction: column; gap: 24px; margin-top: 50px; }
.contacto-med h2 .ln { display: block; }
@media (min-width: 1024px) {
  .contacto { padding: 102px 8px; }
  .contacto-g { grid-template-columns: repeat(12, 1fr); }
  .contacto-c { grid-column: 2 / span 10; }
}


.pie { display: flex; flex-direction: column; gap: 24px; padding: 8px; background: var(--pardo); color: var(--crema); }
.pie-logo > svg { width: 100%; height: auto; }
.pie-grid { display: grid; grid-template-columns: 1fr; column-gap: 16px; padding-top: 24px; }
.pie-links { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 24px; }
.pie-links div { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.pie-links a { font-size: var(--st20); line-height: 1.3; opacity: .6; transition: opacity .4s var(--suave); }
.pie-links a:hover { opacity: 1; }
.pie-redes { display: grid; grid-template-columns: 1fr; gap: 24px; padding-top: 24px; border-top: 1px solid rgb(237 204 190 / .3); }
.pie-bloque { display: flex; flex-direction: column; font-size: var(--st20); line-height: 1.3; }
.pie-t { display: flex; align-items: center; gap: 8px; }
.pie-t svg { width: 1em; height: 1em; flex: none; }
.pie-bloque > a, .pie-bloque > span { opacity: .6; transition: opacity .4s var(--suave); }
.pie-bloque > a:hover { opacity: 1; }
.pie-dir { display: grid; grid-template-columns: 1fr; gap: 24px 16px; padding-top: 24px; border-top: 1px solid rgb(237 204 190 / .3); }
.pie-dir .pie-bloque { gap: 2px; align-items: flex-start; }
.pie-dir .pie-bloque a { opacity: .6; transition: opacity .4s var(--suave); }
.pie-dir .pie-bloque a:hover { opacity: 1; }
.pie-base { display: flex; flex-direction: column; gap: 16px; padding-top: 16px; border-top: 1px solid rgb(237 204 190 / .3); }
.pie-leg { display: flex; align-items: center; gap: 16px; }
.pie-leg .mute { opacity: .6; text-transform: none; }
.pie-leg .mute a { text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 1024px) {
  .pie-grid { grid-template-columns: 1fr 1fr; }
  .pie-links { margin-bottom: 0; }
  .pie-redes { grid-template-columns: 1fr 1fr; gap: 16px; padding-top: 0; border-top: 0; }
  .pie-dir { grid-template-columns: repeat(4, 1fr); }
  .pie-base { flex-direction: row; align-items: center; justify-content: space-between; padding-top: 0; }
}


.aviso-p { position: fixed; left: 50%; bottom: 24px; z-index: 9000; transform: translate(-50%, 20px); padding: 10px 16px; background: var(--crema); color: var(--pardo); font-size: var(--b20); opacity: 0; pointer-events: none; transition: opacity .3s var(--suave), transform .3s var(--suave); }
.aviso-p.visible { opacity: 1; transform: translate(-50%, 0); }


@media (prefers-reduced-motion: reduce) {
  .intro { display: none; }
  .cinta-f { animation: none; }
  .chip, .chip-cta .ico, .boton, .boton .cont, .boton .ico, .card-m, .dest-bg img, .menu { transition: none; }
  .slide { opacity: 0; }
  .slide:first-child { opacity: 1; }
  .barra { display: none; }
  .par-i { transform: none !important; }
}
