/* =========================================================
   TABLE REQUESTS  (the request form + the guest's own page)
   Written in the site's dark palette; make_cinco.py turns
   these colors into Cinco's bright paper look automatically.
   ========================================================= */
.rsv-overlay{ padding:1.2rem; }
.rsv-box{
  width:min(720px, 100%); max-height:92vh; padding:0; overflow-x:hidden;
  background:linear-gradient(180deg, rgba(34,27,21,0.97), rgba(20,17,13,0.98));
  border:1px solid rgba(247,237,224,.16); border-radius:26px;
  box-shadow:0 40px 90px rgba(0,0,0,.6), 0 0 0 1px rgba(243,167,18,.06) inset;
}
.rsv-overlay.open .rsv-box{ animation:rsvIn .5s cubic-bezier(.2,.9,.25,1.15); }
@keyframes rsvIn{ from{ opacity:0; transform:translateY(26px) scale(.97); } to{ opacity:1; transform:none; } }
.rsv-box .modal-close{ z-index:3; top:18px; right:18px; width:38px; height:38px; border-radius:50%; background:rgba(20,17,13,.6); border:1px solid rgba(247,237,224,.18); opacity:.85; display:flex; align-items:center; justify-content:center; font-size:1rem; }
.rsv-inner{ position:relative; padding:0 2rem 2rem; }

/* header with a moving papel strip */
.rsv-head{ position:relative; margin:0 -2rem 1.2rem; padding:2.1rem 2rem 1.3rem; overflow:hidden;
  background:radial-gradient(120% 140% at 0% 0%, rgba(243,167,18,.18), transparent 55%), radial-gradient(120% 140% at 100% 0%, rgba(47,179,217,.14), transparent 55%); }
.rsv-strip{ position:absolute; left:0; right:0; top:0; height:7px;
  background:repeating-linear-gradient(90deg, #d92b1f 0 40px, #f2b705 40px 80px, #1f8a3d 80px 120px, #2fb3d9 120px 160px, #7b3fa0 160px 200px, #e0561f 200px 240px);
  background-size:240px 7px; animation:rsvStrip 12s linear infinite; }
.rsv-strip::after{ content:''; position:absolute; left:0; right:0; top:7px; height:9px;
  background:radial-gradient(circle at 10px -2px, transparent 7px, rgba(20,17,13,0) 7.5px) 0 0 / 20px 9px; }
@keyframes rsvStrip{ to{ background-position:240px 0; } }
.rsv-kicker{ display:inline-flex; align-items:center; gap:.5rem; padding:.36rem .8rem; border-radius:999px; font-size:.7rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--marigold); background:rgba(243,167,18,.12); border:1px solid rgba(243,167,18,.35); }
.rsv-kicker i{ width:8px; height:8px; border-radius:50%; background:var(--marigold); box-shadow:0 0 0 0 rgba(243,167,18,.6); animation:rsvPing 1.8s ease-out infinite; }
@keyframes rsvPing{ 0%{ box-shadow:0 0 0 0 rgba(243,167,18,.55); } 80%,100%{ box-shadow:0 0 0 10px rgba(243,167,18,0); } }
.rsv-head h3, .rsv-card h1{ font-size:clamp(2rem, 6vw, 2.9rem) !important; line-height:1 !important; margin:.7rem 0 .35rem !important; }
.rsv-where{ color:rgba(247,237,224,.62); font-size:.92rem; }
.rsv-notice{ display:flex; gap:.7rem; align-items:flex-start; padding:.9rem 1rem; border-radius:14px; margin-bottom:1.4rem; font-size:.9rem; line-height:1.5;
  color:rgba(247,237,224,.86); background:rgba(47,179,217,.09); border:1px solid rgba(47,179,217,.32); }
