/* HarborBeat — premium events styling. Apple-aesthetic, mobile-first. */

/* ---- Event listing card: image thumbnail + overlaid date badge ---- */
.hb-card-event .hb-card-event-link{align-items:stretch}
.hb-event-thumb{position:relative;flex:0 0 120px;min-height:104px;background:linear-gradient(135deg,#eef1f6,#e3e8f0);overflow:hidden}
.hb-event-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.hb-event-date-badge{position:absolute;top:8px;left:8px;display:flex;flex-direction:column;align-items:center;
  line-height:1;background:rgba(255,255,255,.95);border-radius:10px;padding:.28rem .5rem;box-shadow:0 1px 5px rgba(0,0,0,.18)}
.hb-event-date-badge .hb-event-mon{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--blue)}
.hb-event-date-badge .hb-event-day{font-size:1.1rem;font-weight:800;color:var(--ink)}
/* No image: center the date badge on the gradient panel. */
.hb-event-thumb-empty .hb-event-date-badge{position:static;background:none;box-shadow:none;justify-content:center;height:100%;padding:0}
.hb-event-thumb-empty{display:flex;align-items:center;justify-content:center}
.hb-event-thumb-empty .hb-event-day{font-size:1.5rem}

/* ---- Calendar subscribe link on index head ---- */
.hb-cal-sub{display:inline-flex;align-items:center;gap:.4rem;margin-top:.9rem;font-size:.85rem;font-weight:500;
  color:var(--blue);background:rgba(0,113,227,.08);border-radius:var(--r-pill);padding:.4rem .9rem}
.hb-cal-sub:hover{background:rgba(0,113,227,.14);color:var(--blue-hover)}

/* ---- Detail hero ---- */
.hb-event-hero-wrap{position:relative;border-radius:var(--r-lg);overflow:hidden}
.hb-event-hero{width:100%;height:auto;max-height:440px;object-fit:cover;display:block;border-radius:var(--r-lg)}
.hb-event-hero-status{position:absolute;top:1rem;left:1rem;font-size:.85rem}
.hb-event-subhead{color:var(--muted);font-size:1.02rem;margin:.4rem 0 0}
.hb-event-subhead i{color:var(--blue)}

/* ---- Pills (extra tones) ---- */
.hb-pill-purple{background:rgba(106,27,154,.1);color:#6a1b9a}
.hb-pill-red{background:rgba(200,30,30,.12);color:#c81e1e}
.hb-pill-amber{background:rgba(224,165,43,.16);color:#9a6b00}

/* ---- Weather badge ---- */
.hb-event-weather{margin-top:1rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;
  background:linear-gradient(135deg,#eef5ff,#f5f5f7);border:1px solid #e4ecf7;border-radius:var(--r);
  padding:.7rem 1rem;font-size:.98rem;color:var(--ink)}
.hb-event-weather i{font-size:1.3rem;color:var(--blue)}
.hb-event-weather .hb-wx-note{color:var(--muted);font-size:.8rem}

/* ---- Sticky action card ---- */
.hb-event-action .hb-event-when{display:flex;align-items:center;gap:.8rem}
.hb-rec-note{font-size:.8rem;color:#6a1b9a;font-weight:500}
.hb-price{font-size:1.3rem;font-weight:700;color:var(--ink)}

/* RSVP group */
.hb-rsvp-group{display:grid;grid-template-columns:1.4fr 1fr;gap:.5rem;margin-bottom:.7rem}
.hb-rsvp-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-size:.92rem;font-weight:600}
.hb-rsvp-btn.active{box-shadow:0 0 0 2px var(--blue) inset}
.btn.hb-rsvp-btn.btn-outline-secondary.active{box-shadow:0 0 0 2px var(--gold-2) inset;color:var(--gold-2);border-color:var(--gold-2)}

/* Attendee avatars */
.hb-rsvp-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.8rem;flex-wrap:wrap}
.hb-avatars{display:flex}
.hb-av{width:30px;height:30px;border-radius:50%;border:2px solid #fff;margin-left:-8px;object-fit:cover;
  background:var(--bg-2);display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;color:var(--ink-2)}
.hb-avatars .hb-av:first-child{margin-left:0}
.hb-av-initial{background:linear-gradient(135deg,#dfe7f5,#eef1f6)}

/* Capacity bar */
.hb-capacity{height:7px;border-radius:var(--r-pill);background:var(--bg-2);overflow:hidden;margin-bottom:.3rem}
.hb-capacity-bar{height:100%;background:linear-gradient(90deg,var(--blue),#34c759);border-radius:var(--r-pill)}

/* Add-to-calendar dropdown */
.hb-cal-add{position:relative;margin-top:.4rem}
.hb-cal-menu{display:flex;flex-direction:column;gap:.2rem;margin-top:.4rem;padding:.4rem;
  background:#fff;border:1px solid #e6e6ea;border-radius:var(--r);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.hb-cal-menu a{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border-radius:var(--r-sm);
  font-size:.9rem;color:var(--ink)}
.hb-cal-menu a:hover{background:var(--bg-2)}

/* Venue map */
.hb-event-map{height:180px;border-radius:var(--r);overflow:hidden;margin-bottom:.6rem;z-index:0}

/* ---- Upcoming dates list ---- */
.hb-date-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}
.hb-date-row{display:flex;align-items:center;gap:.8rem;padding:.6rem .8rem;background:var(--bg-2);border-radius:var(--r)}
.hb-date-info{flex:1;font-size:.95rem}
.hb-date-add{margin-left:auto;font-size:.85rem;font-weight:600;color:var(--blue);white-space:nowrap}
.hb-date-add:hover{color:var(--blue-hover)}

/* ---- Related news / nearby businesses ---- */
.hb-mini-link{display:block;padding:.5rem .7rem;border-radius:var(--r-sm);background:var(--bg-2);color:var(--ink);font-size:.95rem}
.hb-mini-link:hover{background:#ececf0;color:var(--blue)}
.hb-mini-link i{color:var(--blue);margin-right:.35rem}
.hb-near-biz{display:flex;flex-wrap:wrap;gap:.5rem}
.hb-near-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .8rem;border:1px solid #e6e6ea;
  border-radius:var(--r-pill);font-size:.9rem;color:var(--ink);background:#fff}
.hb-near-chip:hover{border-color:var(--blue);color:var(--blue)}
.hb-near-chip img{width:22px;height:22px;border-radius:50%;object-fit:cover}

/* ---- FAQ accordion ---- */
.hb-accordion{display:flex;flex-direction:column;gap:.5rem}
.hb-acc-item{border:1px solid #e6e6ea;border-radius:var(--r);overflow:hidden;background:#fff}
.hb-acc-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  background:none;border:none;padding:.85rem 1rem;font-weight:600;font-size:.98rem;text-align:left;cursor:pointer;color:var(--ink)}
.hb-acc-head i{transition:transform .2s}
.hb-acc-item.open .hb-acc-head i{transform:rotate(180deg)}
.hb-acc-body{max-height:0;overflow:hidden;transition:max-height .25s ease;padding:0 1rem}
.hb-acc-item.open .hb-acc-body{max-height:600px;padding:0 1rem 1rem}
.hb-acc-body p{margin:0;color:var(--ink-2)}

/* ---- Index: featured strip ---- */
.hb-featured-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.hb-featured-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:170px;
  border-radius:var(--r-lg);padding:1rem;color:#fff;background:linear-gradient(135deg,#0b2545,#13315c);
  background-size:cover !important;background-position:center !important;overflow:hidden}
.hb-featured-card:hover{color:#fff;transform:translateY(-2px);transition:transform .15s}
.hb-featured-badge{position:absolute;top:.7rem;left:.7rem;font-size:.72rem;font-weight:700;background:var(--gold);
  color:#3a2a00;border-radius:var(--r-pill);padding:.2rem .6rem}
.hb-featured-badge i{font-size:.7rem}
.hb-featured-meta{font-size:.8rem;opacity:.9}
.hb-featured-title{font-weight:700;font-size:1.05rem;line-height:1.25;letter-spacing:-.01em}

/* ---- Index: toolbar + view toggle ---- */
.hb-events-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.hb-result-count{color:var(--muted);font-size:.95rem}
.hb-result-count strong{color:var(--ink)}
.hb-view-toggle{display:inline-flex;background:var(--bg-2);border-radius:var(--r-pill);padding:.2rem}
.hb-view-btn{border:none;background:none;border-radius:var(--r-pill);padding:.4rem .9rem;font-size:.88rem;font-weight:600;
  color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem}
.hb-view-btn.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1)}

/* ---- Index: date group headers ---- */
.hb-date-head{font-size:1.05rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;
  margin:.6rem 0 -.2rem;padding-bottom:.4rem;border-bottom:1px solid #ececf0}

/* ---- Filter rail ---- */
.hb-filter-title{display:flex;align-items:center;gap:.4rem;font-weight:700}

/* ---- Calendar grid ---- */
.hb-cal-head{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-bottom:.8rem}
.hb-cal-head strong{font-size:1.1rem}
.hb-cal-nav{border:1px solid #e6e6ea;background:#fff;border-radius:50%;width:34px;height:34px;font-size:1.2rem;
  line-height:1;cursor:pointer;color:var(--ink)}
.hb-cal-nav:hover{border-color:var(--blue);color:var(--blue)}
.hb-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.hb-cal-dow{text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;padding:.3rem 0}
.hb-cal-cell{min-height:92px;border:1px solid #eee;border-radius:var(--r-sm);padding:.3rem;background:#fff;overflow:hidden}
.hb-cal-empty{background:transparent;border:none}
.hb-cal-today{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue) inset}
.hb-cal-num{font-size:.78rem;font-weight:700;color:var(--ink-2)}
.hb-cal-today .hb-cal-num{color:var(--blue)}
.hb-cal-ev{display:block;font-size:.68rem;line-height:1.25;margin-top:2px;padding:1px 4px;border-radius:4px;
  background:rgba(0,113,227,.1);color:#0a4ea3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-cal-ev.free{background:rgba(52,199,89,.14);color:#1a7a3a}
.hb-cal-ev:hover{filter:brightness(.95)}
.hb-cal-more{display:block;font-size:.66rem;color:var(--muted);margin-top:2px}

@media (max-width:991px){
  .hb-event-action{position:static}
  .hb-featured-strip{grid-template-columns:1fr}
}
@media (max-width:575px){
  .hb-cal-cell{min-height:64px}
  .hb-cal-ev{font-size:.6rem}
  .hb-cal-num{font-size:.7rem}
}
