/* ============================================================
   BOAT SEAT BOOKING — Premium Luxury Yacht Theme
   Deep ocean · Gold accents · Glassmorphism · Cinematic
   ============================================================ */

/* ── FONTS ── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;600;700&family=Inter:wght@400;500;600;700;800&display=swap');

/* ── KEYFRAMES ── */
@keyframes shimmerGold{0%{background-position:-600px 0}100%{background-position:600px 0}}
@keyframes bubbleFloat{0%{transform:translateY(0) scale(1);opacity:.6}50%{transform:translateY(-70px) scale(1.1);opacity:.35}100%{transform:translateY(-160px) scale(.85);opacity:0}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{0%{transform:scale(.88) translateY(20px);opacity:0}60%{transform:scale(1.02)}100%{transform:scale(1);opacity:1}}
@keyframes slideUp{from{transform:translateY(120px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulseGold{0%,100%{box-shadow:0 0 0 0 rgba(212,175,55,.45)}70%{box-shadow:0 0 0 12px rgba(212,175,55,0)}}
@keyframes glowPulse{0%,100%{opacity:.7}50%{opacity:1}}
@keyframes waterShimmer{0%,100%{background-position:0 0}50%{background-position:100% 100%}}
@keyframes boatRock{0%,100%{transform:rotate(-0.8deg) translateY(0)}50%{transform:rotate(0.8deg) translateY(-3px)}}
@keyframes shineSlide{0%{left:-80%}100%{left:130%}}
@keyframes navPulse{0%,100%{box-shadow:0 4px 30px rgba(212,175,55,.08)}50%{box-shadow:0 4px 30px rgba(212,175,55,.22)}}
@keyframes waveMove{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes cellFloat{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

body.boat-booking-variation-from-url .woocommerce-variation-unavailable{display:none!important}

/* ══════════════════════════════════════════════════════
   CALENDAR WRAPPER
══════════════════════════════════════════════════════ */
.boat-calendar{
  max-width:1400px;
  margin:60px auto;
  padding:48px 36px;
  font-family:'Inter','Segoe UI',sans-serif;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 15% 10%, rgba(212,175,55,.12) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 90%, rgba(10,30,60,.08) 0%, transparent 50%),
    linear-gradient(160deg, #f7f4ed 0%, #eeeade 50%, #f4f0e6 100%);
  border-radius:32px;
  box-shadow:
    0 2px 0 rgba(255,255,255,.9) inset,
    0 -1px 0 rgba(0,0,0,.06) inset,
    0 32px 80px rgba(80,60,20,.14),
    0 4px 16px rgba(0,0,0,.06);
}

/* Top gold shimmer bar */
.boat-calendar::before{
  content:'';
  position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,
    transparent 0%, #8B6914 15%, #D4AF37 35%,
    #F5E27A 50%, #D4AF37 65%, #8B6914 85%, transparent 100%);
  background-size:600px 100%;
  animation:shimmerGold 3s linear infinite;
}

/* Subtle wave pattern overlay */
.boat-calendar::after{
  content:'';
  position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg width='80' height='20' viewBox='0 0 80 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 10 Q10 0 20 10 Q30 20 40 10 Q50 0 60 10 Q70 20 80 10' fill='none' stroke='rgba(180,150,60,.06)' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:repeat;
  opacity:.6;
}

/* Bubble decoration */
.boat-calendar-bubble{
  position:absolute;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 35% 35%, rgba(255,255,255,.6), rgba(212,175,55,.1));
  border:1px solid rgba(212,175,55,.2);
  animation:bubbleFloat linear infinite;
}

/* ── Calendar Header ── */
.calendar-title{
  text-align:center;
  font-family:'Cormorant Garamond','Georgia',serif;
  font-size:42px;font-weight:700;
  letter-spacing:6px;
  color:#2a1f0a;
  margin-bottom:8px;
  animation:fadeInUp .7s ease both;
  position:relative;z-index:1;
}
.calendar-title::after{
  content:'';display:block;
  width:80px;height:2px;
  margin:12px auto 0;
  background:linear-gradient(90deg, transparent, #D4AF37 30%, #F5E27A 50%, #D4AF37 70%, transparent);
}

/* ── Nav Bar ── */
.calendar-nav{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:36px;padding:18px 24px;gap:16px;
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-radius:20px;
  border:1px solid rgba(212,175,55,.2);
  box-shadow:0 4px 24px rgba(0,0,0,.06);
  animation:navPulse 4s ease-in-out infinite;
  position:relative;z-index:1;
}

.nav-btn{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;
  padding:12px 30px;border-radius:14px;text-decoration:none;
  background:linear-gradient(135deg, #1a1205 0%, #3d2e0a 50%, #1a1205 100%);
  color:#D4AF37;
  font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;
  border:1px solid rgba(212,175,55,.35);
  transition:transform .3s,box-shadow .3s,border-color .3s;
  box-shadow:0 6px 20px rgba(0,0,0,.2), inset 0 1px 0 rgba(212,175,55,.2);
}
.nav-btn::before{
  content:'';
  position:absolute;top:0;left:-80%;width:60%;height:100%;
  background:linear-gradient(90deg, transparent, rgba(212,175,55,.3), transparent);
  transform:skewX(-20deg);
  animation:shineSlide 3s ease-in-out infinite;
}
.nav-btn:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 32px rgba(0,0,0,.28), 0 0 0 1px rgba(212,175,55,.5), inset 0 1px 0 rgba(212,175,55,.3);
  border-color:rgba(212,175,55,.6);color:#F5E27A;text-decoration:none;
}

.current-month{
  font-family:'Cormorant Garamond',serif;
  font-size:24px;font-weight:700;
  color:#2a1f0a;letter-spacing:2px;
}
.nav-center{display:flex;flex-direction:column;align-items:center;gap:10px;flex:1}
.calendar-jump{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
.calendar-jump select{
  padding:8px 14px;border-radius:10px;
  border:1px solid rgba(212,175,55,.3);
  background:rgba(255,255,255,.85);
  color:#2a1f0a;font-weight:600;font-size:13px;
  cursor:pointer;outline:none;transition:border-color .2s,box-shadow .2s;
  min-width:120px;
  font-family:'Inter',sans-serif;
}
.calendar-jump select:focus{
  border-color:#D4AF37;
  box-shadow:0 0 0 3px rgba(212,175,55,.15);
}

/* ── Calendar Grid ── */
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:16px;position:relative;z-index:1}

.calendar-cell{
  background:rgba(255,255,255,.65);
  backdrop-filter:blur(10px);
  border-radius:20px;padding:14px 10px;
  min-height:180px;
  position:relative;
  border:1px solid rgba(212,175,55,.12);
  box-shadow:0 2px 12px rgba(0,0,0,.05), inset 0 1px 0 rgba(255,255,255,.8);
  transition:transform .3s cubic-bezier(.2,0,.2,1), box-shadow .3s, border-color .3s;
  animation:cellFloat .5s ease both;
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.calendar-cell:hover:not(.past){
  transform:translateY(-6px);
  box-shadow:0 16px 40px rgba(0,0,0,.12), 0 0 0 1px rgba(212,175,55,.3);
  border-color:rgba(212,175,55,.4);
}
.calendar-cell.past{opacity:.4;pointer-events:none}

.date-num{
  font-family:'Cormorant Garamond',serif;
  font-size:28px;font-weight:700;color:#2a1f0a;
  line-height:1;width:100%;text-align:center;
}

.calendar-img{
  width:100%;height:110px;border-radius:14px;
  background-size:cover;background-position:center;
  transition:transform .4s cubic-bezier(.2,0,.2,1), box-shadow .3s;
  box-shadow:0 4px 16px rgba(0,0,0,.12);
}
a.open-boat:hover .calendar-img{
  transform:scale(1.05);
  box-shadow:0 10px 30px rgba(0,0,0,.2);
}
.calendar-img-disabled{opacity:.45;filter:grayscale(60%)}
a.open-boat{display:block;width:100%;text-decoration:none}

/* ── Loader ── */
.boat-image-loader{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:16px;min-height:300px;
  color:rgba(212,175,55,.7);
}
.boat-loader-spinner{
  width:44px;height:44px;
  border:2px solid rgba(212,175,55,.15);
  border-top-color:#D4AF37;
  border-radius:50%;
  animation:spin .9s linear infinite;display:block;
}
.boat-image-loader p{
  font-size:13px;letter-spacing:2px;text-transform:uppercase;
  font-weight:600;opacity:.7;
}

/* ══════════════════════════════════════════════════════
   OVERLAY PANEL  (Calendar → Seat Map)
══════════════════════════════════════════════════════ */
#boatSeatMapOverlay{
  position:fixed;inset:0;
  background:rgba(4,10,18,.82);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  z-index:9999;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .4s ease;
  padding:16px;
}
#boatSeatMapOverlay.active{opacity:1;pointer-events:all}

#boatSeatMapPanel{
  position:relative;
  width:100%;max-width:1020px;max-height:92vh;overflow-y:auto;
  border-radius:28px;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(212,175,55,.08) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 100%, rgba(10,40,80,.5) 0%, transparent 60%),
    linear-gradient(160deg, #060d18 0%, #0b1825 50%, #06101a 100%);
  border:1px solid rgba(212,175,55,.18);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.04) inset,
    0 60px 120px rgba(0,0,0,.7),
    0 0 80px rgba(212,175,55,.06);
  animation:popIn .45s cubic-bezier(.2,.8,.2,1) both;
}

/* Gold top bar */
#boatSeatMapPanel::before{
  content:'';display:block;height:3px;border-radius:28px 28px 0 0;
  background:linear-gradient(90deg,
    transparent 0%, #6B4F10 10%, #D4AF37 30%,
    #F5E27A 50%, #D4AF37 70%, #6B4F10 90%, transparent 100%);
  background-size:600px 100%;
  animation:shimmerGold 3s linear infinite;
}

/* Close button */
#boatSeatMapClose{
  position:sticky;top:16px;float:right;margin:16px 16px 0 0;
  width:38px;height:38px;border-radius:50%;
  background:rgba(212,175,55,.1);
  border:1px solid rgba(212,175,55,.25);
  display:flex;align-items:center;justify-content:center;
  font-size:20px;color:rgba(212,175,55,.8);cursor:pointer;
  transition:all .3s;z-index:10;
  backdrop-filter:blur(8px);
}
#boatSeatMapClose:hover{
  background:rgba(212,175,55,.22);
  border-color:rgba(212,175,55,.6);
  transform:rotate(90deg);color:#F5E27A;
  box-shadow:0 0 20px rgba(212,175,55,.3);
}
#boatSeatMapInner{padding:8px 28px 40px;clear:both}

/* ══════════════════════════════════════════════════════
   SEAT MAP HEADER
══════════════════════════════════════════════════════ */
.bsm-header{
  text-align:center;margin-bottom:22px;
  animation:fadeInUp .55s ease both;
  padding-top:8px;
}
.bsm-title{
  font-family:'Cormorant Garamond',serif;
  font-size:30px;font-weight:700;
  letter-spacing:3px;
  margin:0 0 6px;
  background:linear-gradient(135deg, #D4AF37 0%, #F5E27A 50%, #B8861B 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.bsm-subtitle{
  font-size:12px;letter-spacing:2.5px;text-transform:uppercase;
  font-weight:600;
  color:rgba(212,175,55,.5);
  margin:0;
}
.bsm-title::after{
  content:'';display:block;width:60px;height:1px;
  margin:10px auto 0;
  background:linear-gradient(90deg, transparent, #D4AF37, transparent);
}

/* ── Legend ── */
.bsm-legend{
  display:flex;gap:20px;justify-content:center;flex-wrap:wrap;
  margin-bottom:22px;font-size:11px;font-weight:700;
  letter-spacing:1.5px;text-transform:uppercase;
  color:rgba(212,175,55,.55);
}
.leg-item{display:flex;align-items:center;gap:7px}
.leg-dot{width:12px;height:12px;border-radius:50%;border:1px solid rgba(255,255,255,.15)}
.leg-dot.available{background:rgba(159,179,143,.9);box-shadow:0 0 8px rgba(159,179,143,.4)}
.leg-dot.selected{background:#D4AF37;box-shadow:0 0 8px rgba(212,175,55,.5)}
.leg-dot.sold{background:rgba(80,80,80,.6)}

/* ══════════════════════════════════════════════════════
   INTERACTIVE SVG BOAT MAP
══════════════════════════════════════════════════════ */
.bsm-dual-wrap{width:100%}

/* Floor tabs */
.bsm-floor-tabs{
  display:flex;gap:6px;margin-bottom:14px;
  padding:4px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(212,175,55,.12);
  border-radius:14px;
  width:fit-content;
  flex-wrap:wrap;
}
.bsm-ftab{
  padding:8px 22px;border-radius:10px;border:none;
  background:transparent;
  color:rgba(212,175,55,.45);
  cursor:pointer;font-size:12px;font-weight:700;
  letter-spacing:1.5px;text-transform:uppercase;
  transition:all .22s;font-family:'Inter',sans-serif;
}
.bsm-ftab.active{
  background:linear-gradient(135deg, rgba(212,175,55,.18), rgba(212,175,55,.08));
  color:#D4AF37;
  box-shadow:0 2px 12px rgba(212,175,55,.15),inset 0 1px 0 rgba(212,175,55,.2);
}
.bsm-ftab:hover:not(.active){color:rgba(212,175,55,.7);background:rgba(212,175,55,.06)}

.bsm-floor-panel{display:none}
.bsm-floor-panel.active{display:block}

/* SVG map wrapper */
.bsm-isvg-wrap{width:100%;display:block}
.bsm-isvg-wrap svg{
  width:100%;height:auto;display:block;
  border-radius:16px;
  border:1px solid rgba(212,175,55,.12);
  box-shadow:0 8px 48px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.03) inset;
}

/* Seat hover and selected states */
.bsm-isvg-wrap svg g{cursor:pointer}
.bsm-isvg-wrap svg g.seat-available circle{
  transition:all .18s ease;
  filter:none;
}
.bsm-isvg-wrap svg g.seat-available:hover circle{
  opacity:1!important;
  filter:brightness(1.4) drop-shadow(0 0 8px currentColor);
}
.bsm-isvg-wrap svg g.seat-available:hover{
  filter:drop-shadow(0 0 10px rgba(245,226,122,.7));
}
.bsm-isvg-wrap svg g.seat-selected circle{
  stroke:#F5E27A!important;stroke-width:3!important;opacity:1!important;
}
.bsm-isvg-wrap svg g.seat-selected{
  filter:drop-shadow(0 0 16px rgba(245,226,122,.9));
}

/* Map footer */
.bsm-map-footer{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:14px;flex-wrap:wrap;gap:10px;
  padding:0 2px;
}
.bsm-legend-row{display:flex;gap:16px;flex-wrap:wrap}
.bsm-leg-item{
  display:flex;align-items:center;gap:6px;
  font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:rgba(212,175,55,.5);
}
.bsm-leg-dot{width:10px;height:10px;border-radius:50%;display:inline-block}

/* ── View on Real Boat button ── */
.bsm-view-real-btn{
  position:relative;overflow:hidden;
  display:flex;align-items:center;gap:8px;
  padding:10px 20px;border-radius:10px;
  border:1px solid rgba(212,175,55,.35);
  background:rgba(212,175,55,.08);
  color:#D4AF37;
  cursor:pointer;font-size:11px;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;
  transition:all .22s;font-family:'Inter',sans-serif;
}
.bsm-view-real-btn::before{
  content:'';
  position:absolute;top:0;left:-80%;width:60%;height:100%;
  background:linear-gradient(90deg, transparent, rgba(212,175,55,.2), transparent);
  transform:skewX(-20deg);
  animation:shineSlide 4s ease-in-out infinite;
}
.bsm-view-real-btn:hover,
.bsm-view-real-btn.active{
  background:rgba(212,175,55,.16);
  border-color:rgba(212,175,55,.65);
  color:#F5E27A;
  box-shadow:0 0 20px rgba(212,175,55,.2);
}

/* ── Real Photo Panel ── */
.bsm-real-photo-panel{
  display:none;
  margin-top:16px;
  border-radius:16px;
  border:1px solid rgba(212,175,55,.2);
  background:rgba(4,10,18,.7);
  overflow:hidden;
  animation:fadeInUp .3s ease;
  backdrop-filter:blur(8px);
}
.bsm-real-photo-panel.active{display:block}
.bsm-real-photo-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 18px;
  background:rgba(212,175,55,.06);
  border-bottom:1px solid rgba(212,175,55,.12);
  font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:rgba(212,175,55,.7);
}
.bsm-real-close-btn{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(212,175,55,.2);
  border-radius:6px;color:rgba(212,175,55,.6);
  padding:5px 12px;cursor:pointer;font-size:11px;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;
  transition:all .18s;font-family:'Inter',sans-serif;
}
.bsm-real-close-btn:hover{background:rgba(212,175,55,.12);color:#D4AF37}
.bsm-real-photo-body{padding:14px}
.bsm-real-photo-img{
  width:100%;height:auto;display:block;
  border-radius:10px;
}

/* ══════════════════════════════════════════════════════
   DIRECT SHORTCODE  [boat_seat_map]
══════════════════════════════════════════════════════ */
.boat-seat-map-direct{
  max-width:1020px;margin:48px auto;padding:40px 32px;
  font-family:'Inter','Segoe UI',sans-serif;
  position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse at 15% 10%, rgba(212,175,55,.1) 0%, transparent 55%),
    linear-gradient(160deg, #f8f5ed 0%, #ede8da 100%);
  border-radius:28px;
  box-shadow:0 2px 0 rgba(255,255,255,.9) inset, 0 32px 80px rgba(80,60,20,.12);
}
.boat-seat-map-direct::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,#D4AF37 30%,#F5E27A 50%,#D4AF37 70%,transparent);
  background-size:600px 100%;animation:shimmerGold 3s linear infinite;
}
.boat-seat-map-direct .bsm-title{
  background:linear-gradient(135deg, #8B6914, #D4AF37, #8B6914);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.boat-seat-map-direct .bsm-subtitle{color:rgba(120,90,20,.5)}
.boat-seat-map-direct .bsm-legend{color:rgba(100,75,20,.5)}

/* Hide old list layout — SVG takes over */
.boat-seat-map-direct .bsm-zones-wrap,
.boat-seat-map-direct .bsm-zone,
.boat-seat-map-direct .bsm-seats-row{display:none!important}

/* ══════════════════════════════════════════════════════
   SEAT DETAIL POPUP  — bottom sheet
══════════════════════════════════════════════════════ */
#seatDetailPopup{
  position:fixed;inset:0;z-index:10001;
  display:flex;align-items:flex-end;justify-content:center;
  background:rgba(2,6,12,.7);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  opacity:0;pointer-events:none;transition:opacity .35s ease;
}
#seatDetailPopup.active{opacity:1;pointer-events:all}

#seatDetailPanel{
  position:relative;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(212,175,55,.12) 0%, transparent 60%),
    linear-gradient(180deg, #0a1520 0%, #060d18 100%);
  border-radius:28px 28px 0 0;
  width:100%;max-width:600px;
  padding:0 0 env(safe-area-inset-bottom, 32px);
  max-height:88vh;overflow-y:auto;
  border:1px solid rgba(212,175,55,.2);
  border-bottom:none;
  box-shadow:
    0 -24px 80px rgba(0,0,0,.6),
    0 0 0 1px rgba(255,255,255,.03) inset,
    0 0 60px rgba(212,175,55,.08);
  animation:slideUp .45s cubic-bezier(.16,1,.3,1) both;
}

/* Handle bar */
#seatDetailPanel::before{
  content:'';display:block;
  width:40px;height:3px;border-radius:99px;
  background:rgba(212,175,55,.3);
  margin:16px auto 0;
}

/* Gold bottom line */
#seatDetailPanel::after{
  content:'';display:block;height:3px;
  background:linear-gradient(90deg, transparent, #D4AF37 30%, #F5E27A 50%, #D4AF37 70%, transparent);
  margin-top:12px;
  background-size:600px 100%;
  animation:shimmerGold 3s linear infinite;
}

#seatDetailPopupClose{
  position:absolute;top:18px;right:18px;
  width:36px;height:36px;border-radius:50%;
  background:rgba(212,175,55,.1);
  border:1px solid rgba(212,175,55,.25);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;color:rgba(212,175,55,.7);cursor:pointer;
  transition:all .3s;backdrop-filter:blur(8px);
}
#seatDetailPopupClose:hover{
  background:rgba(212,175,55,.22);border-color:rgba(212,175,55,.6);
  transform:rotate(90deg);color:#F5E27A;
  box-shadow:0 0 16px rgba(212,175,55,.3);
}

