/* Scuba Finatics calendar list + custom event popup */
.sf-calendar{
  margin-top:22px;
  border:1px solid #d8e4e9;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 4px 18px rgba(0,0,0,.08);
}
/* Compact calendar viewport: four events visible, then scroll. */
.sf-calendar{
  max-height:368px;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.sf-event-row{
  min-height:92px;
}
.sf-calendar-status{
  padding:26px;
  color:#5c6d78;
}
.sf-event-row{
  width:100%;
  display:grid;
  grid-template-columns:150px minmax(0,1fr) 28px;
  gap:18px;
  align-items:center;
  padding:20px 22px;
  border:0;
  border-bottom:1px solid #d8e4e9;
  background:#fff;
  color:#14212b;
  text-align:left;
  cursor:pointer;
  font:inherit;
}
.sf-event-row:last-child{border-bottom:0}
.sf-event-row:hover,.sf-event-row:focus-visible{background:#f3f8fa}
.sf-event-row:focus-visible{outline:3px solid rgba(226,27,45,.25);outline-offset:-3px}
.sf-event-date{
  font-weight:800;
  color:#071a2a;
  line-height:1.25;
}
.sf-event-title{
  display:block;
  font-weight:800;
  font-size:1.05rem;
  line-height:1.25;
}
.sf-event-meta{
  display:block;
  margin-top:5px;
  color:#5c6d78;
  font-size:.92rem;
  line-height:1.35;
}
.sf-event-arrow{
  font-size:30px;
  line-height:1;
  color:#e21b2d;
  font-weight:700;
  text-align:right;
}
.sf-calendar-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(3,18,31,.72);
}
.sf-calendar-modal.is-open{display:flex}
.sf-calendar-dialog{
  position:relative;
  width:min(760px,100%);
  max-height:min(84vh,820px);
  overflow:auto;
  background:#fff;
  border-radius:12px;
  box-shadow:0 22px 70px rgba(0,0,0,.35);
  padding:34px 34px 30px;
}
.sf-calendar-close{
  position:absolute;
  top:12px;
  right:14px;
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:#eff7fa;
  color:#071a2a;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}
.sf-calendar-close:hover,.sf-calendar-close:focus-visible{background:#dfeef3}
.sf-modal-kicker{
  color:#e21b2d;
  text-transform:uppercase;
  letter-spacing:1.4px;
  font-size:.76rem;
  font-weight:900;
  margin-bottom:8px;
}
.sf-calendar-dialog h3{
  margin:0 44px 10px 0;
  font-size:clamp(1.7rem,4vw,2.35rem);
  line-height:1.08;
  color:#071a2a;
}
.sf-modal-when,.sf-modal-location{
  margin:7px 0;
  color:#5c6d78;
  font-weight:700;
}
.sf-modal-description{
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid #d8e4e9;
  white-space:pre-wrap;
  color:#263640;
  line-height:1.65;
}
.sf-modal-description a,.sf-modal-location a{
  color:#c91525;
  text-decoration:underline;
  font-weight:700;
  overflow-wrap:anywhere;
}
body.sf-modal-open{overflow:hidden}

/* Undo old iframe sizing now that calendars are rendered locally. */
.next-event-calendar{
  height:auto!important;
  overflow:visible!important;
  background:transparent!important;
  box-shadow:none!important;
}
.next-event-calendar .sf-calendar{margin-top:0}
.calendar-wrap{
  overflow:visible!important;
  min-height:0!important;
}
.adventure-calendar-embed{
  min-height:0!important;
}
.adventure-calendar-embed .sf-calendar{margin-top:0}

@media (max-width:700px){
.sf-calendar{
    max-height:456px;
  }
  .sf-event-row{
    min-height:114px;
  }
  .sf-event-row{
    grid-template-columns:1fr 22px;
    gap:8px 12px;
    padding:17px 16px;
  }
  .sf-event-date{
    grid-column:1 / -1;
    font-size:.86rem;
    color:#5c6d78;
  }
  .sf-event-arrow{
    grid-column:2;
    grid-row:2;
  }
  .sf-calendar-dialog{
    padding:30px 20px 24px;
  }
}
.sf-calendar-fallback{margin-top:14px;padding:16px 18px;border:1px solid #d8e4e9;border-radius:8px;background:#f6fafc;color:#42535e;line-height:1.55}.sf-calendar-fallback p{margin:0}.sf-calendar-fallback-link{display:inline-block;margin-top:8px;color:#c91525;font-weight:800;text-decoration:underline}.sf-calendar-fallback[hidden]{display:none!important}
