/* Ta Chingón · Envigado
   Concepto: fiesta mexicana de noche. Fondo morado oscuro como sus noches de murales,
   y los colores reales del local: turquesa, rosa mexicano, amarillo y naranja cempasúchil.
   Letras: Shrikhand (rotulo pintado a mano) + Outfit. */
:root{
  --noche:#1b1024;
  --noche-2:#24152f;
  --hueso:#fff6ea;
  --rosa:#e8336d;
  --turquesa:#1fb5a8;
  --amarillo:#ffb627;
  --naranja:#ff7a1a;
  --morado:#7b3fa0;
  --verde:#2f7d4f;
  --gris:#b8a9c2;
  --linea:rgba(255,246,234,.14);
  --f-display:'Shrikhand', 'Georgia', serif;
  --f-texto:'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --gutter:clamp(16px, 4vw, 56px);
  --barra-h:70px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --sarape:repeating-linear-gradient(90deg,var(--rosa) 0 18px,var(--amarillo) 18px 30px,var(--turquesa) 30px 48px,var(--naranja) 48px 60px,var(--morado) 60px 78px,var(--hueso) 78px 82px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--barra-h) + 10px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--noche);color:var(--hueso);font:400 17.5px/1.6 var(--f-texto);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
em{font-style:normal;color:var(--amarillo)}
:focus-visible{outline:3px solid var(--amarillo);outline-offset:3px;border-radius:4px}
.saltar{position:absolute;left:-999px;top:8px;z-index:300;background:var(--hueso);color:var(--noche);padding:8px 14px}
.saltar:focus{left:12px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

.etiqueta{display:inline-block;margin:0 0 20px;padding:7px 14px;border-radius:999px;background:rgba(31,181,168,.16);color:var(--turquesa);font:600 12.5px/1 var(--f-texto);letter-spacing:.14em;text-transform:uppercase}
.h2{font:400 clamp(40px,6vw,88px)/1.02 var(--f-display);margin:0;text-wrap:balance}
.cabeza{max-width:1320px;margin:0 auto 52px;padding:0 var(--gutter)}
.sub{color:var(--gris);margin:18px 0 0;max-width:54ch;text-wrap:pretty}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:14px;font:700 15.5px/1 var(--f-texto);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s,background .25s}
.btn-rosa{background:var(--rosa);color:#fff;box-shadow:0 5px 0 #a3194a}
.btn-rosa:hover{transform:translateY(-2px);box-shadow:0 7px 0 #a3194a}
.btn-rosa:active{transform:translateY(4px);box-shadow:0 1px 0 #a3194a}
.btn-linea{border-color:var(--hueso);color:var(--hueso)}
.btn-linea:hover{background:var(--hueso);color:var(--noche)}
.btn-chico{min-height:42px;padding:0 18px;font-size:14px;box-shadow:0 4px 0 #a3194a}

/* Precarga */
.precarga{display:none}
.js .precarga{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:var(--noche);animation:precarga-fuera 0s 5s forwards}
.franjas{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr)}
.franjas i:nth-child(1){background:var(--rosa)}.franjas i:nth-child(2){background:var(--amarillo)}.franjas i:nth-child(3){background:var(--turquesa)}
.franjas i:nth-child(4){background:var(--naranja)}.franjas i:nth-child(5){background:var(--morado)}.franjas i:nth-child(6){background:var(--rosa)}
.precarga-nombre{position:relative;margin:0;font:400 clamp(44px,10vw,96px)/1 var(--f-display);color:var(--hueso);text-shadow:0 6px 0 rgba(0,0,0,.25)}
@keyframes precarga-fuera{to{visibility:hidden;opacity:0}}

/* Barra */
.barra{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;gap:20px;height:calc(var(--barra-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(var(--gutter),env(safe-area-inset-right)) 0 max(var(--gutter),env(safe-area-inset-left));transition:background .4s}
.barra.solida{background:rgba(27,16,36,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.marca{display:flex;flex-direction:column;text-decoration:none;font:400 26px/1 var(--f-display);color:var(--hueso)}
.marca small{font:600 9.5px/1 var(--f-texto);letter-spacing:.28em;text-transform:uppercase;color:var(--turquesa);margin-top:4px}
.barra-nav{display:none;gap:28px;margin-left:auto}
.barra-nav a{text-decoration:none;font-weight:500;font-size:15px;color:var(--gris);transition:color .3s}
.barra-nav a:hover{color:var(--amarillo)}
.barra .btn{margin-left:auto;flex-shrink:0}
@media (max-width:480px){.marca{font-size:22px}.barra .btn-chico{padding:0 14px;font-size:13.5px}}
@media (min-width:960px){.barra-nav{display:flex}.barra .btn{margin-left:6px}}

/* Hero */
.hero{position:relative;display:grid;gap:44px;padding:calc(var(--barra-h) + 70px) var(--gutter) 80px;max-width:1380px;margin:0 auto;align-items:center;isolation:isolate}
.papel-picado{position:absolute;left:0;right:0;top:calc(var(--barra-h) - 6px);height:110px;pointer-events:none;z-index:2}
.cuerda-pp{position:absolute;inset:0 0 auto;width:100%;height:40px}
.cuerda-pp path{fill:none;stroke:rgba(255,246,234,.4);stroke-width:1.5}
/* Papel picado: la mascara recorta flores, rombos y el borde en picos de cada banderin */
.banderines{position:absolute;inset:4px 0 auto;display:flex;justify-content:space-around;padding:0 1vw;
  --corte:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 82 100'%3E%3Cpath fill-rule='evenodd' d='M0 0h82v88l-6.8 12-6.9-12-6.8 12-6.8-12-6.9 12-6.8-12-6.8 12-6.9-12-6.8 12-6.8-12-6.9 12L0 88z M41 26a8 8 0 1 0 0.1 0z M41 14l5 8h-10z M41 50l5-8h-10z M23 32l8 5-8 5z M59 32l-8 5 8 5z M14 60h10v10h-10z M58 60h10v10h-10z M36 62h10v10h-10z M30 78l5-5 5 5-5 5z M42 78l5-5 5 5-5 5z M10 10h8v8h-8z M64 10h8v8h-8z'/%3E%3C/svg%3E")}
.bandera{width:clamp(34px,5.4vw,70px);aspect-ratio:.82;transform-origin:50% 0;animation:ondear 3.2s ease-in-out infinite;
  -webkit-mask:var(--corte) center/100% 100% no-repeat;mask:var(--corte) center/100% 100% no-repeat;opacity:.92}
@keyframes ondear{0%,100%{transform:rotateZ(-4deg) skewX(-3deg)}50%{transform:rotateZ(4deg) skewX(4deg)}}
.petalos{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.hero-texto{position:relative;z-index:3}
.titular{margin:0 0 26px;font:400 clamp(44px,11vw,138px)/1 var(--f-display);text-shadow:0 6px 0 rgba(0,0,0,.28)}
.titular em{color:var(--amarillo)}
.linea{display:block;overflow:hidden;padding:0 .05em .12em 0}
.linea>span{display:inline-block}
.hero-sub{max-width:46ch;color:#e8dcef;font-size:clamp(17px,1.4vw,19.5px);margin:0 0 30px;text-wrap:pretty}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:28px}
.nota-google{margin:0;color:var(--gris);font-size:14.5px}
.nota-google b{font:400 26px/1 var(--f-display);color:var(--amarillo);margin-right:4px}
/* Arco con borde de sarape que corre */
.arco{position:relative;z-index:3;margin:0;justify-self:center;width:min(100%,500px)}
.sarape{padding:14px;border-radius:260px 260px 22px 22px;background:var(--sarape);background-size:164px 100%;animation:sarape 6s linear infinite;box-shadow:0 30px 70px -20px rgba(0,0,0,.7)}
@keyframes sarape{to{background-position:164px 0}}
.arco-dentro{overflow:hidden;border-radius:246px 246px 10px 10px;aspect-ratio:4/5;background:#000}
.arco-dentro video{width:100%;height:100%;object-fit:cover}
.arco figcaption{margin-top:14px;text-align:center;color:var(--gris);font-size:14px}
@media (min-width:960px){
  .hero{grid-template-columns:1.2fr .8fr;gap:60px;min-height:100svh}
  .titular{font-size:clamp(62px,5.5vw,100px)}  /* "Comida mexicana" cabe en una linea */
}

/* Carta: loteria */
.carta{padding:120px 0 110px;background:var(--noche-2)}
.loteria{list-style:none;margin:0 auto;padding:0 var(--gutter);max-width:1320px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;perspective:1400px}
@media (min-width:860px){.loteria{grid-template-columns:repeat(4,1fr);gap:22px}}
.carta-l{position:relative;display:block;width:100%;aspect-ratio:5/7.4;padding:0;border:0;background:none;cursor:pointer;transform-style:preserve-3d;transition:transform .8s var(--ease);color:#24152f;text-align:center}
.carta-l.volteada{transform:rotateY(180deg)}
@media (hover:hover){.carta-l:hover{transform:rotateY(180deg)}}
.cara{position:absolute;inset:0;display:flex;flex-direction:column;padding:10px;border-radius:12px;background:#fdf4e3;border:3px solid #24152f;box-shadow:0 18px 30px -14px rgba(0,0,0,.6);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.cara .num{position:absolute;top:14px;left:16px;z-index:1;font:400 22px/1 var(--f-display);color:var(--rosa);background:#fdf4e3;border-radius:50%;width:36px;height:36px;display:grid;place-items:center}
.frente img{flex:1;min-height:0;width:100%;object-fit:cover;border-radius:6px;border:2px solid #24152f}
.frente .nombre{padding:10px 4px 2px;font:400 clamp(15px,1.5vw,19px)/1.1 var(--f-display)}
.sin-foto .frente{justify-content:center;align-items:center;background:repeating-linear-gradient(45deg,#fdf4e3 0 14px,#f7e6c9 14px 28px)}
.dibujo{width:52%;margin:auto}
.atras{transform:rotateY(180deg);justify-content:center;gap:12px;padding:22px 18px;background:var(--rosa);color:#fff;border-color:#24152f;background-image:radial-gradient(rgba(255,255,255,.12) 2px,transparent 2px);background-size:16px 16px}
.atras .num{background:var(--amarillo);color:#24152f}
.atras b{font:400 clamp(20px,2vw,26px)/1.1 var(--f-display)}
.atras span:last-child{font-size:15.5px;line-height:1.45}

/* Picante */
.picante{padding:110px var(--gutter);text-align:center;background:var(--amarillo);color:var(--noche);overflow:hidden}
.picante-txt{margin:0 auto 18px;max-width:16ch;font:400 clamp(40px,7vw,104px)/1 var(--f-display)}
.picante-txt em{color:var(--rosa)}
.picante p{margin:0 auto;max-width:40ch;font-size:clamp(18px,1.8vw,22px);font-weight:500}

/* El lugar: nichos */
.lugar{padding:130px 0 120px}
.nichos{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;max-width:1320px;margin:0 auto;padding:0 var(--gutter)}
.nicho{position:relative;padding:0;border:0;background:#000;cursor:zoom-in;overflow:hidden;border-radius:150px 150px 10px 10px;aspect-ratio:3/4;color:var(--hueso)}
.nicho img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.nicho:hover img{transform:scale(1.06)}
.nicho span{position:absolute;left:0;right:0;bottom:0;padding:40px 10px 14px;background:linear-gradient(transparent,rgba(27,16,36,.85));font:400 22px/1 var(--f-display)}
.nicho::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 5px var(--c,var(--turquesa));pointer-events:none}
.n1{--c:var(--turquesa);grid-column:1/-1;aspect-ratio:16/10;border-radius:10px}
.n2{--c:var(--amarillo)}.n3{--c:var(--rosa)}.n4{--c:var(--naranja)}.n5{--c:var(--morado)}
@media (min-width:960px){
  .nichos{grid-template-columns:repeat(4,1fr);gap:22px}
  .n1{grid-column:1/3;grid-row:1/3;aspect-ratio:auto}
  .n4{margin-top:-60px}.n5{margin-top:-60px}
}
.visor{border:0;padding:0;background:transparent;max-width:min(94vw,1000px);max-height:94svh}
.visor::backdrop{background:rgba(27,16,36,.92)}
.visor img{max-height:84svh;width:auto;margin:0 auto;border-radius:10px;border:6px solid var(--amarillo)}
.visor-cerrar{display:block;margin:14px auto 0;min-height:44px;padding:0 24px;border-radius:12px;border:0;background:var(--hueso);color:var(--noche);font:700 14px var(--f-texto);cursor:pointer}

/* Opiniones */
.opiniones{display:grid;gap:40px;padding:120px var(--gutter);max-width:1320px;margin:0 auto;border-top:1px solid var(--linea)}
.op-num{margin:0;font:400 clamp(110px,15vw,210px)/.9 var(--f-display);color:var(--amarillo)}
.op-num small{display:block;margin-top:14px;font:500 15px/1.3 var(--f-texto);color:var(--gris)}
.cita{margin:0 0 30px;font:400 clamp(30px,3.6vw,52px)/1.1 var(--f-display);color:var(--hueso)}
.cita cite{display:block;margin-top:12px;font:500 13px/1 var(--f-texto);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--turquesa)}
.repiten{list-style:none;margin:0 0 26px;padding:0}
.repiten li{padding:14px 0;border-bottom:1px solid var(--linea);font-size:clamp(18px,1.7vw,22px)}
.enlace{color:var(--turquesa);font-weight:600;text-decoration:none}
.enlace:hover{text-decoration:underline}
@media (min-width:960px){.opiniones{grid-template-columns:.8fr 1.2fr;gap:80px}}

/* Domicilios: el sello */
.domicilios{display:grid;gap:50px;align-items:center;padding:120px var(--gutter);background:var(--turquesa);color:var(--noche)}
.domicilios>*{max-width:620px;justify-self:center;width:100%}
.domicilios .etiqueta{background:rgba(27,16,36,.12);color:var(--noche)}
.domicilios .h2 em{color:var(--hueso)}
.dom-texto>p{font-size:18.5px;font-weight:500}
.sello-caja{display:grid;place-items:center}
.sello{width:min(78vw,340px);aspect-ratio:1;border-radius:50%;display:grid;place-content:center;justify-items:center;gap:6px;color:var(--rosa);border:6px solid var(--rosa);outline:2px dashed var(--rosa);outline-offset:-22px;rotate:-12deg;background:rgba(255,246,234,.22)}
.sello-a{font:700 clamp(16px,2.4vw,22px)/1 var(--f-texto);letter-spacing:.3em;text-transform:uppercase}
.sello-b{font:400 clamp(22px,6.4vw,35px)/1 var(--f-display);white-space:nowrap}
.sello-c{font:600 13px/1 var(--f-texto);letter-spacing:.4em;text-transform:uppercase}
.servicios{list-style:none;padding:0;margin:22px 0 30px;display:flex;flex-wrap:wrap;gap:8px}
.servicios li{padding:9px 16px;border-radius:999px;background:rgba(27,16,36,.12);font-weight:600;font-size:14.5px}
.bienvenidos{margin:26px 0 0;font-size:15px!important;font-weight:500}
@media (min-width:960px){.domicilios{grid-template-columns:1fr 1fr;gap:80px}}

/* Visita */
.visita{display:grid;gap:44px;padding:120px var(--gutter);max-width:1320px;margin:0 auto}
.direccion{color:var(--gris);margin:14px 0 24px;font-size:18px}
.horario-caja{padding:20px 22px;border-radius:14px;background:var(--noche-2);border:1px solid var(--linea);margin-bottom:28px}
.horario-caja p{margin:10px 0 0;color:#e8dcef}
.horario-caja b{color:var(--hueso)}
.estado{display:inline-flex;align-items:center;gap:9px;font:700 13px/1 var(--f-texto);letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.estado::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--gris)}
.estado.abierto{color:var(--turquesa)}
.estado.abierto::before{background:var(--turquesa);box-shadow:0 0 0 5px rgba(31,181,168,.22);animation:latido 1.6s ease-in-out infinite}
@keyframes latido{50%{box-shadow:0 0 0 9px rgba(31,181,168,0)}}
.visita-cta{display:flex;flex-wrap:wrap;gap:12px}
.visita-mapa{min-height:380px;border-radius:14px;overflow:hidden;border:5px solid var(--rosa)}
.visita-mapa iframe{width:100%;height:100%;min-height:380px;border:0}
@media (min-width:960px){.visita{grid-template-columns:1fr 1fr;gap:70px}.visita-mapa{min-height:520px}}

/* Pie */
.pie{position:relative;padding:90px var(--gutter) calc(110px + env(safe-area-inset-bottom));text-align:center;background:var(--noche-2);color:var(--gris);font-size:14.5px}
.pie::before{content:"";position:absolute;inset:0 0 auto;height:12px;background:var(--sarape)}
.pie-marca{margin:0 0 12px;font:400 clamp(52px,9vw,110px)/1 var(--f-display);color:var(--hueso)}
.pie p{margin:6px 0}
.pie a{color:var(--amarillo)}

.wa-flotante{position:fixed;z-index:60;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));width:58px;height:58px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.45);transition:transform .3s var(--ease)}
.wa-flotante:hover{transform:scale(1.07)}
.wa-flotante svg{width:30px;height:30px;fill:#fff}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .precarga{display:none!important}
}