.spop-body{padding:4px 28px 8px}

#seatPopupTitle{
  font-family:'Cormorant Garamond',serif;
  font-size:26px;font-weight:700;letter-spacing:1px;
  color:#e8d5a0;margin:0 0 4px;line-height:1.2;
}
#seatPopupPrice{
  font-size:32px;font-weight:800;
  background:linear-gradient(135deg, #D4AF37, #F5E27A);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:20px;letter-spacing:-0.5px;
}

.spop-attrs{
  background:rgba(212,175,55,.07);
  border:1px solid rgba(212,175,55,.18);
  border-radius:14px;padding:14px 16px;margin-bottom:14px;
}
.spop-attr{
  display:flex;gap:12px;align-items:center;
  font-size:13px;padding:5px 0;
  border-bottom:1px solid rgba(212,175,55,.07);
}
.spop-attr:last-child{border-bottom:none}
.spop-attr-key{
  font-weight:700;letter-spacing:.5px;
  color:rgba(212,175,55,.65);min-width:90px;font-size:11px;text-transform:uppercase;
}
.spop-attr-val{color:rgba(220,210,180,.75);font-weight:500}
.spop-desc{font-size:14px;color:rgba(200,185,150,.6);line-height:1.8;margin-bottom:16px}
.spop-stock{margin-bottom:14px}
.spop-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 16px;border-radius:99px;font-size:12px;font-weight:700;
  letter-spacing:.5px;
}
.spop-badge.in-stock{
  background:rgba(80,160,80,.12);color:#7cc87c;
  border:1px solid rgba(80,160,80,.25);
}
.spop-badge.out-of-stock{
  background:rgba(180,60,60,.1);color:#d07070;
  border:1px solid rgba(180,60,60,.2);
}
.spop-sku{font-size:11px;color:rgba(212,175,55,.35);margin-bottom:12px;letter-spacing:1px}

