/* Jamaica Joe's Bar & Grill — site footer (homepage + /menu/ share this file) */

.ft{margin-top:var(--gap,clamp(84px,11vw,164px));position:relative;}

/* dusk horizon scene: sun sinking through drifting gulf water */
.ft__scene{position:relative;height:clamp(96px,12vw,150px);overflow:hidden;}
.scene-sun{position:absolute;left:57%;bottom:16%;width:clamp(64px,9vw,112px);z-index:0;}
.scene-birds{position:absolute;left:30%;top:4%;width:clamp(46px,5.5vw,70px);z-index:2;}
.scene-boat{position:absolute;left:18%;bottom:24%;width:clamp(26px,3.4vw,40px);z-index:2;}
.scene-waves{position:absolute;inset:0;width:100%;height:100%;z-index:1;display:block;}
@media (prefers-reduced-motion:no-preference){
  .scene-waves .w1{animation:drift1 16s ease-in-out infinite alternate;}
  .scene-waves .w2{animation:drift2 12s ease-in-out infinite alternate;}
  .scene-boat{animation:bob 7s ease-in-out infinite alternate;}
}
@keyframes drift1{from{transform:translateX(-16px);}to{transform:translateX(16px);}}
@keyframes drift2{from{transform:translateX(14px);}to{transform:translateX(-14px);}}
@keyframes bob{from{transform:rotate(-2deg) translateY(0);}to{transform:rotate(2.5deg) translateY(3px);}}

.ft__body{background:var(--cream-soft);}
.ft__in{max-width:var(--wrap);margin:0 auto;padding:clamp(20px,3vw,40px) clamp(20px,4vw,48px) 2.4rem;
  display:grid;grid-template-columns:1.4fr .8fr .9fr 1.1fr;gap:clamp(2rem,4vw,4rem);}

/* hand-inked swash under column headings */
.ft h4 .swash{display:block;width:76px;height:9px;margin-top:7px;}
.ft h4 .swash path{fill:var(--gold);}

/* hours rows with dotted leaders (echo the menu) */
.fh{display:flex;align-items:baseline;gap:.6rem;padding:.34rem 0;font-size:.9375rem;}
.fh>span:first-child{font-weight:700;color:var(--ink);white-space:nowrap;}
.fh__dots{flex:1;border-bottom:2px dotted rgba(46,35,24,.2);transform:translateY(-4px);min-width:18px;}
.fh>b{font-weight:550;color:var(--body-c);white-space:nowrap;}

/* live hanging sign (artwork carries its own rope + pin; swing pivots on the pin) */
.sign{position:relative;width:min(272px,100%);margin:0 0 1.5rem;}
.sign__swing{position:relative;transform-origin:50% 3%;}
@media (prefers-reduced-motion:no-preference){
  .sign__swing{animation:signswing 6s ease-in-out infinite alternate;}
}
@keyframes signswing{from{transform:rotate(1.4deg);}to{transform:rotate(-1.4deg);}}
.sign__img{width:100%;height:auto;display:block;
  filter:drop-shadow(0 20px 26px rgba(46,35,24,.22));
  transition:opacity .9s var(--ease);}
.sign__img--closed{position:absolute;top:0;left:0;opacity:0;}
.sign.is-closed .sign__img--open{opacity:0;}
.sign.is-closed .sign__img--closed{opacity:1;}

/* neon glow overlays: letter shapes extracted from the sign art itself, so the
   glow matches the painted lettering exactly; full-canvas images stacked inset:0
   keep alignment pixel-perfect. Flicker animates filter, not opacity, so it
   can't fight the crossfade. */
.sign__neon{position:absolute;inset:0;width:100%;height:auto;pointer-events:none;
  transition:opacity .9s var(--ease);}
.sign__neon--open{animation:neonBreathe 3.4s ease-in-out infinite;}
.sign__neon--closed{opacity:0;animation:neonFlicker 5.2s linear infinite;}
.sign.is-closed .sign__neon--open{opacity:0;}
.sign.is-closed .sign__neon--closed{opacity:1;}
@keyframes neonBreathe{0%,100%{filter:brightness(.96);}
  8%{filter:brightness(1.22);}10%{filter:brightness(.85);}12%{filter:brightness(1.2);}
  50%{filter:brightness(1.28);}}
