/* ──────────────────────────────────────────────
   SERVICE DETAIL MODAL  (js/service-modal.js)
   "See details" → frosted overlay with a photo slideshow, full feature list
   and trip lengths + prices. The fullscreen photo viewer reuses .lightbox.
─────────────────────────────────────────────── */
.smodal {
  position: fixed;
  inset: 0;
  z-index: var(--z-overlay);
  display: grid;
  place-items: center;
  padding: clamp(0.75rem, 3vw, 2rem);
  background: rgba(3, 12, 22, 0.72);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--t-base), visibility var(--t-base);
}
.smodal.is-open { opacity: 1; visibility: visible; }

.smodal__panel {
  position: relative;
  width: min(880px, 100%);
  max-height: min(92vh, 900px);
  display: flex;
  flex-direction: column;
  background: var(--g-fill-strong);
  border: 1px solid var(--g-border);
  -webkit-backdrop-filter: var(--blur-lg);
  backdrop-filter: var(--blur-lg);
  border-radius: var(--r-xl);
  box-shadow: var(--g-shadow-float), var(--g-inner);
  overflow: hidden;
  transform: translateY(14px) scale(0.985);
  transition: transform var(--t-base);
}
.smodal.is-open .smodal__panel { transform: none; }
.smodal__scroll { overflow-y: auto; overscroll-behavior: contain; }

.smodal__close {
  position: absolute;
  top: var(--sp-3);
  right: var(--sp-3);
  z-index: 3;
  width: 42px; height: 42px;
  display: grid;
  place-items: center;
  border-radius: var(--r-full);
  background: rgba(6, 18, 30, 0.55);
  border: 1px solid var(--g-border);
  -webkit-backdrop-filter: var(--blur-md);
  backdrop-filter: var(--blur-md);
  color: #fff;
  cursor: pointer;
  transition: background var(--t-fast), transform var(--t-fast);
}
.smodal__close:hover { background: var(--c-coral); transform: rotate(90deg); }
.smodal__close svg { width: 22px; height: 22px; }

/* ── Media / slideshow ── */
.smodal__media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: #06121e;
  flex-shrink: 0;
}
.smodal__photo {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.smodal__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px; height: 40px;
  display: grid;
  place-items: center;
  border-radius: var(--r-full);
  background: rgba(6, 18, 30, 0.5);
  border: 1px solid var(--g-border);
  -webkit-backdrop-filter: var(--blur-sm);
  backdrop-filter: var(--blur-sm);
  color: #fff;
  cursor: pointer;
  opacity: 0.85;
  transition: background var(--t-fast), opacity var(--t-fast);
}
.smodal__nav:hover { opacity: 1; background: rgba(6, 18, 30, 0.78); }
.smodal__nav svg { width: 22px; height: 22px; }
.smodal__prev { left: var(--sp-3); }
.smodal__next { right: var(--sp-3); }
.smodal__zoom {
  position: absolute;
  top: var(--sp-3);
  left: var(--sp-3);
  width: 38px; height: 38px;
  display: grid;
  place-items: center;
  border-radius: var(--r-full);
  background: rgba(6, 18, 30, 0.5);
  color: #fff;
}
.smodal__zoom svg { width: 20px; height: 20px; }
.smodal__dots {
  position: absolute;
  left: 0; right: 0;
  bottom: var(--sp-3);
  display: flex;
  gap: 6px;
  justify-content: center;
}
.smodal__dot {
  width: 8px; height: 8px;
  padding: 0;
  border: none;
  border-radius: var(--r-full);
  background: rgba(255, 255, 255, 0.45);
  cursor: pointer;
  transition: background var(--t-fast), transform var(--t-fast);
}
.smodal__dot.is-active { background: #fff; transform: scale(1.25); }

/* ── Body ── */
.smodal__body {
  padding: clamp(1.25rem, 4vw, 2rem);
  color: var(--c-text);
}
.smodal__price {
  display: inline-block;
  margin-bottom: var(--sp-3);
  padding: 0.3rem 0.75rem;
  border-radius: var(--r-full);
  background: var(--g-fill-soft);
  border: 1px solid var(--g-border-soft);
  font-weight: 700;
  font-size: var(--fs-sm);
  color: var(--c-text);
}
.smodal__title { font-size: var(--fs-2xl); margin-bottom: var(--sp-2); }
.smodal__tagline { color: var(--c-teal); font-weight: 600; margin-bottom: var(--sp-4); }
.smodal__desc { color: var(--c-muted); margin-bottom: var(--sp-5); }
.smodal__features {
  list-style: none;
  display: grid;
  gap: var(--sp-2);
  margin-bottom: var(--sp-6);
}
.smodal__features li {
  display: flex;
  gap: var(--sp-2);
  align-items: flex-start;
  font-size: var(--fs-sm);
}
.smodal__features svg {
  width: 18px; height: 18px;
  color: var(--c-teal);
  flex-shrink: 0;
  margin-top: 2px;
}

/* ── Trip lengths + prices ── */
.smodal__sub {
  font-size: var(--fs-sm);
  font-weight: 700;
  margin-bottom: var(--sp-3);
  color: var(--c-text);
}
.smodal__durs {
  display: grid;
  gap: var(--sp-2);
  margin-bottom: var(--sp-6);
}
.smodal__dur {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: 0.8rem 1rem;
  border-radius: var(--r-md);
  background: var(--g-fill-soft);
  border: 1px solid var(--g-border-soft);
  cursor: pointer;
  transition: border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);
}
.smodal__dur input {
  position: absolute;
  opacity: 0;
  width: 0; height: 0;
}
.smodal__dur-text { flex: 1; font-weight: 600; }
.smodal__dur-check {
  width: 20px; height: 20px;
  color: var(--c-teal);
  opacity: 0;
  transition: opacity var(--t-fast);
}
.smodal__dur-check svg { width: 20px; height: 20px; }
.smodal__dur.is-selected {
  border-color: rgba(16, 198, 216, 0.6);
  background: rgba(16, 198, 216, 0.1);
  box-shadow: 0 0 0 3px rgba(16, 198, 216, 0.15);
}
.smodal__dur.is-selected .smodal__dur-check { opacity: 1; }
.smodal__dur:focus-within { border-color: rgba(16, 198, 216, 0.6); }

.smodal__foot { margin-top: var(--sp-2); }
.smodal__book { width: 100%; }

/* On phones the panel goes full-bleed for maximum room. */
@media (max-width: 600px) {
  .smodal { padding: 0; }
  .smodal__panel {
    width: 100%;
    height: 100%;
    max-height: 100vh;
    border-radius: 0;
  }
  .smodal__media { aspect-ratio: 4 / 3; }
}

@media (prefers-reduced-motion: reduce) {
  .smodal, .smodal__panel { transition: none; }
  .smodal__panel { transform: none; }
}