/* ── Book Button ── */
.spop-book-btn{
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;padding:18px 28px;border-radius:16px;text-decoration:none;
  background:linear-gradient(135deg, #8B6914 0%, #D4AF37 40%, #F5E27A 60%, #D4AF37 80%, #8B6914 100%);
  background-size:200% 100%;
  color:#0a0800;font-size:12px;font-weight:800;
  letter-spacing:3px;text-transform:uppercase;
  transition:transform .35s cubic-bezier(.2,0,.2,1), box-shadow .35s;
  box-shadow:0 8px 32px rgba(212,175,55,.3), inset 0 1px 0 rgba(255,255,255,.3);
  margin-top:20px;
  animation:pulseGold 3s ease-out infinite;
  font-family:'Inter',sans-serif;
}
.spop-book-btn::before{
  content:'';position:absolute;top:0;left:-80%;width:60%;height:100%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent);
  transform:skewX(-20deg);
  animation:shineSlide 3.5s ease-in-out infinite;
}
.spop-book-btn:hover{
  transform:translateY(-4px);
  color:#0a0800;text-decoration:none;
  box-shadow:0 16px 48px rgba(212,175,55,.45), inset 0 1px 0 rgba(255,255,255,.3);
  background-position:100% 0;
}

/* ══════════════════════════════════════════════════════
   SCROLLBARS
══════════════════════════════════════════════════════ */
#boatSeatMapPanel::-webkit-scrollbar,
#seatDetailPanel::-webkit-scrollbar{width:4px}
#boatSeatMapPanel::-webkit-scrollbar-track,
#seatDetailPanel::-webkit-scrollbar-track{background:transparent}
#boatSeatMapPanel::-webkit-scrollbar-thumb,
#seatDetailPanel::-webkit-scrollbar-thumb{background:rgba(212,175,55,.25);border-radius:99px}