@keyframes neonFlicker{0%,100%{filter:brightness(1);}
  3%{filter:brightness(.45);}5%{filter:brightness(1.08);}
  7%{filter:brightness(.6);}9%{filter:brightness(1.05);}
  38%{filter:brightness(1.12);}54%{filter:brightness(.92);}
  57%{filter:brightness(.5);}58.5%{filter:brightness(1.08);}
  80%{filter:brightness(1.15);}}

.live__chip{display:inline-flex;align-items:center;gap:.45rem;border-radius:var(--pill);
  background:rgba(46,156,142,.12);color:var(--teal-ink);font-size:.72rem;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;padding:.32rem .85rem;margin-bottom:.55rem;}
.live__chip i{width:8px;height:8px;border-radius:50%;background:var(--teal);flex:none;}
@media (prefers-reduced-motion:no-preference){
  .live__chip i{animation:livedot 1.8s ease-in-out infinite;}
}
@keyframes livedot{0%,100%{box-shadow:0 0 0 0 rgba(46,156,142,.45);}
  50%{box-shadow:0 0 0 5px rgba(46,156,142,0);}}
.live__clock{font-family:'Tondu',Georgia,serif;font-size:1.85rem;color:var(--ink);
  letter-spacing:.05em;margin:0 0 .1rem;font-variant-numeric:tabular-nums;}
.live__clock small{display:block;font-family:'Inter',sans-serif;font-weight:650;font-size:.72rem;
  color:var(--muted);letter-spacing:.13em;text-transform:uppercase;margin-top:.15rem;}
.live__status{font-family:'Kaushan Script',cursive;font-size:1.55rem;line-height:1.25;
  color:var(--gold-deep);margin:0 0 .2rem;transform:rotate(-1.5deg);transform-origin:left;}
.sign-wrap.is-closed-state .live__status{color:var(--teal-ink);}
.live__sub{font-size:.9rem;font-weight:600;color:var(--body-c);margin:0 0 .8rem;}
.live__note{font-size:.84rem;color:var(--muted);max-width:32ch;margin:0;}
.ft h4{font-family:'Tondu',Georgia,serif;font-weight:400;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink);font-size:1rem;margin:0 0 1rem;}
.ft__soc{display:flex;gap:.7rem;margin-top:1.1rem;}
.ft__soc a{display:inline-flex;width:38px;height:38px;border-radius:50%;align-items:center;justify-content:center;
  background:rgba(46,35,24,.08);transition:background .25s var(--ease);}
.ft__soc a:hover{background:var(--teal);}
.ft__soc svg{width:18px;height:18px;stroke:var(--ink);stroke-width:1.7;fill:none;transition:stroke .25s var(--ease);}
.ft__soc a:hover svg{stroke:#fff;}
.ft ul{margin:0;padding:0;}
.ft ul li{list-style:none;margin:.45rem 0;}
.ft ul a{color:var(--body-c);text-decoration:none;font-size:.9375rem;border-bottom:1px solid transparent;
  transition:color .25s var(--ease),border-color .25s var(--ease);}
.ft ul a:hover{color:var(--teal-deep);border-bottom-color:var(--teal);}
.ft__contact p{font-size:.9375rem;margin:0 0 .5rem;}
.ft__contact a{text-decoration:none;color:var(--teal-deep);font-weight:600;}
.ft__bar{border-top:1px solid rgba(46,35,24,.1);background:var(--cream-soft);}
.ft__bar-in{max-width:var(--wrap);margin:0 auto;padding:1.2rem clamp(20px,4vw,48px);
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 2rem;font-size:.82rem;color:var(--muted);}
.ft__tag{width:100%;font-size:.82rem;color:var(--muted);}
.ft__powered{margin-left:auto;display:inline-flex;align-items:center;gap:.6rem;color:var(--muted);
  text-decoration:none;font-size:.82rem;}
.ft__powered img{height:30px;width:auto;}

/* ---------- footer: responsive ---------- */
@media (max-width:1020px){
  .ft__in{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .ft__in{grid-template-columns:1fr;}
  .ft__powered{margin-left:0;}
}
