.reservations-section{margin:56px auto 20px;max-width:980px;padding:clamp(20px,4vw,42px);border:1px solid rgba(230,190,84,.25);border-radius:32px;background:linear-gradient(150deg,rgba(22,19,13,.98),rgba(6,6,6,.99) 52%);box-shadow:0 32px 90px #0009}.reservations-heading{text-align:center;max-width:680px;margin:auto}.reservations-heading span,.reservation-dialog-head span{color:#e9bd4f;font-size:.7rem;font-weight:800;letter-spacing:.24em}.reservations-heading h2{margin:8px 0;color:#f8e6a2;font-family:Georgia,serif;font-size:clamp(2.2rem,6vw,3.8rem);font-weight:500}.reservations-heading p{margin:0;color:#bdb6a8}.availability-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin:28px auto 30px;max-width:720px}.availability-form label,.reservation-dialog label{display:block;margin-bottom:7px;color:#ede2bd;font-size:.82rem;font-weight:800}.availability-form input,.reservation-dialog input,.reservation-dialog textarea{box-sizing:border-box;width:100%;min-height:50px;border:1px solid #504524;border-radius:14px;background:#0b0b0b;color:#fff;padding:13px 14px;font:inherit;outline:none}.availability-form input:focus,.reservation-dialog input:focus,.reservation-dialog textarea:focus{border-color:#e3b84d;box-shadow:0 0 0 3px rgba(227,184,77,.12)}.availability-form button,.confirm-reservation{min-height:50px;border:0;border-radius:14px;background:linear-gradient(135deg,#f5df8c,#bd861d);color:#171004;padding:12px 22px;font-weight:900;box-shadow:0 8px 24px rgba(190,135,29,.18);cursor:pointer}.map-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;max-width:620px;margin:0 auto 12px;padding:0 4px}.map-title{display:flex;flex-direction:column}.map-title span{color:#887b5a;font-size:.61rem;font-weight:900;letter-spacing:.22em}.map-title strong{margin-top:3px;color:#f5e7bd;font-family:Georgia,serif;font-size:1.25rem;font-weight:500}.map-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;color:#bdb7aa;font-size:.72rem}.map-legend span{display:flex;align-items:center;gap:6px;white-space:nowrap}.map-legend i{display:inline-block;width:10px;height:10px;border-radius:50%}.map-legend .free{background:#e9bd4f;box-shadow:0 0 0 3px rgba(233,189,79,.12)}.map-legend .busy{background:#3e3e3e}.map-legend .selected{background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.13)}
.venue-map{position:relative;isolation:isolate;aspect-ratio:9/15;max-width:620px;margin:auto;overflow:hidden;border:2px solid #a77b20;border-radius:24px 24px 16px 16px;background:#090a09;box-shadow:0 26px 70px #000a,0 0 0 5px rgba(233,189,79,.035) inset}.venue-map:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 50% 58%,rgba(177,121,22,.1),transparent 44%),linear-gradient(145deg,#11120f,#070807)}.venue-grid{position:absolute;inset:0;z-index:-1;opacity:.2;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:30px 30px}.venue-box{position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;border:1px solid rgba(230,190,84,.38);background:linear-gradient(145deg,#271f0e,#12120e);color:#f2d77c;text-align:center;box-shadow:0 8px 24px #0007}.venue-box span{font-size:clamp(.55rem,1.9vw,.8rem);font-weight:950;letter-spacing:.11em}.cantina{left:0;top:0;width:49%;height:11%;border-width:0 1px 1px 0;border-radius:0 0 18px 0}.bathroom{right:0;top:0;width:48%;height:9%;border-width:0 0 1px 1px;border-radius:0 0 0 18px}.center-bar{left:46%;width:9%;height:15%;border-radius:12px}.center-bar span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:clamp(.48rem,1.6vw,.68rem)}.bar-one{top:18%}.bar-two{top:41%}.dj{right:0;top:28%;width:15%;height:22%;border-width:1px 0 1px 1px;border-radius:18px 0 0 18px}.dj span{writing-mode:vertical-rl;transform:rotate(180deg)}.stage{right:0;bottom:0;width:31%;height:20%;border-width:1px 0 0 1px;border-radius:20px 0 0 0;background:radial-gradient(circle at 100% 100%,#382a11,#17140d 74%)}.stage:before{content:"";position:absolute;inset:10%;border:1px solid rgba(236,193,75,.2);border-radius:12px 0 0 0}.entry{left:37%;bottom:-1px;width:28%;height:6%;border-width:1px 1px 0;border-radius:16px 16px 0 0}.dance-floor{position:absolute;left:35%;top:62%;z-index:1;display:flex;flex-direction:column;align-items:center;color:rgba(242,219,147,.48);letter-spacing:.22em}.dance-floor span{font-family:Georgia,serif;font-size:clamp(1rem,4vw,1.6rem)}.dance-floor small{margin-top:4px;color:rgba(174,163,131,.36);font-size:clamp(.42rem,1.3vw,.58rem);letter-spacing:.12em}
#venueTables{position:absolute;inset:0;z-index:4}.venue-table{position:absolute;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);border:1px solid #dcb143;background:radial-gradient(circle at 35% 25%,#4b3815,#1b160b 67%);color:#f8df91;font-weight:900;box-shadow:0 7px 16px #000a,0 0 0 4px rgba(220,177,67,.07);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.venue-table span{font-family:Georgia,serif;font-size:clamp(.48rem,1.4vw,.66rem);letter-spacing:.06em}.venue-table b{position:absolute;right:-7px;top:-7px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 3px;border:1px solid #e2bd5e;border-radius:10px;background:#080807;color:#f8e29c;font-size:.57rem}.venue-table.rectangular{width:clamp(54px,12vw,84px);height:clamp(28px,5.8vw,40px);border-radius:7px}.venue-table.rectangular:before,.venue-table.rectangular:after{content:"";position:absolute;top:18%;bottom:18%;width:7px;border:1px solid rgba(224,183,76,.48);background:#17130b}.venue-table.rectangular:before{left:-9px;border-radius:4px 0 0 4px}.venue-table.rectangular:after{right:-9px;border-radius:0 4px 4px 0}.venue-table.round{width:clamp(38px,8vw,54px);height:clamp(38px,8vw,54px);border-radius:50%}.venue-table.round:after{content:"";position:absolute;inset:-5px;border:1px dashed rgba(224,183,76,.32);border-radius:50%}.venue-table:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.08);box-shadow:0 9px 24px #000,0 0 22px rgba(223,180,69,.2)}.venue-table:disabled{border-color:#484842;background:#24241f;color:#6f6d63;box-shadow:0 5px 10px #0005;cursor:not-allowed}.venue-table:disabled b{border-color:#555;color:#777}.venue-table.selected{border-color:#fff;background:linear-gradient(145deg,#f4dc89,#c18a20);color:#151005;box-shadow:0 0 0 4px rgba(255,255,255,.18),0 0 28px rgba(244,220,137,.4)}
.table-1{left:14%;top:15%}.table-2{left:14%;top:21%}.table-3{left:14%;top:27%}.table-4{left:14%;top:33%}.table-5{left:14%;top:39%}.table-6{left:14%;top:45%}.table-7{left:14%;top:51%}.table-8{left:14%;top:57%}.table-9{left:14%;top:63%}.table-10{left:88%;top:13%}.table-11{left:88%;top:19%}.table-12{left:88%;top:25%}.table-13{left:88%;top:54%}.table-14{left:88%;top:60%}.table-15{left:12%;top:69%}.table-16{left:12%;top:77%}.table-17{left:12%;top:85%}.table-18{left:12%;top:93%}.table-19{left:12%;top:98%}.table-20{left:30%;top:98%}.table-21{left:88%;top:67%}.table-22{left:88%;top:77%}.table-23{left:73%;top:82%}.reservation-status{margin:16px auto 0;min-height:24px;text-align:center;color:#d8ca9c}.reservation-dialog{width:min(92vw,520px);border:1px solid #d4af37;border-radius:20px;background:#090909;color:#fff;padding:0}.reservation-dialog::backdrop{background:#000c}.reservation-dialog form{padding:22px}.reservation-dialog-head{display:flex;justify-content:space-between;align-items:start}.reservation-dialog-head h2{margin:4px 0 16px;color:#f3d66b}.reservation-dialog-head button{border:1px solid #6f571d;border-radius:10px;background:#17130a;color:#fff;padding:8px 12px}.reservation-dialog textarea{resize:vertical}.reservation-dialog label{margin-top:14px}.selected-slot{padding:10px;border-radius:10px;background:#17130a;color:#e6cf79}.reservation-consent{display:flex!important;gap:9px;align-items:flex-start;font-weight:400!important;font-size:.88rem}.reservation-consent input{width:auto;min-height:0}.reservation-error{color:#ff8e8e;min-height:20px}.confirm-reservation{width:100%;margin-top:8px}@media(max-width:650px){.reservations-section{padding:24px 10px;border-radius:24px}.availability-form{grid-template-columns:1fr 1fr}.availability-form button{grid-column:1/-1}.map-toolbar{display:block;padding:0 6px}.map-title{margin-bottom:10px}.map-legend{justify-content:flex-start;gap:10px}.venue-map{width:100%}.venue-table.rectangular{width:46px;height:25px}.venue-table.round{width:34px;height:34px}.venue-table b{right:-6px;top:-7px;min-width:16px;height:16px;font-size:.5rem}.table-19,.table-20{top:97%}}@media(max-width:380px){.map-legend{font-size:.64rem}.venue-table.rectangular{width:42px;height:23px}.venue-table.round{width:31px;height:31px}.venue-box span{font-size:.5rem}}

/* Plano luxury v5 */
.venue-map{border:1px solid #c09635;border-radius:28px 28px 18px 18px;background:#080907;box-shadow:0 34px 90px #000c,0 0 0 5px #080907,0 0 0 6px rgba(223,178,67,.2)}
.venue-map:before{background:radial-gradient(ellipse at 50% 64%,rgba(215,165,49,.11),transparent 46%),linear-gradient(118deg,transparent 0 48%,rgba(255,255,255,.018) 49% 51%,transparent 52%),linear-gradient(155deg,#141510,#060706 70%)}
.venue-map:after{content:"";position:absolute;inset:7px;z-index:10;pointer-events:none;border:1px solid rgba(244,215,125,.1);border-radius:20px 20px 12px 12px}
.venue-grid{opacity:.28;background-image:linear-gradient(30deg,rgba(255,255,255,.028) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.028) 87.5%),linear-gradient(150deg,rgba(255,255,255,.028) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.028) 87.5%);background-size:22px 38px}
.venue-box{border-color:rgba(230,190,84,.45);background:linear-gradient(145deg,rgba(57,43,18,.97),rgba(18,17,13,.99) 62%);box-shadow:0 10px 28px #0009,inset 0 1px rgba(255,239,180,.09),inset 0 -10px 24px #0004}
.venue-box span{letter-spacing:.15em;text-shadow:0 1px 10px rgba(243,207,111,.25)}
.dance-floor{left:41%;top:64%;letter-spacing:.25em}.dance-floor:before{content:"";position:absolute;left:50%;top:50%;width:180px;height:180px;transform:translate(-50%,-45%);border:1px solid rgba(224,177,67,.07);border-radius:50%;box-shadow:0 0 50px rgba(211,156,34,.06),inset 0 0 45px rgba(211,156,34,.04)}
.venue-table{background:linear-gradient(145deg,#503a14 0,#261b0b 42%,#100f0b 100%);box-shadow:0 9px 20px #000c,0 0 0 4px rgba(220,177,67,.07),inset 0 1px rgba(255,238,178,.18)}
.high-top{position:absolute;left:35%;z-index:2;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%);color:rgba(210,192,143,.42)}
.high-top i{position:relative;display:block;width:clamp(28px,7vw,45px);height:clamp(9px,2vw,13px);border:1px solid rgba(235,218,170,.5);border-radius:50%;background:radial-gradient(ellipse,#f3ecd9 0 20%,#726b5c 48%,#1b1b18 72%);box-shadow:0 5px 10px #000b,0 0 14px rgba(255,242,199,.08)}
.high-top i:before{content:"";position:absolute;left:50%;top:90%;width:2px;height:clamp(18px,4vw,29px);transform:translateX(-50%);background:linear-gradient(#bdb5a2,#4d4a43)}
.high-top i:after{content:"";position:absolute;left:50%;top:calc(90% + clamp(17px,4vw,28px));width:17px;height:4px;transform:translateX(-50%);border-radius:50%;background:#918a7a}
.high-top span{margin-top:clamp(22px,5vw,34px);font-size:clamp(.3rem,.9vw,.42rem);font-weight:800;letter-spacing:.12em;opacity:.55}.high-top-1{top:21%}.high-top-2{top:32%}.high-top-3{top:43%}.high-top-4{top:54%}.high-top-5{top:65%}
.table-19{left:12%;top:94%}.table-20{left:27%;top:94%}.table-21{left:88%;top:67%}.table-22{left:88%;top:76%}.table-23{left:76%;top:76%}
@media(max-width:650px){.table-19,.table-20{top:94%}.high-top{left:35%}}

/* Estados informativos: las posiciones anteriores forman el croquis y no se modifican. */
.venue-table{cursor:default;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}
.venue-table small{position:absolute;left:50%;top:calc(100% + 4px);transform:translateX(-50%);padding:2px 4px;border-radius:4px;background:#090909e8;color:#f2d77e;font-size:clamp(.36rem,1vw,.5rem);line-height:1;white-space:nowrap}
.venue-table.reserved{border-color:#ff5656;background:radial-gradient(circle at 35% 25%,#8f2525,#370b0b 70%);color:#fff0f0;box-shadow:0 7px 16px #000a,0 0 16px rgba(226,37,37,.35)}
.venue-table.reserved b{border-color:#ff7474;background:#260606;color:#fff}
.venue-table.reserved small{background:#7f1717;color:#fff}
.map-legend .busy{background:#d62e2e;box-shadow:0 0 0 3px rgba(214,46,46,.14)}

/* Cabina real del croquis: sector ubicado entre las mesas 18 y 19. */
.venue-box.dj{right:auto;left:0;top:87.5%;width:40%;height:10%;box-sizing:border-box;display:block;padding:0;border-width:1px 1px 1px 0;border-radius:0 18px 18px 0;background:radial-gradient(circle at 88% 35%,rgba(214,165,54,.22),transparent 35%),linear-gradient(145deg,#30230e,#100f0b 72%)}
.venue-box.dj span{position:absolute;right:2px;bottom:8px;width:45px;writing-mode:horizontal-tb;transform:none;font-size:clamp(.34rem,1.05vw,.5rem);line-height:1.15;letter-spacing:.05em}
.dj-silhouette{position:absolute;right:10px;top:4px;width:48px;height:54px;overflow:visible;filter:drop-shadow(0 0 8px rgba(237,194,83,.3))}
.dj-silhouette>*{vector-effect:non-scaling-stroke}.dj-head{fill:#d6ac4b}.dj-headphones,.dj-body,.dj-arms{fill:none;stroke:#f1d278;stroke-width:5;stroke-linecap:round}.dj-console{fill:#16130d;stroke:#d9b65a;stroke-width:2}.dj-deck{fill:none;stroke:#f0d27e;stroke-width:2}
@media(max-width:650px){.venue-box.dj{height:9.5%}.dj-silhouette{right:6px;width:38px;height:45px}.venue-box.dj span{right:2px;bottom:5px;width:47px;font-size:.36rem}}

/* Plano confirmado 2026: imagen exacta sin la columna lateral de referencias. */
.venue-map-confirmed{aspect-ratio:826/1536;max-width:680px;border-radius:8px;background:#050605}
.venue-map-confirmed:before,.venue-map-confirmed:after{display:none}
.venue-map-confirmed>img{position:absolute;inset:0 auto 0 0;width:123.97%;height:100%;max-width:none;object-fit:fill}
.confirmed-dj-person{position:absolute;z-index:3;left:89%;top:39%;width:5.2%;height:auto;filter:drop-shadow(0 0 5px #000);pointer-events:none}
.confirmed-dj-person path,.confirmed-dj-person circle{fill:#0b0b0b;stroke:#f1cb63;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.reserve-whatsapp{display:flex;align-items:center;justify-content:center;max-width:680px;min-height:54px;margin:18px auto 0;border:1px solid #6ee39a;border-radius:14px;background:linear-gradient(135deg,#31d36b,#149846);color:#04170a;text-decoration:none;font-weight:950;box-shadow:0 12px 30px rgba(27,190,90,.2)}
.reserve-whatsapp:before{content:"WhatsApp";margin-right:9px;padding:3px 7px;border-radius:7px;background:#fff;color:#159447;font-size:.7rem}
.status-title{max-width:680px;margin:18px auto 8px;color:#cbbd91;text-align:center;font-size:.7rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.table-status-grid{position:static!important;inset:auto!important;z-index:auto!important;display:flex;flex-wrap:wrap;justify-content:center;gap:7px;width:auto;height:auto;max-width:680px;margin:0 auto}
.table-status{display:grid;place-items:center;width:35px;height:35px;border:1px solid #b78b2d;border-radius:50%;background:#17130b;color:#f2d77e;box-shadow:0 3px 9px #0007}
.table-status b{font-size:.72rem}.table-status span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.table-status.reserved{border-color:#ef4f55;background:#501317;color:#fff}.table-status.reserved b{border-color:#ff8a8f}
@media(max-width:650px){.venue-map-confirmed{width:100%}.confirmed-dj-person{left:88.8%;top:39%;width:5.5%}.table-status{width:31px;height:31px}.table-status b{font-size:.66rem}}

/* Plano definitivo de 32 números: el archivo original se conserva intacto. */
.venue-map-confirmed{aspect-ratio:2/3;max-width:680px}
.venue-map-confirmed>img{inset:0;width:100%;height:100%;object-fit:fill}
.confirmed-dj-person{display:none}
.central-number{position:absolute;z-index:4;left:33.4%;display:grid;place-items:center;width:5.25%;aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid #ffd05a;border-radius:50%;background:radial-gradient(circle,#17130b 45%,#050505 78%);color:#ffe7a0;font-family:Arial,sans-serif;font-size:clamp(.54rem,2.05vw,1.45rem);font-weight:700;line-height:1;box-shadow:0 0 8px #ffb51e,inset 0 0 5px #9a6500}
.central-number-26{width:6.35%;background:radial-gradient(circle,#0a0907 58%,#050505 76%);box-shadow:0 0 8px #ffb51e,inset 0 0 7px #9a6500}
.central-number-26{top:13.74%}.central-number-27{top:22.46%}.central-number-28{top:30.92%}.central-number-29{top:39.39%}.central-number-30{top:47.79%}.central-number-31{top:56.18%}.central-number-32{top:64.45%}
.reservations-share-link{display:block;max-width:680px;margin:10px auto 0;color:#e6ca78;text-align:center;text-decoration:underline;text-underline-offset:4px;font-size:.82rem;font-weight:800}