/* ══════════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════════ */
@media(max-width:1100px){.calendar-grid{grid-template-columns:repeat(5,1fr)}}
@media(max-width:768px){
  .boat-calendar{padding:28px 18px;margin:32px 12px;border-radius:24px}
  .calendar-grid{grid-template-columns:repeat(3,1fr);gap:10px}
  .calendar-nav{flex-direction:column;padding:16px;gap:12px}
  .nav-btn{width:100%;text-align:center;padding:14px}
  .current-month{text-align:center;font-size:20px}
  .calendar-title{font-size:30px;letter-spacing:3px}
  #boatSeatMapPanel{max-width:100%;border-radius:20px}
  #boatSeatMapInner{padding:8px 16px 28px}
  .bsm-title{font-size:24px}
  .spop-body{padding:4px 20px 8px}
  #seatDetailPanel{border-radius:22px 22px 0 0}
  .bsm-floor-tabs{width:100%;justify-content:center}
  .bsm-ftab{padding:8px 14px;font-size:11px}
}
@media(max-width:480px){
  .calendar-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .calendar-cell{min-height:140px;padding:10px}
  .calendar-img{height:88px}
  .date-num{font-size:22px}
  #seatPopupTitle{font-size:22px}
  #seatPopupPrice{font-size:26px}
  .spop-book-btn{padding:16px;font-size:11px}
  .bsm-map-footer{flex-direction:column;align-items:flex-start}
}

