/* South Puget Sound Cruise slideshow — styles are namespaced to avoid conflicts. */
.dmhs-cruise {
  --dmhs-navy: #102d45;
  --dmhs-blue: #1d5276;
  --dmhs-gold: #d3a53c;
  --dmhs-cream: #f7f4ec;
  --dmhs-ink: #17212a;
  max-width: 1180px;
  margin: 2rem auto;
  padding: clamp(1rem, 2.5vw, 2rem);
  background: var(--dmhs-cream);
  color: var(--dmhs-ink);
  border: 1px solid rgba(16,45,69,.16);
  border-radius: 14px;
  box-shadow: 0 12px 35px rgba(16,45,69,.12);
  font-family: Arial, Helvetica, sans-serif;
}
.dmhs-cruise *, .dmhs-cruise *::before, .dmhs-cruise *::after { box-sizing: border-box; }
.dmhs-cruise-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem; margin-bottom:1rem; }
.dmhs-cruise-heading h2 { margin:.1rem 0 .4rem; color:var(--dmhs-navy); font-family: Georgia, 'Times New Roman', serif; font-size:clamp(1.8rem,4vw,3rem); line-height:1.05; }
.dmhs-cruise-heading p { margin:.25rem 0; line-height:1.5; }
.dmhs-cruise-kicker { color:var(--dmhs-blue); font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.82rem; }
.dmhs-cruise-credit { max-width:18rem; text-align:right; font-size:.9rem; }
.dmhs-cruise-stage { position:relative; display:grid; place-items:center; min-height:240px; aspect-ratio:3/2; overflow:hidden; background:#07131d; border-radius:10px; outline:none; }
.dmhs-cruise-stage:focus-visible { box-shadow:0 0 0 4px var(--dmhs-gold); }
.dmhs-cruise-slide { position:absolute; inset:0; display:grid; place-items:center; margin:0; opacity:0; transition:opacity .45s ease; background:#07131d; }
.dmhs-cruise-slide.is-active { opacity:1; }
.dmhs-cruise-slide[hidden] { display:none; }
.dmhs-cruise-slide img { display:block; width:100%; height:100%; object-fit:contain; }
.dmhs-cruise-slide figcaption { position:absolute; left:0; right:0; bottom:0; padding:3.5rem 1rem 1rem; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.82)); font-size:clamp(.9rem,2vw,1.1rem); line-height:1.35; }
.dmhs-cruise-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:48px; height:58px; border:0; border-radius:7px; background:rgba(7,19,29,.72); color:#fff; font-size:1.7rem; cursor:pointer; }
.dmhs-cruise-nav:hover, .dmhs-cruise-nav:focus-visible { background:var(--dmhs-blue); outline:3px solid #fff; outline-offset:2px; }
.dmhs-cruise-prev { left:.65rem; } .dmhs-cruise-next { right:.65rem; }
.dmhs-cruise-controls { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:.75rem; margin:.9rem 0; }
.dmhs-cruise-controls button { min-height:44px; padding:.55rem .85rem; border:2px solid var(--dmhs-blue); border-radius:7px; background:#fff; color:var(--dmhs-navy); font-weight:700; cursor:pointer; }
.dmhs-cruise-controls button:hover, .dmhs-cruise-controls button:focus-visible { background:var(--dmhs-navy); color:#fff; outline:3px solid var(--dmhs-gold); outline-offset:2px; }
.dmhs-cruise-play { justify-self:start; } .dmhs-cruise-fullscreen { justify-self:end; }
.dmhs-cruise-play-icon { display:inline-block; min-width:1.4em; }
.dmhs-cruise-counter { margin:0; font-weight:700; color:var(--dmhs-navy); }
.dmhs-cruise-thumbs { display:flex; gap:.55rem; overflow-x:auto; padding:.35rem .15rem .65rem; scroll-snap-type:x proximity; scrollbar-color:var(--dmhs-blue) transparent; }
.dmhs-cruise-thumb { flex:0 0 118px; aspect-ratio:3/2; padding:0; overflow:hidden; border:3px solid transparent; border-radius:6px; background:#d9dee2; cursor:pointer; scroll-snap-align:center; }
.dmhs-cruise-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.dmhs-cruise-thumb:hover, .dmhs-cruise-thumb:focus-visible { border-color:var(--dmhs-blue); outline:2px solid var(--dmhs-gold); outline-offset:2px; }
.dmhs-cruise-thumb.is-active { border-color:var(--dmhs-gold); box-shadow:0 0 0 2px var(--dmhs-navy); }
.dmhs-cruise:fullscreen { max-width:none; margin:0; border-radius:0; background:#050b10; color:#fff; }
.dmhs-cruise:fullscreen .dmhs-cruise-heading, .dmhs-cruise:fullscreen .dmhs-cruise-thumbs { display:none; }
.dmhs-cruise:fullscreen .dmhs-cruise-stage { height:calc(100vh - 76px); aspect-ratio:auto; border-radius:0; }
.dmhs-cruise:fullscreen .dmhs-cruise-controls { color:#fff; padding:0 1rem; }
.dmhs-cruise:fullscreen .dmhs-cruise-counter { color:#fff; }
.visually-hidden { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
@media (max-width:700px) {
  .dmhs-cruise { margin:1rem 0; border-radius:0; padding:.85rem; }
  .dmhs-cruise-heading { display:block; }
  .dmhs-cruise-credit { max-width:none; text-align:left; }
  .dmhs-cruise-stage { aspect-ratio:4/3; }
  .dmhs-cruise-nav { width:42px; height:50px; }
  .dmhs-cruise-controls { grid-template-columns:1fr auto; }
  .dmhs-cruise-counter { grid-column:1 / -1; grid-row:1; text-align:center; }
  .dmhs-cruise-play { grid-column:1; grid-row:2; }
  .dmhs-cruise-fullscreen { grid-column:2; grid-row:2; }
  .dmhs-cruise-thumb { flex-basis:92px; }
}
@media (prefers-reduced-motion: reduce) {
  .dmhs-cruise-slide { transition:none; }
}