.rsv-notice::before{ content:'i'; flex:0 0 22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; font:800 .8rem/1 'Fraunces', serif; color:#14110d; background:#7fd6f0; margin-top:1px; }
.rsv-notice b{ color:#7fd6f0; }

/* sections */
.rsv-sec{ margin-bottom:1.5rem; animation:rsvUp .5s calc(var(--d, 0) * .07s) both cubic-bezier(.2,.9,.3,1); }
@keyframes rsvUp{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
.rsv-sec h4{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; font-family:'Work Sans', sans-serif; font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:rgba(247,237,224,.75); margin-bottom:.8rem; }
.rsv-sec h4 small{ font-size:.82rem; letter-spacing:0; text-transform:none; font-weight:600; color:var(--marigold); margin-left:auto; }
.rsv-n{ width:24px; height:24px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:.74rem; letter-spacing:0; color:#14110d; background:var(--marigold); }

/* party size */
.rsv-party{ display:grid; grid-template-columns:repeat(9, 1fr); gap:.45rem; }
.rsv-p{ aspect-ratio:1; min-height:44px; border-radius:14px; font:400 1.35rem/1 'Anton', sans-serif; color:var(--cream);
  background:rgba(247,237,224,.05); border:1.5px solid rgba(247,237,224,.14); transition:transform .25s cubic-bezier(.2,.9,.3,1.6), background .2s, border-color .2s, box-shadow .2s; }
.rsv-p:hover{ transform:translateY(-3px); border-color:rgba(243,167,18,.55); }
.rsv-p.on{ background:var(--marigold); border-color:var(--marigold); color:#14110d; transform:translateY(-3px) scale(1.06); box-shadow:0 10px 24px -6px rgba(243,167,18,.55); }
.rsv-p-big{ font-size:1.05rem; }
@media (max-width:560px){ .rsv-party{ grid-template-columns:repeat(5, 1fr); } }

/* days */
.rsv-days-wrap{ display:flex; gap:.5rem; align-items:stretch; min-width:0; }
#rsvPicker, #rsvChange, .rsv-when, .rsv-sec{ min-width:0; }
.rsv-days{ flex:1; min-width:0; display:flex; gap:.5rem; overflow-x:auto; scroll-snap-type:x proximity; padding:.2rem .1rem .55rem; scrollbar-width:thin; -webkit-mask-image:linear-gradient(90deg, #000 88%, transparent); mask-image:linear-gradient(90deg, #000 88%, transparent); }
.rsv-day{ flex:0 0 74px; scroll-snap-align:start; display:flex; flex-direction:column; align-items:center; gap:.15rem; padding:.65rem .3rem; border-radius:16px; color:var(--cream);
  background:rgba(247,237,224,.04); border:1.5px solid rgba(247,237,224,.13); transition:transform .25s cubic-bezier(.2,.9,.3,1.5), border-color .2s, background .2s; }
.rsv-day b{ font:400 1.6rem/1 'Anton', sans-serif; }
.rsv-day .rd-dow, .rsv-day .rd-mon{ font-size:.68rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(247,237,224,.6); white-space:nowrap; }
.rsv-day:hover{ transform:translateY(-3px); border-color:rgba(243,167,18,.5); }
.rsv-day.on{ background:linear-gradient(160deg, rgba(243,167,18,.28), rgba(243,167,18,.1)); border-color:var(--marigold); box-shadow:0 0 0 3px rgba(243,167,18,.16); }
.rsv-day.on .rd-dow, .rsv-day.on .rd-mon{ color:var(--marigold); }
.rsv-day.off{ opacity:.42; }
.rsv-day.off:hover{ transform:none; border-color:rgba(247,237,224,.13); }
.rsv-more{ position:relative; flex:0 0 74px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.3rem; border-radius:16px; cursor:pointer; text-align:center;
  font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--marigold); border:1.5px dashed rgba(243,167,18,.45); margin-bottom:.55rem; }
.rsv-more svg{ width:22px; height:22px; }
.rsv-more input{ position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; color-scheme:dark; }
.rsv-more:hover{ background:rgba(243,167,18,.08); }

/* times */
.rsv-closes{ font-size:.78rem; color:rgba(247,237,224,.5); margin:-.3rem 0 .6rem; }
.rsv-slots{ display:grid; grid-template-columns:repeat(auto-fill, minmax(92px, 1fr)); gap:.45rem; max-height:248px; overflow-y:auto; padding:.15rem .15rem .3rem; }
.rsv-slot{ position:relative; padding:.72rem .4rem; border-radius:12px; font-weight:700; font-size:.9rem; color:var(--cream); white-space:nowrap;
  background:rgba(247,237,224,.05); border:1.5px solid rgba(247,237,224,.13); animation:rsvUp .35s calc(var(--i) * 12ms) both;
  transition:transform .2s cubic-bezier(.2,.9,.3,1.6), background .2s, border-color .2s, color .2s; }
.rsv-slot:hover{ transform:translateY(-2px); border-color:rgba(243,167,18,.55); }
.rsv-slot.on{ background:var(--marigold); color:#14110d; border-color:var(--marigold); transform:scale(1.04); box-shadow:0 8px 20px -6px rgba(243,167,18,.6); }
.rsv-slot i{ position:absolute; top:4px; right:6px; font-style:normal; font-size:.9rem; line-height:1; color:rgba(247,237,224,.45); }
.rsv-slot i svg{ width:11px; height:11px; }
.rsv-slot.s-late, .rsv-slot.s-paused, .rsv-slot.s-blocked{ color:rgba(247,237,224,.55); border-style:dashed; }
.rsv-slot.s-late.on, .rsv-slot.s-paused.on, .rsv-slot.s-blocked.on{ background:rgba(47,179,217,.16); border-color:#2fb3d9; border-style:solid; color:var(--cream); box-shadow:none; }
.rsv-wait{ display:flex; align-items:center; gap:.6rem; color:rgba(247,237,224,.6); font-size:.9rem; padding:1rem 0; }
.rsv-spin{ width:18px; height:18px; border-radius:50%; border:2.5px solid rgba(247,237,224,.18); border-top-color:var(--marigold); animation:rsvSpin .8s linear infinite; }
@keyframes rsvSpin{ to{ transform:rotate(360deg); } }

/* call-us notes */
.rsv-note{ padding:1rem 1.1rem; border-radius:16px; background:rgba(247,237,224,.05); border:1px solid rgba(247,237,224,.14); margin-top:.8rem; }
.rsv-note p{ font-size:.94rem; line-height:1.55; color:rgba(247,237,224,.86); }
.rsv-note.call{ background:linear-gradient(140deg, rgba(47,179,217,.14), rgba(47,179,217,.05)); border-color:rgba(47,179,217,.4); }
.rsv-note .rsv-call{ margin-top:.8rem; }
.rsv-pop{ animation:rsvPop .4s cubic-bezier(.2,.9,.3,1.4); }
@keyframes rsvPop{ from{ opacity:0; transform:scale(.96) translateY(-6px); } to{ opacity:1; transform:none; } }
.rsv-call svg, .rsv-acts .btn svg{ width:18px; height:18px; }

/* details */
.rsv-form{ transition:opacity .3s ease, filter .3s ease; }
.rsv-form.dim{ opacity:.45; filter:saturate(.6); }
.rsv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.rsv-span{ grid-column:1 / -1; }
@media (max-width:560px){ .rsv-grid{ grid-template-columns:1fr; } }
.rsv-f{ display:flex; flex-direction:column; gap:.38rem; }
.rsv-f > span{ font-size:.76rem; font-weight:700; letter-spacing:.04em; color:rgba(247,237,224,.72); }
.rsv-f em{ font-style:normal; font-weight:500; color:rgba(247,237,224,.42); }
.rsv-f small{ font-size:.72rem; color:rgba(247,237,224,.45); }
.rsv-f input, .rsv-f textarea{ padding:.85rem 1rem; border-radius:12px; border:1.5px solid rgba(247,237,224,.14); background:rgba(0,0,0,.28); color:var(--cream); font:inherit; font-size:1rem; color-scheme:dark; resize:vertical; }
.rsv-f input:focus, .rsv-f textarea:focus{ outline:none; border-color:var(--marigold); box-shadow:0 0 0 3px rgba(243,167,18,.2); }
.rsv-err{ margin-top:.9rem; padding:.7rem .9rem; border-radius:12px; font-size:.9rem; font-weight:600; color:#ffb4a8; background:rgba(217,43,31,.12); border:1px solid rgba(217,43,31,.4); }
.rsv-err.shake{ animation:shake .4s ease; }
.rsv-send{ width:100%; justify-content:center; margin-top:1.2rem; padding:1.1rem 2rem; font-size:.95rem; position:relative; overflow:hidden; }
.rsv-send::after{ content:''; position:absolute; inset:0; background:linear-gradient(110deg, transparent 30%, rgba(255,255,255,.45) 50%, transparent 70%); transform:translateX(-120%); animation:rsvShine 3.2s ease-in-out infinite; }
@keyframes rsvShine{ 0%,60%{ transform:translateX(-120%); } 100%{ transform:translateX(120%); } }
.rsv-send:disabled{ opacity:.5; cursor:not-allowed; transform:none !important; box-shadow:none !important; }
.rsv-send:disabled::after{ display:none; }
.rsv-send.busy span::before{ content:''; display:inline-block; width:14px; height:14px; margin-right:.5rem; vertical-align:-2px; border-radius:50%; border:2px solid rgba(20,17,13,.3); border-top-color:#14110d; animation:rsvSpin .8s linear infinite; }
.rsv-fine{ margin-top:.8rem; font-size:.76rem; line-height:1.5; color:rgba(247,237,224,.45); text-align:center; }
.rsv-ts{ margin-top:1rem; }

/* sent */
.rsv-sent{ text-align:center; padding:.6rem 0 .4rem; }
.rsv-check{ width:86px; height:86px; margin:0 auto .6rem; color:#3fd07a; }
.rsv-check svg{ width:100%; height:100%; }
.rsv-ck-c{ stroke-dasharray:150; stroke-dashoffset:150; animation:rsvDraw .7s .1s forwards ease-out; }
.rsv-ck-p{ stroke-dasharray:40; stroke-dashoffset:40; animation:rsvDraw .45s .65s forwards ease-out; }
@keyframes rsvDraw{ to{ stroke-dashoffset:0; } }
.rsv-sent-h{ font-size:2.4rem !important; margin:0 0 .5rem !important; }
.rsv-pill{ display:inline-block; padding:.35rem .9rem; border-radius:999px; font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#ffd36b; background:rgba(242,183,5,.14); border:1px solid rgba(242,183,5,.45); }
.rsv-sent-b{ max-width:44ch; margin:1rem auto 0; font-size:.98rem; line-height:1.6; color:rgba(247,237,224,.8); }
.rsv-sent-b a{ color:var(--marigold); word-break:break-all; }
.rsv-done{ margin-top:1.4rem; }
.rsv-sum{ display:flex; align-items:center; gap:.9rem; text-align:left; max-width:420px; margin:1.2rem auto 0; padding:.95rem 1.1rem; border-radius:16px; border:1.5px solid rgba(243,167,18,.45); background:rgba(243,167,18,.07); }
.rsv-sum > span{ flex:0 0 44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; color:#14110d; background:var(--marigold); }
.rsv-sum > span svg{ width:22px; height:22px; }
.rsv-sum b{ display:block; font-family:'Fraunces', serif; font-size:1.12rem; }
.rsv-sum div span{ font-size:.92rem; color:rgba(247,237,224,.75); }

/* the guest's own page */
.rsv-page{ min-height:72vh; display:flex; align-items:flex-start; justify-content:center; padding:7.5rem 5vw 4rem; }
.rsv-manage{ width:min(640px, 100%); min-width:0; }
/* reserve.html: the request form on its own page */
.rsv-stand{ width:min(720px, 100%); min-width:0; }
.rsv-box.rsv-standalone{ max-height:none; border-radius:26px; animation:rsvIn .5s cubic-bezier(.2,.9,.25,1.15); }
.rsv-card{ position:relative; width:100%; min-width:0; padding:2.6rem 2rem 2rem; border-radius:26px; overflow:hidden; text-align:center;
  background:linear-gradient(180deg, rgba(34,27,21,.92), rgba(20,17,13,.96)); border:1px solid rgba(247,237,224,.14); box-shadow:0 30px 70px rgba(0,0,0,.45); animation:rsvIn .55s cubic-bezier(.2,.9,.25,1.15); }
.rsv-card.busy{ pointer-events:none; opacity:.7; }
.rsv-card .rsv-strip{ height:8px; }
.rsv-hi{ font-family:'Fraunces', serif; font-size:1.1rem; color:rgba(247,237,224,.75); }
.rsv-status{ display:flex; flex-direction:column; gap:.3rem; max-width:460px; margin:1.3rem auto 0; padding:.95rem 1.1rem; border-radius:16px; background:rgba(247,237,224,.05); border:1px solid rgba(247,237,224,.14); }
.rsv-status b{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; }
.rsv-status span{ font-size:.94rem; line-height:1.5; color:rgba(247,237,224,.8); }
.rsv-status.s-pending b{ color:#ffd36b; } .rsv-status.s-pending{ border-color:rgba(242,183,5,.4); background:rgba(242,183,5,.08); }
.rsv-status.s-confirmed b{ color:#5be08e; } .rsv-status.s-confirmed{ border-color:rgba(63,208,122,.45); background:rgba(63,208,122,.08); }
.rsv-status.s-tentative b{ color:#7fd6f0; } .rsv-status.s-tentative{ border-color:rgba(47,179,217,.45); background:rgba(47,179,217,.08); }
.rsv-status.s-rebook b, .rsv-status.s-expired b{ color:#ff9c8f; } .rsv-status.s-rebook, .rsv-status.s-expired{ border-color:rgba(217,43,31,.45); background:rgba(217,43,31,.08); }
.rsv-acts{ display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; margin-top:1.5rem; }
.rsv-danger:hover{ border-color:#ff7b6b !important; color:#ff7b6b !important; }
.rsv-sub-h{ font-size:1.6rem !important; margin:1.6rem 0 .8rem !important; }
.rsv-card .rsv-notice{ text-align:left; }
.rsv-card #rsvChange{ text-align:left; margin-top:1rem; }
.rsv-alts-h{ margin-top:1.4rem; font-weight:700; color:rgba(247,237,224,.85); }
.rsv-alts{ display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; margin-top:.8rem; }
.rsv-alt{ min-width:140px; display:flex; flex-direction:column; gap:.2rem; padding:.95rem 1.1rem; border-radius:16px; color:var(--cream); background:rgba(243,167,18,.1); border:1.5px solid rgba(243,167,18,.5); transition:transform .25s cubic-bezier(.2,.9,.3,1.6), background .2s; }
.rsv-alt b{ font:400 1.5rem/1 'Anton', sans-serif; color:var(--marigold); }
.rsv-alt span{ font-size:.85rem; color:rgba(247,237,224,.75); }
.rsv-alt:hover{ transform:translateY(-4px) scale(1.03); background:rgba(243,167,18,.2); }
.rsv-flash{ margin-top:1.2rem; padding:.75rem 1rem; border-radius:12px; font-weight:600; color:#ffb4a8; background:rgba(217,43,31,.1); border:1px solid rgba(217,43,31,.35); }
.rsv-flash.ok{ color:#7ff0ac; background:rgba(63,208,122,.1); border-color:rgba(63,208,122,.4); }

@media (max-width:640px){
  .rsv-overlay{ padding:0; align-items:flex-end; }
  .rsv-box{ max-height:94vh; border-radius:24px 24px 0 0; }
  .rsv-overlay.open .rsv-box{ animation:rsvSheet .45s cubic-bezier(.2,.9,.25,1); }
  .rsv-inner{ padding:0 1.1rem 1.6rem; }
  .rsv-head{ margin:0 -1.1rem 1rem; padding:1.9rem 1.1rem 1.1rem; }
  .rsv-slots{ grid-template-columns:repeat(auto-fill, minmax(84px, 1fr)); max-height:220px; }
  .rsv-card{ padding:2.3rem 1.2rem 1.6rem; }
  .rsv-page{ padding-top:5.5rem; }
}
@keyframes rsvSheet{ from{ transform:translateY(100%); } to{ transform:none; } }
@media (prefers-reduced-motion: reduce){
  .rsv-strip, .rsv-kicker i, .rsv-send::after{ animation:none; }
  .rsv-sec, .rsv-slot, .rsv-overlay.open .rsv-box, .rsv-card{ animation:none; }
}