/* ══════════════════════════════════════════════════════
   NEW HTML-BASED BOAT SEAT MAP DESIGN
   Client venue_map design — absolute buttons over SVG
══════════════════════════════════════════════════════ */

/* Floor wrapper: relative container for absolute seats */
.bsm-html-floor-wrap{
  position:relative;
  margin:0 auto;
  overflow:visible !important;
}
.bsm-f1-wrap{width:520px;height:720px;max-width:100%}
.bsm-f2-wrap{width:480px;height:720px;max-width:100%}

/* ── Seat buttons ── */
.bsm-html-seat{
  position:absolute;
  display:flex;align-items:center;justify-content:center;
  font-family:'Inter','Raleway',sans-serif;
  font-size:8px;font-weight:700;
  letter-spacing:0.5px;
  cursor:pointer;
  border-radius:5px;
  transition:transform 0.15s, box-shadow 0.15s, filter 0.15s;
  z-index:2;
  user-select:none;
  border:none;outline:none;
  line-height:1;
}
.bsm-html-seat:hover{
  transform:scale(1.18);
  z-index:20;
  box-shadow:0 0 12px rgba(200,168,74,0.75)!important;
}
.bsm-html-seat.seat-sold{
  cursor:not-allowed;
  filter:grayscale(0.75) brightness(0.55);
}
.bsm-html-seat.seat-sold:hover{
  transform:none;
  box-shadow:none!important;
}
.bsm-html-seat.seat-selected{
  box-shadow:0 0 16px 4px #c8a84a!important;
  transform:scale(1.12);
  z-index:25;
}

