/* Nemo promo — all selectors namespaced .np-* so nothing leaks into the legacy site. */
.np-root {
  --np-navy: #0b2236;
  --np-navy-2: #12324d;
  --np-ocean: #275787;
  --np-ivory: #f8f5ef;
  --np-sand: #ece5d8;
  --np-teal: #17767a;
  --np-teal-soft: #e3f1f0;
  --np-red: #c31313;
  --np-red-dark: #9e0f0f;
  --np-ink: #1d2a36;
  --np-muted: #5b6875;
  --np-line: #d9dee3;
  --np-focus: #ffbf47;
  --np-radius: 14px;
  --np-shadow: 0 18px 50px rgba(5, 20, 35, .28);
  --np-head: Poppins, "Helvetica Neue", Arial, sans-serif;
  --np-body: Roboto, "Helvetica Neue", Arial, sans-serif;
  font-family: var(--np-body);
  color: var(--np-ink);
  line-height: 1.5;
}
.np-root *, .np-root *::before, .np-root *::after { box-sizing: border-box; }
.np-root [hidden] { display: none !important; }
.np-root button { font: inherit; cursor: pointer; }
.np-root :focus-visible { outline: 3px solid var(--np-focus); outline-offset: 2px; }
.np-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Buttons ---------- */
.np-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 44px; padding: .7em 1.25em; border-radius: 999px; border: 2px solid transparent;
  font-family: var(--np-head); font-weight: 600; font-size: .95rem; line-height: 1.1;
  text-decoration: none !important; transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.np-btn--primary { background: var(--np-red); color: #fff !important; }
.np-btn--primary:hover { background: var(--np-red-dark); }
.np-btn--ghost { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.85); }
.np-btn--ghost:hover { background: rgba(255,255,255,.14); }
.np-btn--outline { background: #fff; color: var(--np-ocean) !important; border-color: var(--np-ocean); }
.np-btn--outline:hover { background: var(--np-teal-soft); }
.np-btn--wa { background: #1d7a46; color: #fff !important; }
.np-btn--wa:hover { background: #155c34; }
.np-btn--block { width: 100%; }
.np-btn[disabled] { opacity: .55; cursor: not-allowed; }
.np-link { color: var(--np-ocean); text-decoration: underline; background: none; border: 0; padding: 0; }

/* ---------- Launcher pill + teaser ---------- */
.np-launcher {
  position: fixed; left: 112px; bottom: 24px; z-index: 990; /* right of the site's back-to-top arrow */
  display: inline-flex; align-items: center; gap: .55em;
  min-height: 46px; padding: .55em 1.1em .55em .6em; border-radius: 999px; border: 0;
  background: var(--np-navy); color: #fff; box-shadow: var(--np-shadow);
  font-family: var(--np-head); font-weight: 600; font-size: .9rem;
}
.np-launcher__dot { width: 32px; height: 32px; border-radius: 50%; background: var(--np-teal) center/cover; flex: none; }
.np-launcher:hover { background: var(--np-navy-2); }

.np-teaser {
  /* v2-premium. bottom is set in JS to clear the back-to-top arrow, consent card and search bar */
  position: fixed; left: 20px; bottom: 104px; z-index: 1000; width: 344px; max-width: calc(100vw - 40px);
  display: flex; flex-direction: column;
  background: #fff; border-radius: 16px; overflow: hidden;
  box-shadow: 0 22px 60px rgba(5, 20, 35, .32), 0 2px 8px rgba(5, 20, 35, .12);
  animation: np-rise .25s ease-out both;
}
.np-teaser__media { position: relative; height: 172px; background: var(--np-navy) center 40%/cover; }
.np-teaser__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,34,54,0) 45%, rgba(11,34,54,.72)); }
.np-teaser__kicker { position: absolute; left: 18px; bottom: 12px; z-index: 1; color: #fff; font: 600 .74rem/1 var(--np-head); letter-spacing: .14em; text-transform: uppercase; }
.np-teaser__body { padding: 16px 20px 20px; }
.np-teaser__title { margin: 0 0 6px; font: 700 1.3rem/1.22 var(--np-head); color: var(--np-navy); }
.np-teaser__text { margin: 0 0 16px; font-size: .93rem; line-height: 1.45; color: #3d4a57; }
.np-teaser__cta { width: 100%; min-height: 50px; font-size: 1rem; letter-spacing: .01em; box-shadow: 0 6px 16px rgba(195, 19, 19, .28); }
.np-teaser__cta:hover { transform: translateY(-1px); }
.np-teaser__close {
  position: absolute; top: 10px; right: 10px; z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 0;
  background: rgba(11,34,54,.72); color: #fff; font-size: 22px; line-height: 1;
}
.np-teaser__close:hover { background: var(--np-navy); }
@keyframes np-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* Consent card (not modal; asked once, re-askable via "Analytics preferences") */
.np-consent {
  /* top is set in JS (just under the sticky site header) */
  position: fixed; right: 20px; top: 132px; z-index: 1001; width: 420px; max-width: calc(100vw - 24px);
  padding: 16px 18px; background: #fff; border-radius: 14px; box-shadow: 0 14px 40px rgba(5,20,35,.28); border: 1px solid var(--np-line);
}
.np-root .np-consent__title { margin: 0 0 4px; font: 700 1rem/1.3 var(--np-head) !important; color: var(--np-navy); }
.np-consent__text { margin: 0 0 12px; font-size: .88rem; line-height: 1.45; color: #3d4a57; }
.np-consent__text a { color: var(--np-ocean); text-decoration: underline; }
.np-consent__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.np-consent__actions .np-btn { min-height: 44px; font-size: .9rem; }

/* ---------- Modal shell ---------- */
.np-overlay {
  position: fixed; inset: 0; z-index: 2147483000; display: flex; align-items: center; justify-content: center;
  padding: 24px; background: rgba(5, 18, 30, .72); animation: np-fade .25s ease-out both;
}
@keyframes np-fade { from { opacity: 0; } to { opacity: 1; } }
.np-dialog {
  position: relative; width: 100%; max-width: 1120px; max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px);
  display: flex; flex-direction: column; background: var(--np-ivory); border-radius: 18px; overflow: hidden; box-shadow: var(--np-shadow);
  animation: np-pop .3s ease-out both;
}
@keyframes np-pop { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: none; } }
.np-scroll { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.np-close {
  position: absolute; top: 14px; right: 14px; z-index: 20; width: 44px; height: 44px; border-radius: 50%; border: 0;
  background: rgba(11,34,54,.72); color: #fff; font-size: 24px; line-height: 1; display: grid; place-items: center;
}
.np-close:hover { background: var(--np-navy); }

/* Hero */
.np-hero { position: relative; min-height: 340px; height: 44vh; max-height: 420px; color: #fff; background: var(--np-navy) center/cover; overflow: hidden; }
.np-hero video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.np-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,26,42,.82) 0%, rgba(8,26,42,.45) 55%, rgba(8,26,42,.1) 100%), linear-gradient(0deg, rgba(8,26,42,.55), rgba(8,26,42,0) 45%); }
.np-hero__inner { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding: 36px 44px; max-width: 660px; }
.np-eyebrow { font: 600 .78rem/1 var(--np-head); letter-spacing: .16em; text-transform: uppercase; color: #bfe3e1; margin: 0 0 12px; }
.np-hero__title { margin: 0 0 10px; font: 700 clamp(1.7rem, 3.4vw, 2.6rem)/1.12 var(--np-head); color: #fff; }
/* Legacy responsive.css forces h2 {font-size:1.7rem!important}; only !important can win. */
.np-root .np-hero__title { font-size: clamp(1.6rem, 3.4vw, 2.6rem) !important; line-height: 1.12 !important; }
.np-root .np-teaser__title { font-size: 1.3rem !important; line-height: 1.22 !important; }
.np-hero__text { margin: 0 0 22px; font-size: 1.05rem; color: rgba(255,255,255,.92); max-width: 34em; }
.np-hero__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.np-hero__pause {
  position: absolute; z-index: 3; right: 16px; bottom: 16px; min-height: 36px; padding: .4em .9em; border-radius: 999px; border: 0;
  background: rgba(11,34,54,.6); color: #fff; font-size: .8rem;
}

/* Tabs */
.np-tabs { position: sticky; top: 0; z-index: 10; display: flex; gap: 4px; padding: 0 32px; background: #fff; border-bottom: 1px solid var(--np-line); overflow-x: auto; scrollbar-width: none; }
.np-tabs::-webkit-scrollbar { display: none; }
.np-tab {
  flex: none; min-height: 54px; padding: 0 18px; border: 0; border-bottom: 3px solid transparent; background: none;
  font: 600 .95rem/1 var(--np-head); color: var(--np-muted); white-space: nowrap;
}
.np-tab[aria-selected="true"] { color: var(--np-navy); border-bottom-color: var(--np-red); }
.np-tab:hover { color: var(--np-navy); }
.np-panel { padding: 30px 40px 40px; }
.np-h3 { margin: 0 0 6px; font: 700 1.35rem/1.25 var(--np-head); color: var(--np-navy); }
.np-lead { margin: 0 0 20px; color: var(--np-muted); }
.np-note { font-size: .85rem; color: var(--np-muted); }

/* Experience */
.np-chapters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.np-chip {
  min-height: 40px; padding: .45em 1.05em; border-radius: 999px; border: 1px solid var(--np-line); background: #fff;
  font: 600 .88rem/1 var(--np-head); color: var(--np-ink);
}
.np-chip[aria-pressed="true"] { background: var(--np-navy); border-color: var(--np-navy); color: #fff; }
.np-stage { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.np-player { position: relative; border-radius: var(--np-radius); overflow: hidden; background: #000; aspect-ratio: 16 / 9; }
.np-player video { width: 100%; height: 100%; object-fit: cover; display: block; }
.np-caption { margin: 10px 0 0; font-size: .92rem; color: var(--np-ink); }
.np-thumbs { display: grid; gap: 10px; }
.np-thumb { position: relative; display: block; width: 100%; padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; background: #000; aspect-ratio: 16 / 9; }
.np-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .85; }
.np-thumb[aria-current="true"] { border-color: var(--np-red); }
.np-thumb[aria-current="true"] img, .np-thumb:hover img { opacity: 1; }

/* Yacht */
.np-facts { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; padding: 0; list-style: none; }
.np-facts li { padding: .4em .9em; border-radius: 999px; background: var(--np-teal-soft); color: var(--np-teal); font: 600 .85rem/1.2 var(--np-head); }
.np-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0 0 28px; }
.np-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; display: block; background: var(--np-sand); }
.np-gallery figure { margin: 0; }
.np-gallery figure:first-child { grid-column: span 2; grid-row: span 2; }
.np-gallery figure:first-child img { aspect-ratio: auto; height: 100%; }
.np-tour { position: relative; border-radius: var(--np-radius); overflow: hidden; background: var(--np-navy) center/cover; min-height: 300px; display: grid; place-items: center; text-align: center; color: #fff; margin: 0 0 28px; }
.np-tour::before { content: ""; position: absolute; inset: 0; background: rgba(8,26,42,.6); }
.np-tour > * { position: relative; }
.np-tour__inner { padding: 30px; }
.np-tour__title { margin: 0 0 6px; font: 700 1.25rem/1.25 var(--np-head); color: #fff; }
.np-tour iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.np-tour.is-live { min-height: 0; aspect-ratio: 16 / 9; background: #0b2236; }
.np-tour.is-live::before { display: none; }
.np-tour__fallback { margin-top: 10px; font-size: .88rem; }
.np-tour__fallback a { color: #fff; text-decoration: underline; }
.np-cabins { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 20px; align-items: start; }
.np-cabins img { width: 100%; border-radius: 10px; display: block; background: var(--np-sand); }
.np-cabin-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.np-cabin-grid figure { margin: 0; }
.np-cabin-grid img { aspect-ratio: 3 / 2; object-fit: cover; }
.np-cabin-grid figcaption { font-size: .8rem; color: var(--np-muted); margin-top: 3px; }

/* Sailings: filters */
.np-filters { display: grid; grid-template-columns: 1.4fr .8fr 1.6fr 1.3fr auto; gap: 14px; align-items: end; padding: 18px; margin: 0 0 22px; background: #fff; border: 1px solid var(--np-line); border-radius: var(--np-radius); }
.np-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; border: 0; margin: 0; padding: 0; }
.np-field > label, .np-field > legend { font: 600 .78rem/1.2 var(--np-head); letter-spacing: .04em; text-transform: uppercase; color: var(--np-muted); padding: 0; float: none; width: auto; margin: 0 0 6px; }
.np-select {
  width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid #b8c2cc; border-radius: 10px; background: #fff; color: var(--np-ink); font: 400 1rem var(--np-body);
}
.np-seg { display: flex; flex-wrap: wrap; gap: 6px; }
.np-seg label { position: relative; margin: 0; }
.np-seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.np-seg span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border: 1px solid #b8c2cc; border-radius: 10px; background: #fff; font: 500 .92rem/1 var(--np-body); cursor: pointer; }
.np-seg input:checked + span { background: var(--np-navy); border-color: var(--np-navy); color: #fff; }
.np-seg input:focus-visible + span { outline: 3px solid var(--np-focus); outline-offset: 2px; }

/* Sailings: status, cards */
.np-status { min-height: 1.5em; margin: 0 0 14px; font-size: .92rem; color: var(--np-muted); }
.np-sample { margin: 0 0 16px; padding: 12px 16px; border: 2px dashed #a15c00; border-radius: 10px; background: #fff4e0; color: #6b3d00; font: 700 .95rem/1.3 var(--np-head); text-transform: uppercase; letter-spacing: .04em; }
.np-stale { margin: 0 0 16px; padding: 10px 14px; border-radius: 10px; background: #fff8e1; color: #6b4e00; font-size: .9rem; }
.np-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; }
.np-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--np-line); border-radius: var(--np-radius); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.np-card:hover { box-shadow: 0 10px 28px rgba(11,34,54,.12); transform: translateY(-2px); }
.np-card__top { padding: 16px 18px 0; }
.np-card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.np-tag { display: inline-block; padding: .3em .7em; border-radius: 6px; font: 600 .75rem/1.2 var(--np-head); background: var(--np-sand); color: var(--np-ink); }
.np-tag--days8 { background: #fde7d3; color: #7a3c06; }
.np-tag--days5 { background: #dbeafb; color: #134a82; }
.np-tag--days4 { background: #e3f3d3; color: #345c0b; }
.np-tag--deal { background: var(--np-red); color: #fff; }
.np-tag--info { background: var(--np-teal-soft); color: var(--np-teal); }
.np-card__dates { margin: 0 0 4px; font: 700 1.12rem/1.3 var(--np-head); color: var(--np-navy); }
.np-card__meta { margin: 0 0 12px; font-size: .9rem; color: var(--np-muted); }
.np-card__bottom { margin-top: auto; padding: 14px 18px 18px; border-top: 1px solid var(--np-line); display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.np-price__from { font-size: .78rem; color: var(--np-muted); text-transform: uppercase; letter-spacing: .05em; }
.np-price__amount { font: 700 1.45rem/1.1 var(--np-head); color: var(--np-ink); }
.np-price__per { font-size: .82rem; color: var(--np-muted); }
.np-price__was { font-size: .85rem; color: var(--np-muted); text-decoration: line-through; margin-left: 6px; }
.np-avail { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; font-size: .88rem; color: var(--np-ink); } /* legacy p{color:#777} fails AA */
.np-avail::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: #2e8b57; flex: none; }
.np-avail--confirm::before { background: #c98b00; }

/* Skeletons */
.np-skel { height: 214px; border-radius: var(--np-radius); background: linear-gradient(90deg, #ece8e0 25%, #f6f3ee 37%, #ece8e0 63%); background-size: 400% 100%; animation: np-shimmer 1.3s ease infinite; }
@keyframes np-shimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }

/* Empty / error */
.np-message { padding: 28px; border-radius: var(--np-radius); background: #fff; border: 1px solid var(--np-line); text-align: center; }
.np-message__title { margin: 0 0 8px; font: 700 1.1rem/1.3 var(--np-head); color: var(--np-navy); }
.np-message__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 16px; }

/* Detail */
.np-back { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 16px; min-height: 40px; padding: 0 4px; border: 0; background: none; color: var(--np-ocean); font: 600 .92rem/1 var(--np-head); }
.np-detail { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 26px; align-items: start; }
.np-detail__map { width: 100%; border-radius: var(--np-radius); border: 1px solid var(--np-line); background: #fff; display: block; }
.np-box { padding: 20px; border-radius: var(--np-radius); background: #fff; border: 1px solid var(--np-line); margin: 0 0 16px; }
.np-box__title { margin: 0 0 12px; font: 700 1rem/1.3 var(--np-head); color: var(--np-navy); }
.np-fares { width: 100%; border-collapse: collapse; font-size: .92rem; }
.np-fares th, .np-fares td { padding: 10px 0; border-bottom: 1px solid var(--np-line); text-align: left; vertical-align: top; }
.np-fares td { text-align: right; white-space: nowrap; font: 700 1.05rem/1.2 var(--np-head); }
.np-fares tr:last-child th, .np-fares tr:last-child td { border-bottom: 0; }
.np-fares small { display: block; font: 400 .8rem/1.3 var(--np-body); color: var(--np-muted); }
.np-cabin-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.np-cabin-chips li { display: flex; align-items: center; gap: 8px; padding: 4px 10px 4px 4px; border-radius: 10px; background: var(--np-teal-soft); font-size: .85rem; }
.np-cabin-chips img { width: 48px; height: 34px; object-fit: cover; border-radius: 6px; }
.np-request { padding: 22px; border-radius: var(--np-radius); background: var(--np-navy); color: #fff; }
.np-request .np-box__title { color: #fff; font-size: 1.15rem; }
.np-request p { color: rgba(255,255,255,.88); font-size: .9rem; margin: 0 0 14px; }
.np-request__actions { display: grid; gap: 10px; }
.np-request .np-btn--outline { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.8); }
.np-request .np-btn--outline:hover { background: rgba(255,255,255,.12); }
.np-request a.np-mail { color: #fff; }
.np-disclaimer { margin: 12px 0 0; font-size: .82rem; color: rgba(255,255,255,.78) !important; }
.np-fresh { font-size: .85rem; color: var(--np-muted); margin: 0 0 12px; }
.np-fresh--warn { color: #8a4b00; font-weight: 600; }

/* Footer strip */
.np-foot { padding: 14px 40px; border-top: 1px solid var(--np-line); background: #fff; font-size: .82rem; color: var(--np-muted); }

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
  .np-filters { grid-template-columns: 1fr 1fr; }
  .np-filters .np-field--wide { grid-column: 1 / -1; }
  .np-filters .np-submit { grid-column: 1 / -1; }
  .np-stage, .np-detail, .np-cabins { grid-template-columns: 1fr; }
  .np-thumbs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  /* Clear the site's back-to-top arrow (bottom-left, ~140px tall on phones) and the chat bubble. */
  .np-launcher { left: 50%; bottom: 20px; transform: translateX(-50%); min-height: 44px; font-size: .85rem; white-space: nowrap; }
  .np-teaser { left: 12px; right: 12px; width: auto; max-width: none; flex-direction: row; border-radius: 14px; }
  .np-teaser__media { width: 96px; height: auto; flex: none; }
  .np-teaser__kicker { display: none; }
  .np-teaser__body { padding: 12px 46px 12px 14px; flex: 1; min-width: 0; }
  .np-root .np-teaser__title { font-size: 1.02rem !important; line-height: 1.25 !important; margin-bottom: 4px; }
  .np-teaser__text { font-size: .8rem; line-height: 1.35; margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .np-teaser__cta { min-height: 44px; font-size: .88rem; padding: .5em .7em; box-shadow: none; white-space: nowrap; }
  .np-consent { left: 12px; right: 12px; width: auto; max-width: none; padding: 14px; }
  .np-consent__actions .np-btn { flex: 1 1 auto; }
  .np-overlay { padding: 0; align-items: stretch; }
  .np-dialog { max-width: none; max-height: none; height: 100vh; height: 100dvh; border-radius: 0; }
  .np-hero { height: auto; min-height: 0; max-height: none; }
  .np-hero__inner { padding: 84px 20px 22px; }
  .np-hero__text { font-size: .98rem; margin-bottom: 16px; }
  .np-hero__actions .np-btn { flex: 1 1 auto; }
  .np-hero__pause { top: 18px; left: 16px; right: auto; bottom: auto; }
  .np-tabs { padding: 0 8px; }
  .np-tab { padding: 0 12px; font-size: .88rem; }
  .np-panel { padding: 22px 16px 32px; }
  .np-filters { grid-template-columns: 1fr; padding: 14px; }
  .np-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .np-cabin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .np-results { grid-template-columns: 1fr; }
  .np-foot { padding: 12px 16px; }
}

@media (max-width: 360px) {
  .np-launcher { padding: .55em 1em; font-size: .8rem; }
  .np-launcher__dot { display: none; }
  .np-teaser__media { width: 70px; }
  .np-teaser__body { padding: 10px 44px 10px 12px; }
  .np-root .np-teaser__title { font-size: .95rem !important; line-height: 1.22 !important; }
  .np-teaser__text { display: none; }
  .np-teaser__cta { margin-top: 6px; white-space: normal; font-size: .84rem; }
}

@media (prefers-reduced-motion: reduce) {
  .np-root *, .np-root *::before, .np-root *::after { animation: none !important; transition: none !important; }
}
html.np-lock, html.np-lock body { overflow: hidden !important; }

/* Homepage CTAs (outside .np-root, so literal brand colours). Hidden in HTML until promo.js reveals them. */
.np-page-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 50px; padding: 0 28px;
  border-radius: 4px; font: 600 1rem/1.2 Poppins, "Helvetica Neue", Arial, sans-serif; text-decoration: none !important;
  transition: background .2s, color .2s, transform .2s; cursor: pointer;
}
.np-page-cta[hidden] { display: none !important; }
.np-page-cta:focus-visible { outline: 3px solid #ffbf47; outline-offset: 3px; }
.np-page-cta--hero { margin-top: 22px; background: #c31313; color: #fff !important; border: 2px solid #c31313; box-shadow: 0 8px 22px rgba(0,0,0,.28); }
.np-page-cta--hero:hover { background: transparent; color: #fff !important; border-color: #fff; }
.np-page-cta--content { margin-top: 18px; background: #fff; color: #275787 !important; border: 2px solid #275787; }
.np-page-cta--content:hover { background: #275787; color: #fff !important; }
@media (max-width: 991px) { .np-page-cta--hero { display: flex; width: fit-content; margin-left: auto; margin-right: auto; } }
@media (max-width: 640px) { .np-page-cta { min-height: 46px; padding: 8px 18px; font-size: .92rem; max-width: 100%; } .np-page-cta--hero { margin-top: 12px; } .np-page-cta__long { display: none; } }
@media (prefers-reduced-motion: reduce) { .np-page-cta { transition: none; } }

/* =====================================================================
   Milestone 1 — booking-first opening, compact results, request-first detail.
   Placed last so it takes precedence; its own media queries follow it.
   ===================================================================== */
/* Opening view: authentic Nemo III photo, headline, search */
.np-hero--book { height: auto; min-height: 0; max-height: none; background-size: cover; background-repeat: no-repeat; }
.np-hero--book::after { background: linear-gradient(90deg, rgba(8,26,42,.86) 0%, rgba(8,26,42,.62) 46%, rgba(8,26,42,.12) 78%), linear-gradient(0deg, rgba(8,26,42,.45), rgba(8,26,42,0) 40%); }
.np-hero--book .np-hero__inner { height: auto; max-width: 980px; justify-content: flex-start; padding: 40px 44px 26px; }
.np-hero--book .np-hero__text { margin-bottom: 18px; }
.np-search {
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr) auto; gap: 12px; align-items: end;
  max-width: 900px; padding: 16px; border-radius: 14px; background: rgba(255,255,255,.97); color: var(--np-ink);
  box-shadow: 0 14px 40px rgba(5,20,35,.35);
}
.np-search .np-field > label { color: #44515e; margin-bottom: 0; }
.np-search .np-submit { min-height: 48px; padding: 0 26px; font-size: 1rem; white-space: nowrap; box-shadow: 0 6px 16px rgba(195,19,19,.3); }
.np-hero__more { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 14px; }
.np-more { min-height: 40px; padding: 0 2px; border: 0; background: none; color: #fff; font: 600 .92rem/1 var(--np-head); text-decoration: underline; text-decoration-color: rgba(255,255,255,.5); text-underline-offset: 4px; }
.np-more:hover { text-decoration-color: #fff; }

/* Tabs: keep clear of the close button */
.np-tabs { padding-right: 72px; }
.np-tab__short { display: none; }

/* Results toolbar */
.np-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 0 0 6px; }
.np-toolbar__title { margin: 0; }
.np-toolbar__controls { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.np-inline { display: inline-flex; align-items: center; gap: 8px; margin: 0; font: 600 .78rem/1.2 var(--np-head); letter-spacing: .04em; text-transform: uppercase; color: var(--np-muted); }
.np-select--sm { width: auto; min-height: 40px; font-size: .92rem; padding: 0 8px; text-transform: none; letter-spacing: 0; }
.np-results { list-style: none; margin: 0; padding: 0; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }

/* Compact cards */
.np-card__top { padding: 14px 16px 10px; }
.np-card__vessel { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 4px; font: 600 .82rem/1.3 var(--np-head); color: var(--np-navy); }
.np-card__len { padding: .2em .6em; border-radius: 6px; background: var(--np-sand); color: var(--np-ink); font-weight: 600; }
.np-len--8 { background: #fde7d3; color: #7a3c06; }
.np-len--5 { background: #dbeafb; color: #134a82; }
.np-len--4 { background: #e3f3d3; color: #345c0b; }
.np-card__dates { margin: 0 0 2px; font-size: 1.08rem; }
.np-card__meta { margin: 0 0 6px; font-size: .88rem; }
.np-card__tags { margin: 4px 0 0; }
.np-card__bottom { padding: 12px 16px 14px; align-items: center; }
.np-card__act { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.np-card__act .np-avail { margin: 0; font-size: .84rem; }
.np-card__select { min-width: 112px; }
.np-price__amount--request { font-size: 1.05rem; }

/* Detail: date & itinerary, then fare + availability + the one primary action, then media */
.np-detail__head { margin: 0 0 14px; }
.np-detail__title { margin: 2px 0 4px; font-size: 1.45rem; }
.np-detail__meta { margin: 0; color: var(--np-muted); }
.np-detail { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 24px; }
.np-box--fare { margin-bottom: 12px; }
.np-avail-row { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--np-line); }
.np-avail-row .np-fresh { margin: 4px 0 0; }
.np-request { padding: 18px; }
.np-cta-request { min-height: 52px; font-size: 1.05rem; box-shadow: 0 6px 16px rgba(195,19,19,.35); }
.np-request .np-request__note { margin: 10px 0 6px; color: rgba(255,255,255,.9); }
.np-request .np-request__alt { margin: 0; font-size: .86rem; color: rgba(255,255,255,.8); }
.np-request__alt a { color: #fff; text-decoration: underline; }
.np-fare-note { margin: 10px 0 0; }
.np-media .np-box__title { margin-top: 0; }
.np-explore { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }

/* Sticky request bar: inside the dialog, under the scroll area; shown only while the
   detail's own button is off-screen. Never covers the tabs or the close button. */
.np-sticky-cta {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 15; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: #fff; border-top: 1px solid var(--np-line); box-shadow: 0 -8px 24px rgba(11,34,54,.14);
}
.np-sticky-cta__text { font: 600 .92rem/1.25 var(--np-head); color: var(--np-navy); min-width: 0; }
.np-sticky-cta .np-btn { flex: none; }
.np-scroll.has-sticky { padding-bottom: 72px; }

@media (max-width: 991px) {
  .np-search { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .np-search .np-field--when { grid-column: 1 / -1; }
  .np-search .np-submit { grid-column: 1 / -1; }
  .np-detail { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .np-hero--book { background-position: 72% 40% !important; }
  .np-hero--book .np-hero__inner { padding: 58px 14px 14px; }
  .np-eyebrow { margin-bottom: 6px; font-size: .7rem; }
  .np-root .np-hero__title { font-size: 1.42rem !important; line-height: 1.18 !important; margin-bottom: 4px; padding-right: 44px; }
  .np-hero--book .np-hero__text { font-size: .9rem; margin-bottom: 10px; }
  .np-search { gap: 8px 10px; padding: 12px; border-radius: 12px; }
  .np-search .np-field--when { grid-column: 1 / -1; }
  .np-search .np-field > label { font-size: .72rem; }
  .np-search .np-select { min-height: 44px; }
  .np-hero__more { gap: 2px 16px; margin-top: 8px; }
  .np-more { min-height: 36px; font-size: .86rem; }
  .np-tabs { padding-right: 60px; }
  .np-toolbar__controls { width: 100%; }
  .np-inline { flex: 1 1 140px; }
  .np-select--sm { flex: 1; }
  .np-results { grid-template-columns: 1fr; }
  .np-detail__title { font-size: 1.25rem; }
  /* Keep date, fare, availability and the request button in the first screen on small phones */
  .np-back { margin-bottom: 6px; min-height: 40px; }
  .np-detail__head { margin-bottom: 10px; }
  .np-box { padding: 14px; }
  .np-box__title { margin-bottom: 6px; }
  .np-fares th, .np-fares td { padding: 6px 0; }
  .np-avail-row { margin-top: 8px; padding-top: 8px; }
  .np-request { padding: 14px; }
  .np-request .np-request__note { margin: 8px 0 4px; font-size: .85rem; }
  .np-sticky-cta { padding-left: 12px; padding-right: 12px; }
  .np-sticky-cta .np-btn { padding: .6em 1em; font-size: .9rem; }
}
@media (max-width: 400px) {
  .np-tab__long { display: none; }
  .np-tab__short { display: inline; }
}
@media (max-width: 360px) {
  .np-search { grid-template-columns: 1fr 1fr; }
  .np-root .np-hero__title { font-size: 1.3rem !important; }
  .np-hero--book .np-hero__text { display: none; }
  .np-sticky-cta__text { font-size: .82rem; }
}

/* Keep focused or scrolled-to content clear of the sticky tab bar and the sticky request bar (WCAG 2.4.11). */
.np-scroll { scroll-padding-top: 64px; scroll-padding-bottom: 84px; }

/* =====================================================================
   Phase 5 — WhatsApp as a primary booking channel, card action, sticky actions, social proof.
   ===================================================================== */
.np-wa-icon { width: 1.25em; height: 1.25em; flex: none; fill: currentColor; }
/* Brand-consistent: the site's primary red with the recognizable WhatsApp glyph (not a bright-green banner). */
.np-cta-wa { min-height: 54px; font-size: 1.05rem; gap: .55em; box-shadow: 0 6px 16px rgba(195,19,19,.35); }
.np-request--wa .np-request__micro { margin: 8px 0 12px; font-size: .88rem; color: rgba(255,255,255,.92); }
.np-btn--ondark { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.85); }
.np-btn--ondark:hover { background: rgba(255,255,255,.12); }
.np-request--wa .np-request__note { margin: 10px 0 4px; font-size: .84rem; }
.np-request--wa .np-request__alt { margin: 0 0 6px; }
.np-root .np-linkbtn { display: inline; padding: 0; margin: 0; border: 0; background: none; color: var(--np-ocean); text-decoration: underline; font: inherit; cursor: pointer; min-height: 0; }
.np-root .np-linkbtn--dark, .np-request .np-linkbtn { color: #fff; }
.np-tertiary { margin: 10px 0 0; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.18); font-size: .86rem; color: rgba(255,255,255,.75); }
.np-tertiary .np-linkbtn { display: inline-block; padding: 6px 0; }
/* Result cards: "Select" opens the detail; the WhatsApp link asks about this departure directly. */
.np-card__contact { padding: 0 16px 12px; margin-top: -4px; }
.np-card__wa { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 4px 2px; color: #1b6b45; font: 600 .86rem/1.2 var(--np-head); text-decoration: underline; text-underline-offset: 3px; }
.np-card__wa:hover { color: #124d31; }
.np-card__wa .np-wa-icon { width: 18px; height: 18px; }
/* Sticky bar with two actions */
.np-sticky-cta__actions { display: flex; gap: 8px; flex: none; }
.np-sticky-cta__wa { gap: .4em; }
@media (max-width: 400px) {
  .np-sticky-cta { gap: 8px; }
  .np-sticky-cta__text { font-size: .78rem; }
  .np-sticky-cta__actions .np-btn { padding: .55em .8em; font-size: .86rem; min-height: 44px; }
}
/* Curated social proof */
.np-social { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--np-line); }
.np-social__grid { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.np-social__card { display: flex; flex-direction: column; height: 100%; border-radius: var(--np-radius); overflow: hidden; background: #fff; border: 1px solid var(--np-line); color: var(--np-ink) !important; text-decoration: none !important; }
.np-social__card:hover { box-shadow: 0 10px 28px rgba(11,34,54,.12); }
.np-social__card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; background: var(--np-sand); }
.np-social__body { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px 12px; }
.np-social__meta { font: 600 .74rem/1.2 var(--np-head); letter-spacing: .06em; text-transform: uppercase; color: var(--np-teal); }
.np-social__title { font: 600 .95rem/1.3 var(--np-head); color: var(--np-navy); }
.np-social__src { font-size: .82rem; color: var(--np-muted); }
@media (max-width: 991px) { .np-social__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 400px) { .np-social__grid { grid-template-columns: 1fr; } }
/* The availability-page hand-off rendered as a text link inside the request box (main stylesheet: always loaded). */
.np-root .np-handoff--link { display: inline; }
@media (max-width: 400px) {
  .np-cta-wa { font-size: .92rem; padding: .6em .9em; min-height: 50px; }
  .np-cta-wa .np-wa-icon { width: 1.1em; height: 1.1em; }
}

/* Videos tab: chapters with more than three clips show the thumbnails as a row under the player */
.np-stage--row { grid-template-columns: 1fr; }
.np-stage--row .np-thumbs { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
/* Sailing detail: one wildlife moment (poster until played) */
.np-moment { margin: 0 0 22px; }
.np-moment__frame { position: relative; border-radius: var(--np-radius); overflow: hidden; background: #0b2236; aspect-ratio: 16 / 9; }
.np-moment__frame video, .np-moment__play img { width: 100%; height: 100%; object-fit: cover; display: block; }
.np-moment__play { position: absolute; inset: 0; padding: 0; border: 0; background: none; cursor: pointer; }
.np-moment__icon { position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; background: rgba(11,34,54,.72); box-shadow: 0 6px 20px rgba(0,0,0,.35); transition: transform .2s, background .2s; }
.np-moment__icon::after { content: ""; position: absolute; left: 26px; top: 20px; border-style: solid; border-width: 12px 0 12px 19px; border-color: transparent transparent transparent #fff; }
.np-moment__play:hover .np-moment__icon, .np-moment__play:focus-visible .np-moment__icon { background: var(--np-red); transform: scale(1.06); }
.np-moment figcaption { margin-top: 8px; font-size: .86rem; color: var(--np-muted); }
.np-moment__cap { display: block; color: var(--np-ink); font-weight: 600; margin-bottom: 2px; }
.np-moment__note { font-size: .8rem; }
@media (max-width: 640px) { .np-moment__icon { width: 56px; height: 56px; margin: -28px 0 0 -28px; } .np-moment__icon::after { left: 22px; top: 17px; border-width: 11px 0 11px 17px; } }