/* Round seats */
.bsm-html-seat.seat-round{
  border-radius:50%!important;
  width:44px!important;
  height:44px!important;
}

/* Color variants */
.bsm-html-seat.s-gold  {background:#c8a060;color:#3a1f00;border:1px solid #9a7030}
.bsm-html-seat.s-tan   {background:#c8b080;color:#3a2800;border:1px solid #907830}
.bsm-html-seat.s-pink  {background:#d8a8b8;color:#500028;border:1px solid #a06070}
.bsm-html-seat.s-purple{background:#9080b8;color:#fff;   border:1px solid #6050a0}
.bsm-html-seat.s-green {background:#70a870;color:#0a2a0a;border:1px solid #407840}
.bsm-html-seat.s-teal  {background:#60a0b0;color:#002830;border:1px solid #308090}
.bsm-html-seat.s-brown {background:#a07850;color:#200800;border:1px solid #785030}
.bsm-html-seat.s-dark  {background:#605040;color:#d0c0a0;border:1px solid #403020}

/* ── Zone labels inside HTML floor map ── */
.bsm-zone-label{
  position:absolute;
  text-align:center;
  pointer-events:none;
  z-index:3;
  font-family:'Cinzel','Cormorant Garamond',serif;
}
.bsm-zl-pool  {color:#80d0e8;font-size:13px;letter-spacing:2px}
.bsm-zl-stage {color:#c8a84a;font-size:10px;letter-spacing:2px;width:104px}
.bsm-zl-bar   {color:#c8a84a;font-size:9px;letter-spacing:3px;font-family:'Inter',sans-serif}
.bsm-zl-lounge{color:#d0c090;font-size:10px;letter-spacing:1px}
.bsm-zl-rest  {color:#c8a84a;font-size:11px;letter-spacing:2px}

/* ── Responsive scaling for HTML map ── */

/* On mobile the fixed-px floor map needs to shrink to fit the screen.
   We use a CSS custom property + zoom so the element collapses its
   own layout box — unlike transform:scale which leaves a ghost gap.   */

.bsm-html-floor-wrap{
  /* default: natural size */
  zoom: 1;
}

/* Tablet / small desktop — slight shrink */
@media(max-width:700px){
  .bsm-isvg-wrap{
    overflow-x:auto;          /* fallback: horizontal scroll if needed */
  }
  .bsm-f1-wrap{ zoom: 0.80; }
  .bsm-f2-wrap{ zoom: 0.80; }
}

/* Mobile landscape / mid phones */
@media(max-width:540px){
  .bsm-f1-wrap{ zoom: 0.64; }
  .bsm-f2-wrap{ zoom: 0.64; }
  /* Tooltip: flip to bottom on very small screens so it stays in viewport */
  .bsm-seat-tip{
    bottom: auto;
    top: calc(100% + 8px);
  }
  .bsm-seat-tip::after{
    top: auto;
    bottom: 100%;
    border-top-color: transparent;
    border-bottom-color: rgba(200,168,74,0.55);
  }
}

/* Small phones */
@media(max-width:400px){
  .bsm-f1-wrap{ zoom: 0.52; }
  .bsm-f2-wrap{ zoom: 0.52; }
}

/* Firefox doesn't support zoom — fallback with scale + auto height trick */
@supports not (zoom: 0.8){
  @media(max-width:700px){
    .bsm-html-floor-wrap{
      transform-origin: top left;
    }
    .bsm-f1-wrap{
      transform: scale(0.80);
      width: calc(520px * 0.80);
      height: calc(720px * 0.80);
    }
    .bsm-f2-wrap{
      transform: scale(0.80);
      width: calc(480px * 0.80);
      height: calc(720px * 0.80);
    }
  }
  @media(max-width:540px){
    .bsm-f1-wrap{
      transform: scale(0.64);
      width: calc(520px * 0.64);
      height: calc(720px * 0.64);
    }
    .bsm-f2-wrap{
      transform: scale(0.64);
      width: calc(480px * 0.64);
      height: calc(720px * 0.64);
    }
  }
  @media(max-width:400px){
    .bsm-f1-wrap{
      transform: scale(0.52);
      width: calc(520px * 0.52);
      height: calc(720px * 0.52);
    }
    .bsm-f2-wrap{
      transform: scale(0.52);
      width: calc(480px * 0.52);
      height: calc(720px * 0.52);
    }
  }
}

/* ── Seat Hover Tooltip ── */
.bsm-html-seat{
  overflow:visible; /* allow tooltip to escape button bounds */
}
.bsm-seat-tip{
  display:none;
  position:absolute;
  bottom:calc(100% + 8px);
  left:50%;
  transform:translateX(-50%);
  background:rgba(10,6,2,0.97);
  border:1px solid rgba(200,168,74,0.65);
  border-radius:7px;
  padding:8px 12px;
  white-space:nowrap;
  pointer-events:none;
  z-index:99999;
  box-shadow:0 4px 20px rgba(0,0,0,0.8);
  flex-direction:column;
  align-items:center;
  gap:2px;
  min-width:100px;
  text-align:center;
}
/* little arrow pointing down */
.bsm-seat-tip::after{
  content:'';
  position:absolute;
  top:100%;left:50%;
  transform:translateX(-50%);
  border:5px solid transparent;
  border-top-color:rgba(200,168,74,0.55);
}
.bsm-tip-zone{
  display:block;
  font-family:'Cinzel','Cormorant Garamond',serif;
  font-size:10px;font-weight:600;
  color:#c8a84a;
  letter-spacing:0.8px;
  line-height:1.3;
}
.bsm-tip-id{
  display:block;
  font-family:'Inter',sans-serif;
  font-size:9px;font-weight:700;
  color:rgba(255,255,255,0.6);
  letter-spacing:1.5px;
  text-transform:uppercase;
  line-height:1.2;
}
/* Show on hover — but not for sold seats */
.bsm-html-seat:hover .bsm-seat-tip,
.bsm-html-seat:focus .bsm-seat-tip{
  display:flex;
}
.bsm-html-seat.seat-sold:hover .bsm-seat-tip{
  display:none;
}

/* ── Mobile: show tooltip on 1st tap via .bsm-tip-active ── */
.bsm-html-seat.bsm-tip-active .bsm-seat-tip{
  display:flex !important;
}
/* Subtle ring on active tip seat so user knows it's selected */
.bsm-html-seat.bsm-tip-active{
  box-shadow:0 0 0 2px rgba(200,168,74,0.6), 0 0 10px rgba(200,168,74,0.3);
  transform:scale(1.1);
  z-index:20;
}

/* ── Book Now button inside mobile tooltip ── */
.bsm-tip-book-btn{
  display:none; /* hidden on desktop — only shown on touch devices via JS class */
  margin-top:7px;
  width:100%;
  padding:6px 10px;
  background:#c8a84a;
  border:none;
  border-radius:5px;
  color:#0a0600;
  font-family:'Cinzel','Cormorant Garamond',serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:1.5px;
  cursor:pointer;
  text-transform:uppercase;
  transition:background 0.15s;
  pointer-events:all;
}
.bsm-tip-book-btn:hover,
.bsm-tip-book-btn:active{
  background:#d4b85c;
}
/* Only show Book Now button when tooltip is active on touch */
.bsm-html-seat.bsm-tip-active .bsm-tip-book-btn{
  display:block;
}

/* ── Mobile layout fixes for map container ── */
@media(max-width:700px){
  /* Center the floor map panel */
  .bsm-svg-map-panel{
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .bsm-isvg-wrap{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  /* Stack tabs vertically on mobile */
  .bsm-floor-tabs{
    width:100%;
    flex-direction:column;
    gap:4px;
    border-radius:10px;
  }
  .bsm-ftab{
    width:100%;
    text-align:center;
    padding:9px 10px;
    font-size:10px;
    letter-spacing:1px;
    border-radius:8px;
  }
  /* Map footer stack vertically */
  .bsm-map-footer{
    flex-direction:column;
    align-items:center;
    gap:10px;
    padding:10px 0 0;
  }
  .bsm-legend-row{
    justify-content:center;
  }
  /* Overlay inner padding on mobile */
  #boatSeatMapInner{
    padding:8px 8px 24px;
  }
}

/* ── Tooltip mobile active — pointer events on for Book Now tap ── */
.bsm-html-seat.bsm-tip-active .bsm-seat-tip{
  pointer-events:all !important;
}
/* Arrow flip when tooltip is below seat */
.bsm-seat-tip.bsm-tip-below::after{
  top:auto;
  bottom:100%;
  border-top-color:transparent;
  border-bottom-color:rgba(200,168,74,0.55);
}
/* Mobile tabs — override old media stacking properly */
@media(max-width:700px){
  .bsm-floor-tabs{
    flex-direction:column !important;
    width:100% !important;
    border-radius:10px !important;
  }
  .bsm-ftab{
    width:100% !important;
    text-align:center !important;
    padding:9px 12px !important;
    font-size:10px !important;
    letter-spacing:1px !important;
    border-radius:7px !important;
  }
}
