/* =========================================================
   CHARTER YACHT — core stylesheet
   Tokens derived from the existing brand holding page:
   full-bleed aerial photography, high-contrast serif caps,
   wide-tracked small caps labels, deep teal and off-white.
   ========================================================= */

:root {
  /* Palette — monochrome: white surface, black type, grey accents */
  --ink:      #141414;   /* near-black, primary type + black elements */
  --deep:     var(--accent-mist);   /* light grey, alternate band */
  --lagoon:   #141414;   /* accent → black */
  --shallow:  #6E6E73;   /* muted grey, quiet accent */
  --hull:     #F4F2EC;   /* white, paper / type on dark media */
  --sand:     #141414;   /* labels → black */
  --gold:     #141414;   /* accent → black */
  --steel:    #6E6E73;   /* muted grey */
  --rule:     rgba(20, 20, 20, 0.14);
  --rule-ink: rgba(20, 20, 20, 0.12);

  /* Type — all sans-serif, complementing the logo */
  --display: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --body:    "Mulish", "Helvetica Neue", Arial, sans-serif;

  /* Scale */
  --shell: 1440px;
  --gutter: clamp(1.5rem, 5vw, 6rem);
  --band: clamp(5rem, 12vh, 10rem);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--ink);
  color: var(--hull);
  font-family: var(--body);
  font-weight: 300;
  font-size: clamp(0.95rem, 0.9rem + 0.2vw, 1.0625rem);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }

::selection { background: var(--lagoon); color: var(--hull); }

:focus-visible {
  outline: 1px solid var(--shallow);
  outline-offset: 4px;
}

.shell {
  max-width: var(--shell);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.skip {
  position: absolute; left: -9999px;
  background: var(--hull); color: var(--ink);
  padding: 0.75rem 1.25rem; z-index: 999;
}
.skip:focus { left: 1rem; top: 1rem; }

/* ---------------------------------------------------------
   Type roles
   --------------------------------------------------------- */

.display {
  font-family: var(--display);
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0.005em;
  line-height: 1.03;
  margin: 0;
}

.display--hero { font-size: clamp(2.75rem, 9vw, 8.5rem); }
.display--section { font-size: clamp(1.9rem, 4.5vw, 4rem); }
.display--sub { font-size: clamp(1.4rem, 2.6vw, 2.4rem); letter-spacing: 0.01em; }

.eyebrow {
  font-family: var(--body);
  font-size: 0.6875rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.42em;
  color: var(--sand);
  margin: 0 0 1.75rem;
}

.lede {
  font-size: clamp(1rem, 0.95rem + 0.35vw, 1.25rem);
  line-height: 1.65;
  max-width: 46ch;
  color: rgba(20, 20, 20, 0.82);
}

.fine {
  font-size: 0.6875rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(20, 20, 20, 0.55);
}

/* ---------------------------------------------------------
   Buttons
   --------------------------------------------------------- */

.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  font-family: var(--body);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 0 0 0.5rem 0;
  border: 0;
  border-bottom: 1px solid var(--gold);
  background: none;
  color: var(--hull);
  cursor: pointer;
  transition: color 0.4s ease, border-color 0.4s ease;
}
.btn::after { content: "\2192"; font-size: 1.05em; line-height: 1; transition: transform 0.4s ease; }
.btn:hover, .btn:focus-visible { color: var(--gold); }
.btn:hover::after, .btn:focus-visible::after { transform: translateX(6px); }

.btn--ghost { }
.btn--solid {
  border-bottom: 0;
  background: var(--gold);
  color: var(--ink);
  padding: 1.05rem 2.6rem;
}
.btn--solid::after { content: none; }
.btn--solid:hover, .btn--solid:focus-visible { background: var(--hull); color: var(--ink); }

.textlink {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.6875rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  text-decoration: none;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--rule);
  transition: border-color 0.4s ease, gap 0.4s ease;
}
.textlink:hover, .textlink:focus-visible { border-color: var(--hull); gap: 1.25rem; }

/* ---------------------------------------------------------
   Masthead
   --------------------------------------------------------- */

.masthead {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.5rem var(--gutter);
  transition: background 0.6s ease, padding 0.6s ease, border-color 0.6s ease;
  border-bottom: 1px solid transparent;
}
.masthead[data-stuck="true"] {
  background: rgba(20, 20, 20, 0.92);
  backdrop-filter: blur(14px);
  padding-block: 1rem;
  border-bottom-color: var(--rule);
}

.wordmark {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  line-height: 0;
}
.wordmark__logo {
  height: clamp(30px, 3.6vw, 44px);
  width: auto;
  display: block;
}
.masthead[data-stuck="true"] .wordmark__logo { height: clamp(24px, 2.9vw, 34px); }

.nav { display: flex; align-items: center; gap: clamp(1.25rem, 2.5vw, 2.75rem); }
.nav a {
  font-size: 0.625rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  text-decoration: none;
  opacity: 0.78;
  transition: opacity 0.4s ease;
}
.nav a:hover, .nav a:focus-visible { opacity: 1; }

.nav-toggle {
  display: none;
  background: none; border: 0; color: inherit; cursor: pointer;
  font-size: 0.625rem; letter-spacing: 0.3em; text-transform: uppercase;
  padding: 0.5rem;
}

@media (max-width: 900px) {
  .nav {
    position: fixed;
    inset: 0;
    flex-direction: column;
    justify-content: center;
    gap: 2.5rem;
    background: rgba(20, 20, 20, 0.98);
    transform: translateY(-100%);
    transition: transform 0.6s cubic-bezier(0.7, 0, 0.2, 1);
  }
  .nav[data-open="true"] { transform: translateY(0); }
  .nav a { font-size: 0.8125rem; }
  .nav-toggle { display: block; position: relative; z-index: 70; }
}

/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */

.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.hero__media {
  position: absolute; inset: 0;
  background-color: var(--deep);
  background-image:
    var(--photo, linear-gradient(transparent, transparent)),
    radial-gradient(120% 90% at 72% 78%, rgba(135, 145, 174, 0.42) 0%, rgba(20, 20, 20, 0) 58%),
    linear-gradient(178deg, #ECECE8 0%, #E6E6E1 26%, #DEDED9 52%, #D6D6D0 100%);
  background-size: cover;
  background-position: center;
  transform: scale(1.06);
  animation: drift 34s ease-in-out infinite alternate;
}

@keyframes drift {
  from { transform: scale(1.06) translate3d(0, 0, 0); }
  to   { transform: scale(1.14) translate3d(-1.5%, -1.5%, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .hero__media { animation: none; transform: scale(1.02); }
}

.hero__scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(100deg, rgba(20, 20, 20, 0.78) 0%, rgba(20, 20, 20, 0.32) 44%, rgba(20, 20, 20, 0.05) 70%),
    linear-gradient(to top, rgba(20, 20, 20, 0.72) 0%, rgba(20, 20, 20, 0) 42%);
}

.hero__body { position: relative; z-index: 2; width: 100%; padding-block: 8rem 6rem; }
.hero__title { max-width: 14ch; }
.hero__lede { margin: 2.5rem 0 3rem; }

.hero__foot {
  position: absolute;
  left: var(--gutter); right: var(--gutter); bottom: 2rem;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 2rem;
}
@media (max-width: 700px) { .hero__foot { display: none; } }

/* ---------------------------------------------------------
   Bands
   --------------------------------------------------------- */

.band { padding-block: var(--band); position: relative; }
.band--deep { background: var(--deep); }
.band--hull { background: var(--hull); color: var(--ink); }
.band--hull .eyebrow { color: var(--lagoon); }
.band--hull .lede { color: rgba(20, 20, 20, 0.78); }
.band--hull .fine { color: rgba(20, 20, 20, 0.55); }
.band--hull .btn { border-bottom-color: var(--gold); background: none; color: var(--ink); }
.band--hull .btn:hover, .band--hull .btn:focus-visible { color: var(--gold); background: none; }
.band--hull .textlink { border-bottom-color: var(--rule-ink); }
.band--hull .textlink:hover { border-bottom-color: var(--ink); }

.band__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 6rem);
  align-items: end;
  margin-bottom: clamp(3rem, 7vw, 6rem);
}
@media (max-width: 820px) { .band__head { grid-template-columns: 1fr; align-items: start; } }

/* ---------------------------------------------------------
   Fleet — editorial rows
   --------------------------------------------------------- */

.fleet { display: flex; flex-direction: column; gap: clamp(4rem, 9vw, 9rem); }

.craft {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
.craft:nth-child(even) .craft__media { order: 2; }
@media (max-width: 900px) {
  .craft { grid-template-columns: 1fr; gap: 2rem; }
  .craft:nth-child(even) .craft__media { order: 0; }
}

.craft__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: var(--deep);
  background-image:
    var(--photo, linear-gradient(transparent, transparent)),
    linear-gradient(160deg, #ECECE8 0%, #E3E3DE 55%, #D6D6D0 100%);
  background-size: cover;
  background-position: center;
}
.craft__media::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20, 20, 20, 0.55), rgba(20, 20, 20, 0) 55%);
}
.craft__media img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.01);
  transition: transform 1.4s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.craft:hover .craft__media img { transform: scale(1.06); }
@media (prefers-reduced-motion: reduce) { .craft:hover .craft__media img { transform: none; } }

.craft__tag {
  position: absolute; z-index: 2;
  left: 1.25rem; top: 1.25rem;
  font-size: 0.5625rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  padding: 0.55rem 1rem;
  border: 1px solid var(--rule);
  background: rgba(20, 20, 20, 0.6);
  backdrop-filter: blur(4px);
}

.craft__name { margin-bottom: 1.25rem; }
.craft__meta {
  font-size: 0.625rem; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--sand); margin: 0 0 2rem;
}
.craft__pitch { max-width: 42ch; margin: 0 0 2.25rem; }

.craft__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem 0.75rem;
  border-top: 1px solid var(--rule);
  padding-top: 1.5rem;
  margin-bottom: 2.25rem;
}
@media (max-width: 480px) { .craft__stats { grid-template-columns: repeat(2, 1fr); } }

.stat__value {
  font-family: var(--display);
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  line-height: 1;
  letter-spacing: 0.02em;
  display: block;
}
.stat__label {
  font-size: 0.5625rem; letter-spacing: 0.24em; text-transform: uppercase;
  color: rgba(20, 20, 20, 0.55); margin-top: 0.5rem; display: block;
}

.craft__rate {
  display: flex; align-items: baseline; gap: 0.75rem;
  margin-bottom: 2rem; flex-wrap: wrap;
}
.craft__rate strong {
  font-family: var(--display); font-weight: 300;
  font-size: clamp(1.5rem, 2.8vw, 2.25rem); letter-spacing: 0.04em;
}

.craft__actions { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; }

/* ---------------------------------------------------------
   THE LEDGER — signature element
   Four hulls, every number, one screen. This is the piece
   the competitor does badly and the reason the page exists.
   --------------------------------------------------------- */

.ledger-wrap { position: relative; }

.ledger-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--lagoon) transparent;
}
.ledger-scroll::-webkit-scrollbar { height: 2px; }
.ledger-scroll::-webkit-scrollbar-thumb { background: var(--lagoon); }

.ledger {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  text-align: left;
}

.ledger th, .ledger td {
  border-bottom: 1px solid var(--rule-ink);
  padding: 1.1rem 1.25rem;
  vertical-align: middle;
}

.ledger thead th { border-bottom-width: 1px; padding-top: 0; vertical-align: bottom; }

.ledger__rowlabel {
  font-size: 0.5625rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: rgba(20, 20, 20, 0.5);
  font-weight: 400;
  width: 16%;
  white-space: nowrap;
}

.ledger__hull { width: 21%; }

.ledger__thumb {
  display: block;
  aspect-ratio: 16 / 10;
  margin-bottom: 1rem;
  overflow: hidden;
  background-color: var(--deep);
  background-image:
    var(--photo, linear-gradient(transparent, transparent)),
    linear-gradient(160deg, #ECECE8 0%, #E3E3DE 60%, #D6D6D0 100%);
  background-size: cover;
  background-position: center;
}
.ledger__thumb img { width: 100%; height: 100%; object-fit: cover; }

.ledger__name {
  font-family: var(--display);
  font-size: clamp(1.05rem, 1.7vw, 1.45rem);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  text-decoration: none;
  display: block;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid transparent;
  transition: border-color 0.4s ease;
}
.ledger__name:hover, .ledger__name:focus-visible { border-bottom-color: var(--ink); }

.ledger td {
  font-size: 0.9375rem;
  font-variant-numeric: tabular-nums;
}
.ledger .is-rate {
  font-family: var(--display);
  font-size: clamp(1.05rem, 1.8vw, 1.4rem);
  letter-spacing: 0.03em;
}
.ledger .is-rate span {
  display: block;
  font-family: var(--body);
  font-size: 0.5625rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(20, 20, 20, 0.5);
  margin-top: 0.4rem;
}

.ledger tbody tr { transition: background 0.35s ease; }
.ledger tbody tr:hover { background: rgba(20, 20, 20, 0.06); }

/* Best-in-fleet marker. Encodes a real fact, not decoration. */
.mark {
  display: inline-block;
  margin-left: 0.5rem;
  font-size: 0.5rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lagoon);
  vertical-align: middle;
  white-space: nowrap;
}

.ledger-hint {
  display: none;
  margin-top: 1.25rem;
  font-size: 0.5625rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(20, 20, 20, 0.45);
}
@media (max-width: 860px) { .ledger-hint { display: block; } }

/* ---------------------------------------------------------
   Cruising grounds
   --------------------------------------------------------- */

.grounds {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  column-gap: clamp(2rem, 4vw, 4.5rem);
  border-top: 1px solid var(--rule);
}
.ground {
  padding: 2.5rem 1.75rem 2.5rem 0;
  border-bottom: 1px solid var(--rule);
}
.ground__name { margin-bottom: 1rem; }
.ground__detail { color: rgba(20, 20, 20, 0.72); margin: 0 0 1.5rem; font-size: 0.9375rem; }
.ground__season { color: var(--shallow); }

/* ---------------------------------------------------------
   Points block  (PROPOSED — see README before publishing)
   --------------------------------------------------------- */

.points {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
}
@media (max-width: 900px) { .points { grid-template-columns: 1fr; } }

.points__figure {
  font-family: var(--display);
  font-size: clamp(3.5rem, 11vw, 8rem);
  line-height: 0.9;
  letter-spacing: 0.02em;
  display: block;
  color: var(--shallow);
}
.points__unit {
  font-family: var(--body);
  font-size: 0.6875rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--sand);
  display: block;
  margin-top: 1.25rem;
}

.flag {
  display: inline-block;
  margin-top: 2rem;
  padding: 0.75rem 1.25rem;
  border: 1px dashed rgba(20, 20, 20, 0.4);
  font-size: 0.5625rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(20, 20, 20, 0.75);
}

/* ---------------------------------------------------------
   Availability
   --------------------------------------------------------- */

.avail {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
}
.avail__cell { background: var(--ink); padding: 1.5rem 1.25rem; }
.avail__month {
  font-size: 0.5625rem; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--sand); margin: 0 0 0.9rem;
}
.avail__state { font-size: 0.875rem; display: flex; align-items: center; gap: 0.6rem; }
.avail__state::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--shallow); flex: none;
}
.avail__cell[data-state="booked"] .avail__state { color: rgba(20, 20, 20, 0.42); }
.avail__cell[data-state="booked"] .avail__state::before { background: rgba(20, 20, 20, 0.28); }
.avail__cell[data-state="hold"] .avail__state::before { background: var(--sand); }

/* ---------------------------------------------------------
   Enquiry
   --------------------------------------------------------- */

.enquire {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(2.5rem, 6vw, 6rem);
}
@media (max-width: 900px) { .enquire { grid-template-columns: 1fr; } }

.field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.75rem 1.5rem;
}
@media (max-width: 620px) { .field-grid { grid-template-columns: 1fr; } }

.field { display: flex; flex-direction: column; gap: 0.6rem; }
.field--wide { grid-column: 1 / -1; }

.field label {
  font-size: 0.5625rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--sand);
}

.field input,
.field select,
.field textarea {
  font-family: var(--body);
  font-size: 0.9375rem;
  font-weight: 300;
  color: var(--hull);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--rule);
  padding: 0.65rem 0;
  border-radius: 0;
  transition: border-color 0.4s ease;
}
.field textarea { resize: vertical; min-height: 5rem; }
.field select option { background: var(--ink); color: var(--hull); }
.field input:focus,
.field select:focus,
.field textarea:focus {
  outline: none;
  border-bottom-color: var(--shallow);
}
.field input::placeholder, .field textarea::placeholder { color: rgba(20, 20, 20, 0.3); }

.form-foot {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 2rem;
  margin-top: 2.75rem;
}

.form-note[data-state="error"] { color: #141414; }
.form-note[data-state="ok"] { color: var(--shallow); }

/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */

.foot { border-top: 1px solid var(--rule); padding-block: clamp(3rem, 7vw, 5rem) 2.5rem; }
.foot__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 2.5rem clamp(1.5rem, 4vw, 4rem);
}
.foot__col h3 {
  font-size: 0.5625rem; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--sand); font-weight: 400; margin: 0 0 1.25rem;
}
.foot__col a, .foot__col p { display: block; text-decoration: none; margin: 0 0 0.65rem; font-size: 0.875rem; }
.foot__col a { opacity: 0.8; transition: opacity 0.4s ease; }
.foot__col a:hover, .foot__col a:focus-visible { opacity: 1; }

.foot__base {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem;
  border-top: 1px solid var(--rule);
  margin-top: clamp(2.5rem, 6vw, 4rem);
  padding-top: 2rem;
}

/* ---------------------------------------------------------
   Reveal
   --------------------------------------------------------- */

[data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 1.1s cubic-bezier(0.2, 0.7, 0.2, 1), transform 1.1s cubic-bezier(0.2, 0.7, 0.2, 1);
  transition-delay: var(--delay, 0ms);
}
[data-reveal].is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* ---------------------------------------------------------
   Yacht page specifics
   --------------------------------------------------------- */

.crumb {
  display: inline-flex; gap: 0.6rem;
  font-size: 0.5625rem; letter-spacing: 0.26em; text-transform: uppercase;
  text-decoration: none; color: rgba(20, 20, 20, 0.65);
  margin-bottom: 2rem;
}
.crumb:hover { color: var(--hull); }

.tour {
  position: relative;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--rule);
  display: grid;
  place-items: center;
  text-align: center;
  padding: 2rem;
  background-image: linear-gradient(160deg, rgba(20, 20, 20, 0.25), rgba(20, 20, 20, 0.8));
}
.tour__label { max-width: 40ch; }
.tour iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.spec-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  column-gap: clamp(2.5rem, 6vw, 6rem);
  border-top: 1px solid var(--rule);
}
.spec {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1.5rem;
  padding: 1.15rem 0;
  border-bottom: 1px solid var(--rule);
}
.spec__label {
  font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--gold); white-space: nowrap;
}
.spec__value {
  font-family: var(--display); font-weight: 500;
  font-size: clamp(1.05rem, 1.5vw, 1.35rem); letter-spacing: 0.01em;
  text-align: right;
}

.notes { list-style: none; margin: 0; padding: 0; max-width: 52ch; }
.notes li {
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--rule);
  font-size: 0.9375rem;
  color: rgba(20, 20, 20, 0.82);
}


/* ---------------------------------------------------------
   Native brochure — gallery, accommodation, rates
   Replaces the old outbound PDF links entirely.
   --------------------------------------------------------- */

.gallery {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
}
.gallery__frame {
  position: relative;
  grid-column: span 4;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: var(--deep);
  background-image:
    var(--photo, linear-gradient(transparent, transparent)),
    linear-gradient(160deg, #ECECE8 0%, #E3E3DE 60%, #D6D6D0 100%);
  background-size: cover;
  background-position: center;
}
.gallery__frame:first-child { grid-column: span 8; grid-row: span 2; aspect-ratio: auto; min-height: 30vw; }
.gallery__frame:nth-child(2),
.gallery__frame:nth-child(3) { grid-column: span 4; aspect-ratio: 16 / 10; }
@media (max-width: 700px) {
  .gallery__frame,
  .gallery__frame:first-child,
  .gallery__frame:nth-child(2),
  .gallery__frame:nth-child(3) { grid-column: span 12; grid-row: auto; aspect-ratio: 3 / 2; min-height: 0; }
}
.gallery__cap {
  position: absolute; left: 1rem; bottom: 1rem;
  font-size: 0.5625rem; letter-spacing: 0.24em; text-transform: uppercase;
  color: rgba(20, 20, 20, 0.85);
  text-shadow: 0 1px 12px rgba(20, 20, 20, 0.7);
}

.rooms { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); border-top: 1px solid var(--rule); }
.room { padding: 1.75rem 1.5rem 1.75rem 0; border-bottom: 1px solid var(--rule); }
.room h4 { font-family: var(--display); font-weight: 300; text-transform: uppercase; letter-spacing: 0.14em; font-size: 1.05rem; margin: 0 0 0.75rem; }
.room p { margin: 0; font-size: 0.9375rem; color: rgba(20, 20, 20, 0.78); }

.toys { display: flex; flex-wrap: wrap; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }
.toys li {
  border: 1px solid var(--rule);
  padding: 0.7rem 1.15rem;
  font-size: 0.6875rem; letter-spacing: 0.2em; text-transform: uppercase;
}

.rates { width: 100%; border-collapse: collapse; text-align: left; }
.rates th, .rates td { padding: 1.1rem 1.25rem 1.1rem 0; border-bottom: 1px solid var(--rule); }
.rates thead th {
  font-size: 0.5625rem; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--sand); font-weight: 400;
}
.rates td { font-size: 0.9375rem; font-variant-numeric: tabular-nums; }
.rates .is-rate { font-family: var(--display); font-size: 1.2rem; letter-spacing: 0.03em; }

/* Visible only while content is outstanding. Delete these blocks
   as each section is filled from the real brochure. */
.pending {
  border: 1px dashed rgba(20, 20, 20, 0.28);
  padding: 2.5rem 2rem;
  text-align: center;
}
.band--hull .pending { border-color: rgba(20, 20, 20, 0.22); }

/* Toy groups */
.toygrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(2rem, 4vw, 3.5rem); }
.toygroup .eyebrow { margin-bottom: 1.5rem; }
.rates .is-muted { color: rgba(20, 20, 20, 0.55); font-size: 0.8125rem; }
.band--hull .notes li { border-bottom-color: var(--rule-ink); color: rgba(20, 20, 20, 0.72); }
.gallery__cap { margin: 0; }

/* Rates on the light band need the dark hairline */
.band--hull .rates th,
.band--hull .rates td { border-bottom-color: var(--rule-ink); }

/* Short galleries fall back to an even grid rather than a hero split */
.gallery--even { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.gallery--even .gallery__frame { grid-column: auto; grid-row: auto; aspect-ratio: 4 / 3; min-height: 0; }

/* ---------------------------------------------------------
   REELS — full-bleed silent video interludes
   These sit between the content bands so the fleet is seen
   in motion as the page is scrolled. Placeholder footage is
   motion-treated brand photography; replace any clip by
   dropping a real MP4 at the same path in /assets/video/.
   --------------------------------------------------------- */

.reel {
  position: relative;
  min-height: 86svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--ink);
}

.reel__media {
  position: absolute; inset: 0;
  background-color: var(--deep);
  background-image:
    var(--photo, linear-gradient(transparent, transparent)),
    linear-gradient(160deg, #ECECE8 0%, #E3E3DE 55%, #D6D6D0 100%);
  background-size: cover;
  background-position: center;
  transform: scale(1.04);
}

.reel__media video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.4s ease;
}
.reel__media video[data-playing="true"] { opacity: 1; }

.reel__scrim {
  position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(to top, rgba(20, 20, 20, 0.86) 0%, rgba(20, 20, 20, 0.18) 46%, rgba(20, 20, 20, 0) 72%),
    linear-gradient(104deg, rgba(20, 20, 20, 0.52) 0%, rgba(20, 20, 20, 0) 52%);
}

.reel__body {
  position: relative; z-index: 3;
  width: 100%;
  padding-block: clamp(3rem, 9vh, 7.5rem);
}
.reel__title { max-width: 18ch; }
.reel__meta { margin-top: 1.9rem; }

@media (max-width: 700px) { .reel { min-height: 70svh; } }

@media (prefers-reduced-motion: reduce) {
  .reel__media { transform: scale(1); animation: none; }
  .reel__media video { display: none; }
}

/* ---------------------------------------------------------
   ENTER — landing gate
   --------------------------------------------------------- */
.enter-lock { overflow: hidden; }

.enter {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  overflow: hidden;
  opacity: 1;
  transition: opacity 1.1s ease, visibility 1.1s ease;
}
.enter.is-gone { opacity: 0; visibility: hidden; pointer-events: none; }

.enter__media {
  position: absolute; inset: 0;
  background-color: var(--ink);
  background-image:
    var(--photo, none),
    linear-gradient(178deg, #ECECE8 0%, #E6E6E1 26%, #DEDED9 52%, #D6D6D0 100%);
  background-size: cover; background-position: center;
  transform: scale(1.08);
  animation: drift 40s ease-in-out infinite alternate;
}
.enter__scrim {
  position: absolute; inset: 0;
  background:
    radial-gradient(120% 90% at 50% 40%, rgba(20, 20, 20,0.35) 0%, rgba(20, 20, 20,0.78) 78%),
    linear-gradient(to bottom, rgba(20, 20, 20,0.55), rgba(20, 20, 20,0.7));
}
.enter__inner {
  position: relative; z-index: 2;
  text-align: center;
  display: flex; flex-direction: column; align-items: center;
  gap: 0;
  padding: 2rem;
}
.enter__logo {
  width: min(46vw, 420px);
  height: auto;
  opacity: 0;
  transform: translateY(14px);
  animation: enterUp 1.4s cubic-bezier(0.2,0.7,0.2,1) 0.25s forwards;
}
.enter__tag {
  margin: 2rem 0 0;
  font-size: 0.6875rem;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--sand);
  opacity: 0;
  animation: enterUp 1.4s cubic-bezier(0.2,0.7,0.2,1) 0.55s forwards;
}
.enter__btn {
  margin-top: 3.25rem;
  background: transparent;
  border: 1px solid var(--rule);
  color: var(--hull);
  font-family: var(--body);
  font-size: 0.6875rem;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  padding: 1.15rem 3.5rem;
  cursor: pointer;
  transition: background 0.5s ease, color 0.5s ease, border-color 0.5s ease, letter-spacing 0.5s ease;
  opacity: 0;
  animation: enterUp 1.4s cubic-bezier(0.2,0.7,0.2,1) 0.85s forwards;
}
.enter__btn:hover, .enter__btn:focus-visible {
  background: var(--hull); color: var(--ink); border-color: var(--hull);
  letter-spacing: 0.46em;
}
.enter__coords {
  margin: 2.5rem 0 0;
  font-size: 0.625rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: rgba(20,20,20,0.45);
  opacity: 0;
  animation: enterUp 1.4s ease 1.15s forwards;
}
@keyframes enterUp { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .enter__media { animation: none; transform: scale(1.02); }
  .enter__logo, .enter__tag, .enter__btn, .enter__coords { animation-duration: 0.01ms; opacity: 1; transform: none; }
}

/* ---------------------------------------------------------
   Co-brand lockup (Charter Yacht x Fiji Airways)
   --------------------------------------------------------- */
.cobrand {
  display: flex; align-items: center; justify-content: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  padding-bottom: clamp(3rem, 6vw, 5rem);
  margin-bottom: clamp(3rem, 6vw, 5rem);
  border-bottom: 1px solid var(--rule);
  flex-wrap: wrap;
}
.cobrand__mark { width: clamp(150px, 22vw, 260px); height: auto; opacity: 0.96; }
.cobrand__x {
  width: 1px; height: 2.4rem; background: var(--rule);
}
.cobrand__partner {
  font-family: var(--body);
  font-weight: 300;
  font-size: clamp(1.1rem, 2.4vw, 1.9rem);
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--hull);
}

/* ---------------------------------------------------------
   THE REACH — bespoke animated route chart
   --------------------------------------------------------- */
.reach { background: var(--deep); }
.chart { margin: 0; }
.chart__svg { width: 100%; height: auto; display: block; overflow: visible; }

.chart__grid line { stroke: rgba(20,20,20,0.06); stroke-width: 1; }

.chart__coast {
  fill: none;
  stroke: rgba(135, 145, 174,0.28);
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-dashoffset: 1;
  stroke-dasharray: 1;
}
.chart__route {
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-dashoffset: 1;
  stroke-dasharray: 1;
}
.chart__route--coast { stroke: var(--shallow); }
.chart__route--cross { stroke: var(--sand); stroke-width: 1.6; }

.chart.is-in .chart__coast { transition: stroke-dashoffset 2s ease 0.1s; stroke-dashoffset: 0; }
.chart.is-in .chart__route--coast { transition: stroke-dashoffset 1.9s ease 0.5s; stroke-dashoffset: 0; }
.chart.is-in .chart__route--cross { transition: stroke-dashoffset 2.1s ease 1.1s; stroke-dashoffset: 0; }

.chart__travel { fill: var(--sand); filter: drop-shadow(0 0 6px rgba(207,196,175,0.7)); opacity: 0; }
.chart.is-in .chart__travel { opacity: 1; transition: opacity 0.6s ease 2.6s; }

.chart__ring { fill: none; stroke: var(--shallow); opacity: 0.45; }
.chart__ring--lg { stroke: var(--sand); opacity: 0.6; }
.chart__dot { fill: var(--hull); }
.chart__node--fiji .chart__dot { fill: var(--sand); }

.chart__lbl {
  fill: var(--hull);
  font-family: var(--body);
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.chart__lbl--fiji { font-size: 15px; letter-spacing: 0.24em; }
.chart__coord {
  fill: rgba(20,20,20,0.5);
  font-family: var(--body);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.chart__coord--fly { fill: var(--sand); letter-spacing: 0.22em; }

.chart__cap { margin-top: 1.75rem; text-align: right; }

@media (max-width: 640px) {
  .chart__lbl { font-size: 16px; }
  .chart__coord { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .chart__coast, .chart__route { stroke-dashoffset: 0; }
  .chart__travel { display: none; }
}

/* ---------------------------------------------------------
   Team page
   --------------------------------------------------------- */
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: clamp(3rem, 5vw, 5rem) clamp(2.5rem, 4vw, 4.5rem);
}
.member__photo {
  width: min(300px, 82%);
  aspect-ratio: 1;
  margin: 0 auto 2.25rem;
  border-radius: 50%;
  overflow: hidden;
  background-color: var(--deep);
  background-image:
    var(--photo, none),
    linear-gradient(160deg, #ECECE8 0%, #E3E3DE 60%, #D6D6D0 100%);
  background-size: cover;
  background-position: center top;
  border: 1px solid var(--rule);
}
.member__name { margin: 0 0 0.6rem; }
.member__role {
  font-size: 0.6rem; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--gold); margin: 0 0 1.5rem;
}
.member__bio {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.95rem; line-height: 1.7; max-width: 42ch; margin: 0;
}

/* ---------------------------------------------------------
   Co-brand logo lockup (Charter Yacht wordmark × Fiji Airways)
   --------------------------------------------------------- */
.cobrand__mark--word { width: clamp(190px, 24vw, 300px); height: auto; opacity: 0.95; }
.cobrand__partner-logo { height: clamp(34px, 4.4vw, 56px); width: auto; opacity: 0.95; }

/* ---------------------------------------------------------
   Wave film — full-bleed homepage video band
   --------------------------------------------------------- */
.wavefilm {
  position: relative;
  min-height: 68svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--ink);
}
.wavefilm__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.wavefilm__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20,20,20,0.88) 0%, rgba(20,20,20,0.3) 52%, rgba(20,20,20,0.4) 100%);
}
.wavefilm__body { position: relative; z-index: 2; width: 100%; padding-block: clamp(3rem, 8vh, 6.5rem); }
.wavefilm__line {
  font-size: clamp(1.9rem, 4vw, 3.4rem);
  line-height: 1.08;
  max-width: 22ch;
  margin-top: 1.5rem;
}
@media (max-width: 700px) { .wavefilm { min-height: 56svh; } }
@media (prefers-reduced-motion: reduce) { .wavefilm__video { display: none; } }

/* Charter film reel on yacht pages (3D tour placeholder stays separate) */
.filmreel { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--ink); border: 1px solid var(--rule); }
.filmreel__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* =========================================================
   ROUND 3 — "more built", less template
   ========================================================= */

/* ---- Intro hero: full-bleed wave video, centred logo ---- */
.hero--intro { align-items: center; text-align: center; }
.hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.hero--intro .hero__scrim {
  background:
    radial-gradient(120% 90% at 50% 45%, rgba(20,20,20,0.34) 0%, rgba(20,20,20,0.72) 82%),
    linear-gradient(to bottom, rgba(20,20,20,0.5), rgba(20,20,20,0.66));
}
.hero__intro { position: relative; z-index: 2; width: 100%; display: flex; flex-direction: column; align-items: center; }
.hero__logo-lg { width: min(62vw, 640px); height: auto; }
.hero__tagline {
  margin: 2.4rem 0 0; font-size: 0.72rem; letter-spacing: 0.44em; text-transform: uppercase; color: var(--sand);
}
.hero__cue {
  position: absolute; left: 50%; bottom: 2.2rem; transform: translateX(-50%); z-index: 2;
  font-size: 0.6rem; letter-spacing: 0.34em; text-transform: uppercase; color: rgba(255,255,255,0.6);
  display: flex; flex-direction: column; align-items: center; gap: 0.7rem;
}
.hero__cue::after { content: ""; width: 1px; height: 46px; background: linear-gradient(var(--gold), transparent); }

/* ---- Brand intro band ---- */
.intro { text-align: center; }
.intro__inner { max-width: 60ch; margin-inline: auto; }
.intro__lead {
  font-family: var(--display); font-weight: 500; text-transform: none;
  font-size: clamp(1.5rem, 3vw, 2.5rem); line-height: 1.3; letter-spacing: 0.01em; margin: 1.75rem 0 0;
}
.intro__body { margin: 2rem auto 0; max-width: 54ch; color: rgba(255,255,255,0.8); }
.band--hull .intro__body { color: rgba(20,20,20,0.75); }

/* ---- Fleet cards: lift on hover (Ahoy Club cue) ---- */
.craft { transition: transform 0.5s cubic-bezier(0.2,0.7,0.2,1); }
.craft:hover { transform: translateY(-8px); }
@media (prefers-reduced-motion: reduce) { .craft:hover { transform: none; } }

/* ---- Destinations: location photo cards ---- */
.destinations {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(1.25rem, 2.5vw, 2rem);
}
.dest {
  position: relative; aspect-ratio: 3 / 4; overflow: hidden; display: flex; align-items: flex-end;
  background: var(--deep); text-decoration: none; color: var(--hull);
}
.dest__photo {
  position: absolute; inset: 0; background-size: cover; background-position: center;
  transform: scale(1.02); transition: transform 1.2s cubic-bezier(0.2,0.7,0.2,1);
}
.dest:hover .dest__photo { transform: scale(1.08); }
.dest::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,20,20,0.85) 0%, rgba(20,20,20,0.1) 55%, rgba(20,20,20,0.25) 100%); }
.dest__body { position: relative; z-index: 2; padding: 1.75rem 1.5rem; }
.dest__name { font-family: var(--display); font-size: clamp(1.3rem,2vw,1.7rem); letter-spacing: 0.02em; margin: 0 0 0.4rem; }
.dest__season { font-size: 0.56rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold); }
.dest__detail { font-size: 0.82rem; color: rgba(255,255,255,0.78); margin: 0.6rem 0 0; line-height: 1.55; }

/* ---- Our Services (refined) ---- */
.services { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); border-top: 1px solid var(--rule); }
.service { padding: 2.25rem 1.75rem 2.25rem 0; border-bottom: 1px solid var(--rule); }
.service__no { font-family: var(--display); font-size: 1rem; color: var(--gold); display: block; margin-bottom: 1.1rem; }
.service__name { font-family: var(--display); font-weight: 500; font-size: clamp(1.15rem,1.7vw,1.5rem); margin: 0 0 0.8rem; }
.service__detail { font-size: 0.9rem; color: rgba(255,255,255,0.72); margin: 0; line-height: 1.6; max-width: 34ch; }

/* ---- Social feed strip ---- */
.social__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 2px; }
.social__tile { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--deep); display: block; }
.social__tile > span { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 1s ease; }
.social__tile:hover > span { transform: scale(1.07); }
.social__tile::after { content: ""; position: absolute; inset: 0; background: rgba(20,20,20,0.12); transition: background 0.4s ease; }
.social__tile:hover::after { background: rgba(20,20,20,0); }

/* ---- Grainy gradient footer (impulsive cue) ---- */
.foot { position: relative; overflow: hidden; background: linear-gradient(to bottom, var(--ink) 0%, #D6D6D0 100%); }
.foot::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.5; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.foot > .shell { position: relative; z-index: 1; }

/* ---- Bigger co-brand for the Fiji field ---- */
.cobrand { gap: clamp(2rem, 6vw, 5rem); padding-bottom: clamp(4rem, 8vw, 7rem); margin-bottom: clamp(4rem, 8vw, 7rem); }
.cobrand__mark--word { width: clamp(280px, 34vw, 460px); }
.cobrand__partner-logo { height: clamp(52px, 7vw, 92px); }
.cobrand__x { height: clamp(3rem, 6vw, 5rem); }

/* ---- Culinary section ---- */
.menu-list { border-top: 1px solid var(--rule); max-width: 62ch; }
.menu-course { display: grid; grid-template-columns: minmax(120px, 0.4fr) 1fr; gap: 1.5rem clamp(1.5rem,4vw,3rem); padding: 1.4rem 0; border-bottom: 1px solid var(--rule); }
@media (max-width: 560px){ .menu-course { grid-template-columns: 1fr; gap: 0.5rem; } }
.menu-course__name { font-family: var(--display); font-size: 1.15rem; color: var(--gold); }
.menu-course__detail { color: rgba(255,255,255,0.82); font-size: 0.94rem; line-height: 1.65; margin: 0; }
.band--hull .menu-course__detail { color: rgba(20,20,20,0.78); }

/* =========================================================
   ROUND 4 — overrides
   ========================================================= */

/* #3 + #11 — moving wave backdrop behind the whole page, richer navy */
html { background: var(--ink); }
body { background: transparent; }
.pagebg { position: fixed; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.pagebg-tint {
  position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(160deg, rgba(18,25,46,0.90) 0%, rgba(14,20,38,0.94) 100%);
}
@media (prefers-reduced-motion: reduce){ .pagebg { display:none; } .pagebg-tint{ background: var(--ink); } }
.band--deep { background: linear-gradient(160deg, rgba(30,41,73,0.55) 0%, rgba(20,20,20,0.62) 100%); }
.reach { background: linear-gradient(160deg, rgba(26,35,64,0.55), rgba(18,25,46,0.6)); }
.band--hull { background: var(--hull); }   /* stays opaque */

/* #5 — kill the glitchy Ken-Burns motion; reels show a crisp still */
.reel__media video, .filmreel .reel__media video { display: none !important; }
.reel__media { transform: none; }

/* #13 + fleet — rounded, cleaner imagery */
.craft__media { border-radius: 10px; }
.ledger__thumb { aspect-ratio: 16 / 11; border-radius: 8px; }
.gallery__frame, .filmreel { border-radius: 10px; }

/* #7 — destination cards: rounded, aligned, name + season only */
.dest { border-radius: 12px; }
.dest__photo { border-radius: 12px; }
.dest__detail { display: none; }
.dest__body { padding: 1.9rem 1.6rem; }
.dest__name { margin: 0 0 0.55rem; }

/* #12 — social tiles rounded */
.social__grid { gap: 10px; }
.social__tile { border-radius: 10px; }
.social__tile > span { border-radius: 10px; }

/* #1 — hero: headline instead of the centre logo */
.hero__head {
  font-family: var(--display); font-weight: 500; text-transform: none;
  font-size: clamp(2.2rem, 5.5vw, 4.6rem); line-height: 1.08; letter-spacing: 0.01em;
  max-width: 18ch; margin: 0 auto; color: var(--hull);
}

/* #6 — Velocity logo above the figure */
.velocity { display: block; height: clamp(38px, 4.5vw, 60px); width: auto; margin: 0 0 1.6rem; }
.points > div:last-child { }

/* #16 — culinary imagery, rounded */
.menu-figure { margin: 0 0 clamp(2rem,4vw,3rem); }
.menu-figure img { width: 100%; border-radius: 10px; display: block; aspect-ratio: 16/9; object-fit: cover; }

/* #7 fix — stack destination name above season */
.dest__name { display: block; }
.dest__season { display: block; margin-top: 0.5rem; }

/* ============================================================
   ROUND 5 — no gate, plain hero video, fleet dropdown nav
   ============================================================ */

/* Hero: light tint over the first video — colour still reads through,
   just enough to seat the white headline. */
.hero--intro .hero__scrim--light {
  background:
    radial-gradient(120% 90% at 50% 46%, rgba(20,20,20,0.10) 0%, rgba(20,20,20,0.34) 88%),
    linear-gradient(to bottom, rgba(20,20,20,0.20), rgba(20,20,20,0.30));
}
.hero--intro .hero__head,
.hero--intro .hero__tagline {
  text-shadow: 0 2px 26px rgba(10, 15, 30, 0.5), 0 1px 4px rgba(10, 15, 30, 0.4);
}

/* Headline: smaller so it lands on three lines max, wider measure */
.hero--intro .hero__head {
  font-size: clamp(1.7rem, 3.7vw, 3.15rem);
  line-height: 1.16;
  max-width: 30ch;
}

/* Break before the fleet: solid deep-navy block behind the owner-led
   spiel so it separates cleanly from the wave video and 'Four hulls.' */
.band.intro {
  background: var(--accent-mist);
  position: relative;
  z-index: 1;
}

/* Fleet dropdown in the top-bar nav */
.nav__group { position: relative; display: flex; align-items: center; }
.nav__top::after {
  content: "";
  display: inline-block;
  width: 5px; height: 5px;
  margin-left: 0.55em;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  opacity: 0.7;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.nav__group:hover .nav__top::after,
.nav__group:focus-within .nav__top::after { transform: translateY(0) rotate(225deg); opacity: 1; }

.nav__sub {
  position: absolute;
  top: 100%; left: 50%;
  transform: translate(-50%, 8px);
  min-width: 200px;
  padding: 0.9rem 0;
  background: rgba(20, 20, 20, 0.96);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(20, 20, 20, 0.28);
  border-radius: 10px;
  box-shadow: 0 24px 60px rgba(8, 12, 26, 0.5);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.32s ease, transform 0.32s ease, visibility 0s linear 0.32s;
  z-index: 80;
}
.nav__group:hover .nav__sub,
.nav__group:focus-within .nav__sub {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 14px);
  transition: opacity 0.32s ease, transform 0.32s ease, visibility 0s;
}
.nav__sub a {
  display: block;
  padding: 0.62rem 1.5rem;
  font-size: 0.62rem;
  letter-spacing: 0.26em;
  opacity: 0.82;
  white-space: nowrap;
}
.nav__sub a:hover, .nav__sub a:focus-visible { opacity: 1; color: var(--gold); }

@media (max-width: 900px) {
  .nav__group { flex-direction: column; gap: 1.4rem; }
  .nav__sub {
    position: static;
    transform: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    background: none;
    border: 0;
    box-shadow: none;
    padding: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    margin-top: 1.2rem;
  }
  .nav__group:hover .nav__sub,
  .nav__group:focus-within .nav__sub { transform: none; }
  .nav__sub a { padding: 0; font-size: 0.72rem; opacity: 0.7; }
  .nav__top::after { display: none; }
}

/* ============================================================
   ROUND 6 — mobile nav overlay + bigger, centred cruising map
   ============================================================ */

/* The stuck masthead uses backdrop-filter, which makes it the
   containing block for the fixed nav — collapsing inset:0 to the
   header height and leaking links over the page. Size the overlay
   in viewport units so it is independent of that, with a solid fill. */
@media (max-width: 900px) {
  /* Drop the blur on the stuck header on mobile: backdrop-filter makes
     the masthead the containing block for the fixed nav and breaks its
     full-screen positioning. Near-solid fill keeps the look. */
  .masthead[data-stuck="true"] {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(20, 20, 20, 0.97);
  }
  .masthead .nav {
    position: fixed;
    inset: 0 auto auto 0;        /* top/left 0, right/bottom auto — set as shorthand so nothing resets it */
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    z-index: 40;                 /* above content, below toggle (70) */
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2.4rem;
    background: var(--hull);          /* solid — no bleed-through */
    transform: translateY(-100vh);
    transition: transform 0.55s cubic-bezier(0.7, 0, 0.2, 1);
    overflow-y: auto;
  }
  .masthead .nav[data-open="true"] { transform: translateY(0); }
  .nav-toggle { z-index: 71; }
}

/* Cruising map: fill more of the frame and sit centred on mobile.
   (The tighter viewBox is applied by JS for phones only.) */
@media (max-width: 720px) {
  .reach .chart { margin-inline: calc(var(--gutter) * -0.5); }
  .chart__lbl { font-size: 15px; }
  .chart__coord { font-size: 11px; }
}

/* ---- Background-music toggle -------------------------------- */
.sound-toggle {
  position: fixed;
  right: clamp(1rem, 2.5vw, 1.75rem);
  bottom: clamp(1rem, 2.5vw, 1.75rem);
  z-index: 90;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.6rem 0.95rem;
  border: 1px solid rgba(20, 20, 20, 0.34);
  border-radius: 999px;
  background: rgba(16, 22, 43, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: var(--hull);
  cursor: pointer;
  font-family: var(--body, inherit);
  font-size: 0.58rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  opacity: 0.72;
  transition: opacity 0.35s ease, border-color 0.35s ease, color 0.35s ease;
}
.sound-toggle:hover, .sound-toggle:focus-visible { opacity: 1; border-color: var(--gold); color: var(--gold); }
.sound-toggle__ico { display: inline-flex; color: var(--gold); }
.sound-toggle__label { line-height: 1; padding-top: 1px; }
/* waves hidden + slash shown when off */
.sound-toggle[data-on="false"] .sound-toggle__wave { opacity: 0; }
.sound-toggle[data-on="true"] .sound-toggle__slash { opacity: 0; }
.sound-toggle__wave, .sound-toggle__slash { transition: opacity 0.3s ease; }

@media (max-width: 720px) {
  .sound-toggle { padding: 0.55rem 0.7rem; }
  .sound-toggle__label { display: none; }   /* icon-only on phones */
}

/* ============================================================
   MONOCHROME LIGHT THEME — final overrides (white / grey / black)
   ============================================================ */
html { background: var(--hull); }
body { background: var(--hull); color: var(--ink); }

/* remove navy background video + tint */
.pagebg, .pagebg-tint { display: none !important; }

/* (header colours now set in ROUND 8 — dark translucent bar) */
/* fleet dropdown -> white card, dark links */
.nav__sub { background: var(--hull); border: 1px solid var(--rule); box-shadow: 0 24px 60px rgba(20,20,20,0.14); }
.nav__sub a { color: var(--ink); }
.nav__sub a:hover, .nav__sub a:focus-visible { color: #000; opacity: 1; }
.nav__top::after { opacity: 0.6; }

/* buttons */
.btn { color: var(--ink); }
.btn:hover, .btn:focus-visible { color: #000; }
.btn--solid { background: var(--ink); color: var(--hull); }
.btn--solid:hover, .btn--solid:focus-visible { background: #000; color: var(--hull); }
.textlink:hover, .textlink:focus-visible { border-color: var(--ink); }

/* hero text stays white over the video */
.hero--intro .hero__head, .hero--intro .hero__tagline, .hero__cue { color: var(--hull); }

/* cruising map on light grey */
.chart__dot { fill: var(--ink); }
.chart__lbl { fill: var(--ink); }
.chart__coord { fill: var(--shallow); }
.chart__ring { stroke: var(--ink); opacity: 0.5; }
.chart__node--fiji .chart__dot, .chart__travel, .chart__ring--lg,
.chart__coord--fly { fill: var(--ink); stroke: var(--ink); }
.chart__grid line { stroke: rgba(20,20,20,0.08); }

/* footer -> solid black block, white text */
.foot { background: #141414; color: var(--hull); border-top: 0; }
.foot__col h3 { color: var(--hull); }
.foot__col a, .foot__col p, .foot .fine { color: var(--hull); }
.foot__col a { opacity: 0.7; }

/* sound toggle -> black pill, white icon */
.sound-toggle { background: rgba(20,20,20,0.86); border-color: rgba(255,255,255,0.26); color: var(--hull); }
.sound-toggle__ico { color: var(--hull); }

/* guards: white-on-white text inside now-light sections */
.reach, .band--deep, .intro { color: var(--ink); }
.foot a, .foot p, .foot h3 { color: var(--hull); }

/* Yacht-page photo hero: white text over the image (like the home hero) */
.hero:not(.hero--intro) .crumb,
.hero:not(.hero--intro) .eyebrow,
.hero:not(.hero--intro) .display--hero,
.hero:not(.hero--intro) .lede,
.hero:not(.hero--intro) .fine,
.hero:not(.hero--intro) .btn { color: var(--hull); }
.hero:not(.hero--intro) .btn { border-bottom-color: rgba(255,255,255,0.55); }
.hero:not(.hero--intro) .btn:hover,
.hero:not(.hero--intro) .crumb:hover { color: var(--hull); border-bottom-color:var(--hull); }
/* strengthen the hero scrim a touch for bright photos */
.hero:not(.hero--intro) .hero__scrim {
  background:
    linear-gradient(to top, rgba(20,20,20,0.85) 0%, rgba(20,20,20,0.28) 48%, rgba(20,20,20,0.05) 78%),
    linear-gradient(104deg, rgba(20,20,20,0.6) 0%, rgba(20,20,20,0) 56%);
}

/* contrast fixes — text that must be dark on the light sections */
.intro__body { color: rgba(20,20,20,0.72) !important; }
.service__detail { color: rgba(20,20,20,0.70) !important; }
.menu-course__detail { color: rgba(20,20,20,0.76) !important; }
.band .social__cap, .band--deep .social__cap { color: var(--ink); }
/* any leftover white-on-light guards */
.band .lede, .band--deep .lede, .intro .lede { color: rgba(20,20,20,0.78); }

/* band--deep is a LIGHT alternate band now (was translucent navy) */
.band--deep { background: var(--accent-mist) !important; }
.reach { background: #F6F6F4 !important; }

/* partner / brand logos -> clean black on the light theme */
.cobrand__mark--word, .cobrand__partner-logo, .velocity { filter: brightness(0); }
.cobrand__partner-logo, .velocity { opacity: 0.9; }

/* ===== Vessel co-brand strip (yacht pages): vessel logo + powered by Charter Yacht ===== */
.vessel-brand { padding: clamp(2.5rem, 6vh, 4.5rem) 0; border-bottom: 1px solid var(--rule); }
.vessel-brand__inner { display: flex; flex-direction: column; align-items: center; gap: 1.4rem; text-align: center; }
.vessel-brand__logo { display: block; }
.cobrand-logo--wide { height: clamp(26px, 3.4vw, 40px); width: auto; }
.cobrand-logo--tall { height: clamp(56px, 7vw, 88px); width: auto; }
.vessel-brand__powered { display: flex; align-items: baseline; gap: .65rem; margin: 0; }
.vessel-brand__powered-label { font-family: var(--body); font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--steel); }
.vessel-brand__cy { height: 15px; width: auto; transform: translateY(2px); }

/* =========================================================
   ROUND 6 — legibility fixes + landing header + editorial
   (2026-08-02) — supersedes conflicting earlier rules
   ========================================================= */

/* ---- Accent serif for editorial dual-typeface headings ---- */
:root { --serif: "Playfair Display", Georgia, serif; }

/* ---- A. Team bios were white-on-white; centre the cards ---- */
.member { text-align: center; }
.member__photo { margin-left: auto; margin-right: auto; }
.member__name { color: var(--ink); }
.member__bio {
  color: rgba(20,20,20,0.74) !important;
  margin-left: auto; margin-right: auto;
}
/* Anthea's face sat low/left in the circle — recentre on her */
.member__photo[style*="anthea"] { background-position: 50% 26% !important; }
.member__photo[style*="jaydene"] { background-position: 50% 22% !important; }
.member__photo[style*="ally"]    { background-position: 50% 20% !important; }

/* ---- B. Availability grid was black-on-black ---- */
.avail { background: var(--rule); border: 1px solid var(--rule); border-radius: 10px; overflow: hidden; }
.avail__cell { background: #ffffff !important; padding: 1.5rem 1.25rem; }
.avail__cell[data-state="booked"] { background: var(--accent-mist) !important; }
.avail__month { color: rgba(20,20,20,0.5) !important; }
.avail__state { color: #141414 !important; font-weight: 500; }
.avail__state::before { background: #141414 !important; }
.avail__cell[data-state="booked"] .avail__state { color: rgba(20,20,20,0.4) !important; }
.avail__cell[data-state="booked"] .avail__state::before { background: rgba(20,20,20,0.3) !important; }
.avail__cell[data-state="hold"] .avail__state::before { background: rgba(20,20,20,0.55) !important; }

/* ---- C. Social handle overflowed its grid column ---- */
#social .display--section {
  font-size: clamp(1.5rem, 3vw, 2.7rem);
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.1;
}
.band__head > div { min-width: 0; }

/* ---- D. Landing masthead: transparent + centred logo, then
         white panel with left logo on scroll (hero pages only) ---- */
/* (landing-header rules superseded by ROUND 8) */

/* ---- E. Yacht page: own logo over the hero imagery ---- */
.hero__brand {
  position: relative; z-index: 3;
  display: flex; flex-direction: column; align-items: center; gap: 1.1rem;
  text-align: center;
  margin: 0 auto clamp(1.5rem, 4vh, 3rem);
}
.hero__yachtlogo { width: min(74vw, 460px); height: auto; display: block;
  filter: drop-shadow(0 6px 30px rgba(0,0,0,0.45)); }
.hero__brand--tall .hero__yachtlogo { width: min(46vw, 240px); }
.hero__powered {
  display: flex; align-items: center; gap: 0.7rem;
  font-family: var(--body); font-size: 0.62rem; letter-spacing: 0.28em;
  text-transform: uppercase; color: rgba(255,255,255,0.82);
}
.hero__powered img { height: 14px; width: auto; filter: brightness(0) invert(1); }
/* stronger hero scrim so titles read on bright hulls */
.hero:not(.hero--intro) .hero__scrim {
  background: linear-gradient(to bottom, rgba(10,14,24,0.45) 0%, rgba(10,14,24,0.25) 38%, rgba(10,14,24,0.72) 100%) !important;
}
.hero:not(.hero--intro) .hero__body { text-align: center; }
.hero:not(.hero--intro) .hero__body .crumb { justify-content: center; }

/* ---- E2. Bigger, bolder "powered by Charter Yacht" strip ---- */
.vessel-brand { padding: clamp(3.5rem, 8vh, 6.5rem) 0; }
.vessel-brand__inner { gap: 2rem; }
.cobrand-logo--wide { height: clamp(40px, 5.2vw, 72px); }
.cobrand-logo--tall { height: clamp(84px, 10vw, 132px); }
.vessel-brand__powered { gap: 1rem; align-items: center; }
.vessel-brand__powered-label { font-size: 0.82rem; letter-spacing: 0.26em; color: var(--ink); }
.vessel-brand__cy { height: 26px; transform: translateY(1px); }

/* ---- F. Homepage: yacht own-logo on each fleet card ---- */
.craft__logo { height: clamp(26px, 3vw, 40px); width: auto; display: block; margin: 0 0 1.1rem; }
.craft__logo--tall { height: clamp(46px, 5vw, 64px); }

/* ---- F2. Flagship feature block (Impulsive as hero yacht) ---- */
.flagship {
  position: relative; min-height: 90svh; display: flex; align-items: flex-end;
  overflow: hidden; background: var(--ink);
}
.flagship__media {
  position: absolute; inset: 0; background-size: cover; background-position: center;
  transform: scale(1.03);
}
.flagship__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(8,12,20,0.86) 0%, rgba(8,12,20,0.15) 55%, rgba(8,12,20,0.5) 100%);
}
.flagship__body { position: relative; z-index: 2; width: 100%; padding-block: clamp(3rem, 8vh, 6rem); color: var(--hull); }
.flagship__kicker {
  font-family: var(--body); font-size: 0.66rem; letter-spacing: 0.4em; text-transform: uppercase;
  color: rgba(255,255,255,0.72); margin: 0 0 1.6rem;
}
.flagship__logo { width: min(70vw, 420px); height: auto; margin: 0 0 1.8rem;
  filter: drop-shadow(0 6px 30px rgba(0,0,0,0.45)); }
.flagship__pitch { font-family: var(--display); font-weight: 500; font-size: clamp(1.5rem, 3vw, 2.6rem);
  line-height: 1.14; max-width: 20ch; margin: 0 0 2rem; color: var(--hull); }
.flagship__stats { display: flex; flex-wrap: wrap; gap: 2.4rem 3.2rem; margin: 0 0 2.4rem; }
.flagship__stat .stat__value { font-family: var(--display); font-size: clamp(1.6rem,2.4vw,2.3rem); color: var(--hull); display: block; }
.flagship__stat .stat__label { font-size: 0.58rem; letter-spacing: 0.26em; text-transform: uppercase; color: rgba(255,255,255,0.66); }
.flagship .btn { color: var(--hull); border-bottom-color: rgba(255,255,255,0.6); }
.flagship .btn:hover { color: var(--hull); border-bottom-color: var(--hull); }

/* ---- G. Editorial band (Edmiston-inspired masthead line) ---- */
.editorial { text-align: center; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.editorial__rule {
  font-family: var(--body); font-size: 0.6rem; letter-spacing: 0.42em; text-transform: uppercase;
  color: rgba(20,20,20,0.5); margin: 0 0 2.2rem;
  display: flex; align-items: center; justify-content: center; gap: 1.4rem;
}
.editorial__rule::before, .editorial__rule::after { content: ""; height: 1px; width: clamp(28px, 8vw, 96px); background: var(--rule-ink); }
.editorial__head {
  font-family: var(--display); font-weight: 600; text-transform: uppercase;
  font-size: clamp(2rem, 5.5vw, 4.6rem); letter-spacing: 0.06em; line-height: 1.04;
  color: var(--ink); margin: 0 auto; max-width: 16ch;
}
.editorial__head em {
  font-family: var(--serif); font-style: italic; font-weight: 500;
  text-transform: none; letter-spacing: 0; font-size: 0.86em;
}
.editorial__standfirst {
  font-size: clamp(1rem, 0.95rem + 0.35vw, 1.2rem); line-height: 1.7;
  color: rgba(20,20,20,0.72); max-width: 60ch; margin: 2rem auto 2.2rem;
}
.editorial__by { font-size: 0.62rem; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(20,20,20,0.5); }

/* Dual-typeface accent usable on any display heading */
.display em, .flagship__pitch em {
  font-family: var(--serif); font-style: italic; font-weight: 500; letter-spacing: 0;
}
.hero__brand-h1 { margin: 0; line-height: 0; }
.hero__brand { padding-top: clamp(1rem, 4vh, 3rem); }

/* (D-fix superseded by ROUND 8) */

/* =========================================================
   ROUND 7 — landing hamburger header, editorial intro, reels
   (2026-08-02) — supersedes conflicting earlier rules
   ========================================================= */

/* ---- Editorial intro: title + owner-led copy below ---- */
.editorial__copy { max-width: 62ch; margin: 2.2rem auto 0; }
.editorial__copy p { font-size: clamp(1rem, .95rem + .35vw, 1.2rem); line-height: 1.72; color: rgba(20,20,20,.72); margin: 0 0 1.15rem; }
.editorial__lead { font-size: clamp(1.16rem, 1.05rem + .5vw, 1.5rem) !important; color: var(--ink) !important; font-weight: 500; }
.editorial__head em { text-transform: none; }   /* keep "Business" / "Yachting" as typed */

/* ---- Hamburger icon for the nav toggle ---- */
.nav-toggle {
  width: 30px; height: 20px; padding: 0; font-size: 0; line-height: 0;
  position: relative; background: none; border: 0; color: inherit;
}
.nav-toggle::before, .nav-toggle::after {
  content: ""; position: absolute; left: 0; right: 0; height: 2px;
  background: currentColor; transition: transform .3s ease, top .3s ease, box-shadow .2s;
}
.nav-toggle::before { top: 3px; box-shadow: 0 7px 0 currentColor; }
.nav-toggle::after  { top: 17px; }
.nav-toggle[aria-expanded="true"]::before { top: 9px; box-shadow: none; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"]::after  { top: 9px; transform: rotate(-45deg); }

/* (landing drawer rules superseded by ROUND 8) */

/* ---- Reels: white, legible text over imagery + stronger scrim ---- */
.reel__scrim {
  background:
    linear-gradient(to top, rgba(8,12,20,.90) 0%, rgba(8,12,20,.36) 46%, rgba(8,12,20,.14) 100%),
    linear-gradient(104deg, rgba(8,12,20,.60) 0%, rgba(8,12,20,0) 56%) !important;
}
.reel__title { color: var(--hull) !important; text-shadow: 0 2px 24px rgba(0,0,0,.5); }
.reel .eyebrow { color: rgba(255,255,255,.85) !important; }
.reel__meta, .reel .fine { color: rgba(255,255,255,.8) !important; }

/* ---- Bigger fleet-card logos (Impulsive / Lumir / Sea Raes) ---- */
.craft__logo { height: clamp(34px, 4.2vw, 54px); }
.craft__logo--tall { height: clamp(62px, 7.5vw, 96px); }

/* =========================================================
   ROUND 8 — Anthea directives (2026-08-05)
   · header bar: half-transparent black, always, all pages
   · Yacht Management + Yacht Charter left, Enquire right
   · drawer nav with Impulsive motion panel
   · accent colour on hovers / highlights
   · global charter fleet cards · journal strip · guides
   ========================================================= */

:root { --accent: #C97B2D; }  /* burnt amber — the splash of colour */

/* ---- Header bar: half-transparent black on every page/state ---- */
.masthead,
.masthead[data-stuck="true"],
body:has(.hero) .masthead:not([data-stuck="true"]),
body:has(.hero) .masthead[data-stuck="true"] {
  background: rgba(10, 12, 16, 0.5);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  justify-content: space-between;
}

/* centred white logo, every page */
.wordmark__logo,
body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo {
  filter: brightness(0) invert(1);
  height: clamp(30px, 3.4vw, 46px);
}
.masthead .wordmark,
body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
}
.masthead[data-stuck="true"] .wordmark__logo { height: clamp(24px, 2.8vw, 36px); }

/* ---- Left group: hamburger + the two service links ---- */
.masthead__left, .masthead__right {
  display: flex; align-items: center; gap: clamp(1rem, 2.2vw, 2rem);
  position: relative; z-index: 72;
}
.masthead__primary { display: flex; align-items: center; gap: clamp(1rem, 2vw, 1.9rem); }
.mast-link {
  font-family: var(--body); font-size: 0.64rem; letter-spacing: 0.28em; text-transform: uppercase;
  color: rgba(255,255,255,0.92); text-decoration: none;
  padding: 0.55rem 0; border-bottom: 1px solid transparent;
  transition: color .3s ease, border-color .3s ease;
}
.mast-link:hover, .mast-link:focus-visible { color: var(--accent); border-bottom-color: var(--accent); }

/* hamburger: white, inline in the left group */
.nav-toggle,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav-toggle {
  display: block; position: relative; left: auto; top: auto; transform: none;
  color: var(--hull); filter: none; z-index: 73; opacity: 1;
}
.nav-toggle:hover, .nav-toggle:focus-visible { color: var(--accent); }
body:has(.nav[data-open="true"]) .nav-toggle { color: var(--hull); filter: none; }

/* ---- Right: prominent Enquire, frozen header included ---- */
.mast-cta {
  font-family: var(--body); font-size: 0.66rem; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--ink); background: var(--hull); text-decoration: none; white-space: nowrap;
  padding: 0.8rem 1.6rem; border: 1px solid var(--hull);
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.mast-cta:hover, .mast-cta:focus-visible { background: var(--accent); border-color: var(--accent); color: var(--hull); }

/* ---- Drawer nav: dark panel + Impulsive motion, all widths ---- */
.masthead .nav,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav {
  position: fixed; inset: 0 auto auto 0; width: 100vw; height: 100dvh; z-index: 71;
  display: flex; flex-direction: row; align-items: stretch; justify-content: center; gap: 0;
  background: rgba(8, 10, 14, 0.55);
  -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px);
  transform: translateY(-102%);
  transition: transform .55s cubic-bezier(.7, 0, .2, 1);
}
.masthead .nav[data-open="true"],
body:has(.hero) .masthead:not([data-stuck="true"]) .nav[data-open="true"] { transform: translateY(0); }

.nav__panel {
  display: grid; grid-template-columns: 1fr minmax(280px, 34vw); align-items: center;
  gap: clamp(2rem, 6vw, 6rem);
  width: min(100%, var(--shell)); margin: 0 auto;
  padding: clamp(5.5rem, 13vh, 8rem) var(--gutter) clamp(2.5rem, 6vh, 4rem);
}
.nav__links { display: flex; flex-direction: column; align-items: flex-start; gap: 1.7rem; }
.masthead .nav a,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav a {
  color: rgba(255,255,255,0.88); opacity: 1; border: 0;
  font-family: var(--display); font-weight: 500;
  font-size: clamp(1.1rem, 2.1vw, 1.6rem); letter-spacing: 0.14em; text-transform: uppercase;
  transition: color .3s ease;
}
.masthead .nav a:hover, .masthead .nav a:focus-visible { color: var(--accent); }
.masthead .nav .nav__group,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav__group { display: block; }
.masthead .nav .nav__sub,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav__sub {
  display: flex; position: static; flex-direction: row; flex-wrap: wrap; gap: 1.1rem 1.4rem;
  background: transparent; border: 0; box-shadow: none; padding: 0.7rem 0 0; margin: 0;
}
.masthead .nav .nav__sub a { font-size: clamp(0.78rem, 1.1vw, 0.92rem); letter-spacing: 0.22em; color: rgba(255,255,255,0.6); }
.masthead .nav .nav__top::after,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav__top::after { display: none; }

.nav__media { position: relative; display: block; overflow: hidden; border: 1px solid rgba(255,255,255,0.16); }
.nav__media video { display: block; width: 100%; height: min(52vh, 460px); object-fit: cover; }
.nav__media-cap {
  position: absolute; left: 1rem; bottom: 0.9rem;
  font-family: var(--body); font-size: 0.6rem; letter-spacing: 0.3em; text-transform: uppercase;
  color: rgba(255,255,255,0.85); text-shadow: 0 1px 8px rgba(0,0,0,.6);
}

@media (max-width: 900px) {
  .masthead__primary { display: none; }   /* the drawer carries these on phones */
  .nav__panel { grid-template-columns: 1fr; overflow-y: auto; align-items: start; }
  .nav__media { display: none; }
  .mast-cta { padding: 0.65rem 1.1rem; }
}

/* ---- Accent colour: hovers & highlights ---- */
.btn:hover, .btn:focus-visible { color: var(--accent); border-bottom-color: var(--accent); }
.btn--solid:hover, .btn--solid:focus-visible { background: var(--accent); border-color: var(--accent); color: var(--hull); }
.textlink:hover, .textlink:focus-visible { color: var(--accent); border-color: var(--accent); }
.foot a:hover, .foot a:focus-visible { color: var(--accent); }
.dest:hover .dest__name, .dest:focus-within .dest__name { color: var(--accent); }
.flagship .btn:hover, .flagship .btn:focus-visible { color: var(--accent); border-bottom-color: var(--accent); }
::selection { background: var(--accent); color: var(--hull); }

/* ---- Global charter fleet cards (imagery pending) ---- */
.craft__media--await { background-color: #0A0A0A; }
.craft__media--await::after {
  content: "Imagery to follow";
  position: absolute; left: 50%; bottom: 1rem; transform: translateX(-50%);
  white-space: nowrap;
  font-family: var(--body); font-size: 0.58rem; letter-spacing: 0.32em; text-transform: uppercase;
  color: rgba(255,255,255,0.38);
}
.craft__media--await.has-photo::after { display: none; }
.craft__media--await.has-photo { background-color: transparent; }
.fleet__note { max-width: 74ch; margin-top: 2.6rem; color: rgba(20,20,20,0.55); }

/* ---- Journal strip (homepage) + guides index cards ---- */
.journal__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.4rem, 2.6vw, 2.6rem); }
.journal__card { display: block; text-decoration: none; color: inherit; }
.journal__photo {
  display: block; aspect-ratio: 4 / 3; background-size: cover; background-position: center;
  filter: saturate(.94); transition: filter .45s ease;
}
.journal__card:hover .journal__photo { filter: saturate(1.06); }
.journal__kicker {
  display: block; font-family: var(--body); font-size: .58rem; letter-spacing: .32em;
  text-transform: uppercase; color: rgba(20,20,20,.5); margin: 1.3rem 0 .7rem;
}
.journal__title {
  display: block; font-family: var(--display); font-weight: 600; text-transform: uppercase;
  letter-spacing: .05em; font-size: clamp(1.05rem, 1.6vw, 1.4rem); line-height: 1.18;
  color: var(--ink); transition: color .3s ease;
}
.journal__title em {
  font-family: var(--serif); font-style: italic; font-weight: 500;
  text-transform: none; letter-spacing: 0; font-size: 1.04em;
}
.journal__card:hover .journal__title { color: var(--accent); }
.journal__stand { display: block; margin-top: .7rem; font-size: .92rem; line-height: 1.6; color: rgba(20,20,20,.62); }
.journal__more { margin-top: 2.8rem; }
@media (max-width: 900px) { .journal__grid { grid-template-columns: 1fr; } }

/* ---- Guide article pages ---- */
.gpost { padding: clamp(8rem, 18vh, 11rem) 0 0; }
.gpost__head { text-align: center; max-width: 62rem; margin: 0 auto; padding: 0 var(--gutter); }
.gpost__kicker {
  font-family: var(--body); font-size: 0.6rem; letter-spacing: 0.42em; text-transform: uppercase;
  color: rgba(20,20,20,0.5); margin: 0 0 2rem;
  display: flex; align-items: center; justify-content: center; gap: 1.4rem;
}
.gpost__kicker::before, .gpost__kicker::after { content: ""; height: 1px; width: clamp(28px, 8vw, 96px); background: var(--rule-ink); }
.gpost__title {
  font-family: var(--display); font-weight: 600; text-transform: uppercase;
  font-size: clamp(1.9rem, 5vw, 4.1rem); letter-spacing: 0.05em; line-height: 1.06;
  color: var(--ink); margin: 0 auto; max-width: 18ch;
}
.gpost__title em {
  font-family: var(--serif); font-style: italic; font-weight: 500;
  text-transform: none; letter-spacing: 0; font-size: 0.9em;
}
.gpost__stand {
  font-size: clamp(1.02rem, .95rem + .4vw, 1.25rem); line-height: 1.7;
  color: rgba(20,20,20,.68); max-width: 56ch; margin: 2rem auto 1.6rem;
}
.gpost__by { font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(20,20,20,.45); margin: 0 0 3rem; }
.gpost__hero { display: block; width: 100%; aspect-ratio: 21 / 9; background-size: cover; background-position: center; }
.gpost__body { max-width: 42rem; margin: 0 auto; padding: clamp(3rem, 7vh, 5rem) var(--gutter) clamp(4rem, 9vh, 6.5rem); }
.gpost__body p { font-size: 1.02rem; line-height: 1.78; color: rgba(20,20,20,.78); margin: 0 0 1.35rem; }
.gpost__body h2 {
  font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: .14em;
  font-size: .95rem; color: var(--ink); margin: 2.8rem 0 1rem;
}
.gpost__body a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; transition: color .3s ease; }
.gpost__body a:hover { color: var(--accent); }
.gpost__pull {
  font-family: var(--serif); font-style: italic; font-size: clamp(1.3rem, 2.4vw, 1.7rem);
  line-height: 1.45; color: var(--ink); border-left: 2px solid var(--accent);
  margin: 2.6rem 0; padding: .4rem 0 .4rem 1.6rem;
}
.gpost__cta { border-top: 1px solid var(--rule); padding-top: 2.4rem; margin-top: 3rem; }
.gindex { padding-top: clamp(8rem, 18vh, 11rem); }

/* ROUND 8.1 — drawer polish: always-visible fleet sub-links, deeper glass */
.masthead .nav,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav { background: rgba(8, 10, 14, 0.88); }
.masthead .nav .nav__sub,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav__sub {
  opacity: 1; visibility: visible; transform: none; pointer-events: auto;
}
.masthead .nav .nav__sub,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav__sub {
  backdrop-filter: none; -webkit-backdrop-filter: none;
  border-radius: 0; min-width: 0;
}
.masthead .nav .nav__sub a { padding: 0.3rem 0; }

/* ROUND 8.2 — global-fleet media slot: proper deep-water placeholder */
.craft__media--await::after { content: ""; }   /* restore the base scrim behaviour */
.craft__media--await:not(.has-photo) {
  background-image: linear-gradient(165deg, #1A1A1A 0%, #101010 58%, #0A0A0A 100%);
}
.craft__media--await:not(.has-photo)::after { background: none; }
.craft__media--await:not(.has-photo)::before {
  content: "Imagery to follow";
  position: absolute; left: 50%; bottom: 1.1rem; transform: translateX(-50%);
  white-space: nowrap; z-index: 2;
  font-family: var(--body); font-size: 0.58rem; letter-spacing: 0.34em; text-transform: uppercase;
  color: rgba(255,255,255,0.42);
}
.craft__media--await:not(.has-photo) .craft__tag { background: rgba(255,255,255,0.92); color: var(--ink); }
@media (max-width: 900px) {
  .masthead .nav,
  body:has(.hero) .masthead:not([data-stuck="true"]) .nav { background: rgba(8, 10, 14, 0.97); }
}

/* ROUND 9 — flagship video, catalogue/management pages (2026-08-05) */
.flagship__video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; transform: scale(1.02);
}
.flagship__logo { width: min(72vw, 500px); }
.flagship__actions { display: flex; flex-wrap: wrap; gap: 1.2rem 2rem; align-items: center; }
.flagship .btn--solid { background: var(--hull); color: var(--ink); border-bottom-color: var(--hull); padding: 0.9rem 1.8rem; }
.flagship .btn--solid:hover, .flagship .btn--solid:focus-visible { background: var(--accent); color: var(--hull); border-bottom-color: var(--accent); }
.fleet__more { margin-top: 2.2rem; }

/* ROUND 10 — serif hero, statement band, destinations hub, builder (2026-08-05) */
.hero--intro .hero__head {
  font-family: var(--serif); font-weight: 500; text-transform: none; letter-spacing: 0;
  font-size: clamp(2.1rem, 4.4vw, 4rem); line-height: 1.16; max-width: 22ch; margin-inline: auto;
}
.hero--intro .hero__tagline { font-family: var(--body); }

.statement { text-align: center; }
.statement__text {
  font-family: var(--serif); font-weight: 500; font-size: clamp(1.7rem, 3.6vw, 3.2rem);
  line-height: 1.28; color: var(--ink); max-width: 30ch; margin: 0 auto;
}
.statement__sub {
  font-size: clamp(.95rem, .9rem + .3vw, 1.1rem); line-height: 1.7;
  color: rgba(20,20,20,.62); max-width: 58ch; margin: 2rem auto 0;
}

.destfilter { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0 0 2.6rem; }
.destfilter__chip {
  font-family: var(--body); font-size: .64rem; letter-spacing: .26em; text-transform: uppercase;
  background: none; border: 1px solid var(--rule-ink); color: rgba(20,20,20,.72);
  padding: .7rem 1.3rem; cursor: pointer; transition: all .3s ease;
}
.destfilter__chip:hover { border-color: var(--accent); color: var(--accent); }
.destfilter__chip.is-active { background: var(--ink); border-color: var(--ink); color: var(--hull); }

.destgrid { display: grid; gap: clamp(2.5rem, 5vh, 4rem); }
.destcard { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: clamp(1.5rem,3vw,3rem); align-items: center; }
.destcard:nth-child(even) .destcard__photo { order: 2; }
.destcard__photo { display: block; aspect-ratio: 16/10; background-size: cover; background-position: center; }
.destcard__detail { font-size: 1rem; line-height: 1.7; color: rgba(20,20,20,.72); max-width: 46ch; }
.destcard__meta { display: flex; gap: 2rem; font-size: .62rem; letter-spacing: .26em; text-transform: uppercase; color: rgba(20,20,20,.5); }
.destcard__actions { margin-top: 1.4rem; }
@media (max-width: 900px) { .destcard { grid-template-columns: 1fr; } .destcard:nth-child(even) .destcard__photo { order: 0; } }

.builder { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(260px,1fr); gap: clamp(2rem,4vw,4rem); align-items: start; }
@media (max-width: 900px) { .builder { grid-template-columns: 1fr; } }
.builder__steps { display: flex; gap: 1.6rem; list-style: none; margin: 0 0 2.4rem; padding: 0; }
.builder__steps li {
  font-family: var(--body); font-size: .6rem; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(20,20,20,.35); padding-bottom: .5rem; border-bottom: 2px solid transparent;
}
.builder__steps li.is-active { color: var(--ink); border-bottom-color: var(--accent); }
.builder__step { display: none; border: 0; padding: 0; margin: 0; }
.builder__step.is-active { display: block; }
.builder__q {
  font-family: var(--serif); font-weight: 500; font-size: clamp(1.4rem, 2.4vw, 2rem);
  color: var(--ink); margin: 0 0 1.6rem; padding: 0;
}
.builder__opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%,240px),1fr)); gap: .9rem; }
.builder__opts label { display: block; cursor: pointer; }
.builder__opts input { position: absolute; opacity: 0; }
.builder__opts span {
  display: block; padding: 1.1rem 1.3rem; border: 1px solid var(--rule-ink);
  font-family: var(--body); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(20,20,20,.78); transition: all .25s ease;
}
.builder__opts label:hover span { border-color: var(--accent); color: var(--accent); }
.builder__opts input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--hull); }
.builder__nav { display: flex; align-items: center; gap: 1.6rem; margin-top: 2.4rem; }
.builder__summary { border: 1px solid var(--rule); padding: 1.8rem; position: sticky; top: 110px; }
.builder__ledger { margin: 1.2rem 0; }
.builder__ledger > div { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--rule); }
.builder__ledger dt { font-size: .6rem; letter-spacing: .28em; text-transform: uppercase; color: rgba(20,20,20,.5); }
.builder__ledger dd { margin: 0; font-size: .85rem; color: var(--ink); text-align: right; }
.builder__nav [hidden] { display: none !important; }

/* ROUND 11 — worldwide pass: flagship rate, guides feature rotation, 3-link bar */
.flagship__rate { font-size: .95rem; letter-spacing: .04em; color: rgba(255,255,255,.85); margin: -0.8rem 0 2rem; }
.flagship__rate strong { font-family: var(--display); font-weight: 600; color: var(--hull); }

.gfeature { position: relative; margin: 0 0 clamp(2.5rem, 5vh, 4rem); }
.gfeature__slide { display: none; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: clamp(1.5rem,3.5vw,3.5rem); align-items: center; }
.gfeature__slide.is-active { display: grid; animation: gfade .7s ease; }
@keyframes gfade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.gfeature__photo { display: block; aspect-ratio: 16/10; background-size: cover; background-position: center; }
.gfeature__title {
  display: block; text-decoration: none; margin: 0 0 1rem;
  font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: .05em;
  font-size: clamp(1.5rem, 2.8vw, 2.5rem); line-height: 1.14; color: var(--ink); transition: color .3s ease;
}
.gfeature__title em { font-family: var(--serif); font-style: italic; font-weight: 500; text-transform: none; letter-spacing: 0; }
.gfeature__title:hover { color: var(--accent); }
.gfeature__body .journal__stand { margin-bottom: 1.6rem; }
.gfeature__dots { display: flex; gap: .6rem; margin-top: 1.6rem; }
.gfeature__dots button {
  width: 26px; height: 3px; padding: 0; border: 0; cursor: pointer;
  background: var(--rule-ink); transition: background .3s ease;
}
.gfeature__dots button.is-active { background: var(--accent); }
@media (max-width: 900px) { .gfeature__slide.is-active { grid-template-columns: 1fr; } }

@media (max-width: 1100px) { .masthead__primary .mast-link:nth-child(3) { display: none; } }

/* ROUND 12 — unified catalogue, compare bar, network yacht pages, world index */
.btn-compare { background: none; border: 1px solid var(--rule-ink); padding: .55rem 1.1rem; cursor: pointer;
  font-family: var(--body); font-size: .62rem; letter-spacing: .26em; text-transform: uppercase; color: rgba(20,20,20,.72);
  transition: all .25s ease; }
.btn-compare:hover { border-color: var(--accent); color: var(--accent); }
.btn-compare.is-picked { background: var(--ink); border-color: var(--ink); color: var(--hull); }
.cbar { position: fixed; left: 50%; bottom: 1.4rem; transform: translateX(-50%); z-index: 65;
  display: flex; align-items: center; gap: 1.4rem; padding: .9rem 1.6rem;
  background: rgba(10,12,16,.92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.16); color: var(--hull); max-width: min(92vw, 720px); }
.cbar__names { font-family: var(--body); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cbar .btn { color: var(--hull); border-bottom-color: rgba(255,255,255,.5); }
.cbar .btn--solid { background: var(--hull); color: var(--ink); padding: .6rem 1.2rem; }
.cbar[hidden] { display: none; }
#compare[hidden] { display: none; }

.vhero { position: relative; min-height: 72svh; display: flex; align-items: flex-end; background: var(--ink); overflow: hidden; }
.vhero__media { position: absolute; inset: 0; background-size: cover; background-position: center; background-color:var(--ink); }
.vhero__media.craft__media--await:not(.has-photo) { background-image: linear-gradient(165deg, #1A1A1A 0%, #101010 58%, #0A0A0A 100%); }
.vhero__scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,12,20,.85) 0%, rgba(8,12,20,.15) 55%); }
.vhero__body { position: relative; z-index: 2; width: 100%; padding-block: clamp(2.5rem, 7vh, 5rem); color: var(--hull); }
.vhero__name { font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: .1em;
  font-size: clamp(2.4rem, 7vw, 5.5rem); line-height: 1; margin: 0 0 1rem; color: var(--hull); }
.vhero__meta { color: rgba(255,255,255,.8); }

.powered { text-align: center; }
.powered__inner { display: flex; flex-direction: column; align-items: center; gap: 1.2rem; }
.powered__label { letter-spacing: .34em; text-transform: uppercase; color: rgba(20,20,20,.5); }
.powered__logo { height: clamp(30px, 4vw, 46px); width: auto; }

.windex__tools { display: flex; flex-wrap: wrap; gap: 1.2rem 2rem; align-items: center; margin-bottom: 2rem; }
.windex__search { flex: 1 1 280px; max-width: 420px; padding: .9rem 1.1rem; border: 1px solid var(--rule-ink);
  font-family: var(--body); font-size: .9rem; background: var(--hull); color: var(--ink); }
.windex__search:focus { outline: none; border-color: var(--accent); }
.windex { border-top: 1px solid var(--rule); }
.windex__row { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto;
  gap: 1rem; align-items: center; width: 100%; text-align: left; background: none; border: 0;
  border-bottom: 1px solid var(--rule); padding: 1.1rem .2rem; cursor: pointer; transition: background .25s ease; }
.windex__row:hover { background: rgba(20,20,20,.03); }
.windex__name { font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: .08em;
  font-size: clamp(.95rem, 1.4vw, 1.2rem); color: var(--ink); }
.windex__item.is-open .windex__name { color: var(--accent); }
.windex__region, .windex__season { font-family: var(--body); font-size: .62rem; letter-spacing: .24em;
  text-transform: uppercase; color: rgba(20,20,20,.5); }
.windex__cue { font-family: var(--serif); font-size: 1.3rem; color: rgba(20,20,20,.4); }
.windex__item.is-open .windex__cue { color: var(--accent); }
.windex__detail { border-bottom: 1px solid var(--rule); padding: 1.2rem .2rem 1.6rem; }
.windex__detail p { max-width: 60ch; color: rgba(20,20,20,.72); line-height: 1.7; margin: 0 0 1.2rem; }
@media (max-width: 760px) { .windex__row { grid-template-columns: minmax(0,1fr) auto; }
  .windex__region { display: none; } }


/* ROUND 13 — mobile header, light-page forms, portrait media bands */
@media (max-width: 760px) {
  .masthead { padding: 0.9rem 1rem; gap: 0.8rem; }
  .masthead .wordmark, body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark { max-width: 44vw; }
  .wordmark__logo,
  body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: auto; max-height: 26px; width: 100%; object-fit: contain; }
  .masthead[data-stuck="true"] .wordmark__logo { max-height: 22px; height: auto; }
  .mast-cta { padding: 0.55rem 0.85rem; font-size: 0.6rem; letter-spacing: 0.22em; }
  .masthead__right .mast-link { display: none; }   /* Destinations lives in the drawer on phones */
  .masthead__left, .masthead__right { gap: 0.8rem; }
}

/* forms on light pages: dark text, dark rules */
.builder__form .field input,
.builder__form .field select,
.builder__form .field textarea {
  color: var(--ink);
  border-bottom-color: var(--rule-ink);
  caret-color: var(--ink);
}
.builder__form .field input::placeholder,
.builder__form .field textarea::placeholder { color: rgba(20,20,20,0.35); }
.builder__form .field select option { background: var(--hull); color: var(--ink); }
.builder__form .field input:focus,
.builder__form .field select:focus,
.builder__form .field textarea:focus { border-bottom-color: var(--accent); outline: none; }
.builder__form .field label { color: rgba(20,20,20,0.55); }

/* portrait media band: text one side, tall motion the other */
.mediaband { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(240px, 360px); gap: clamp(2rem,5vw,5rem); align-items: center; }
.mediaband__video { position: relative; overflow: hidden; border: 1px solid var(--rule); justify-self: end; width: 100%; }
.mediaband__video video { display: block; width: 100%; aspect-ratio: 9/16; object-fit: cover; }
.mediaband__cap { position: absolute; left: 1rem; bottom: 0.9rem; font-family: var(--body); font-size: 0.58rem;
  letter-spacing: 0.3em; text-transform: uppercase; color: rgba(255,255,255,0.85); text-shadow: 0 1px 8px rgba(0,0,0,0.6); }
@media (max-width: 860px) { .mediaband { grid-template-columns: 1fr; } .mediaband__video { justify-self: start; max-width: 320px; } }

/* world-index destination photo slot: appears when the file exists */
.windex__photo { display: none; width: min(100%, 420px); aspect-ratio: 16/9; background-size: cover; background-position: center; margin: 0 0 1.2rem; }
.windex__photo.has-photo { display: block; }

/* builder summary media */
.builder__summary-media { margin: -1.8rem -1.8rem 1.4rem; overflow: hidden; }
.builder__summary-media video { display: block; width: 100%; height: 180px; object-fit: cover; }

/* ROUND 14 — hero CTA, ghost button, photo services, wordmarks, vessel hero logo */
.hero__cta { display: flex; gap: 1.4rem; justify-content: center; align-items: center; margin-top: 2.2rem; flex-wrap: wrap; }
.hero__cta .btn--solid { background: var(--hull); color: var(--ink); padding: 1rem 2rem; border-bottom-color: var(--hull); }
.hero__cta .btn--solid:hover { background: var(--accent); color: var(--hull); border-bottom-color: var(--accent); }
.btn--ghost { color: var(--hull); border-bottom-color: rgba(255,255,255,.55); }
.btn--ghost:hover, .btn--ghost:focus-visible { color: var(--accent); border-bottom-color: var(--accent); }

.craft__logo--word { height: clamp(44px, 5.4vw, 66px); width: auto; }
.vhero__logo { width: min(74vw, 460px); height: auto; display: block; margin: 0 0 1rem;
  filter: brightness(0) invert(1) drop-shadow(0 6px 30px rgba(0,0,0,0.45)); }

.services--photo .service { text-decoration: none; color: inherit; display: block; }
.service__photo { display: block; aspect-ratio: 16/10; background-size: cover; background-position: center;
  margin: 0 0 1.4rem; filter: saturate(.94); transition: filter .4s ease; }
.services--photo .service:hover .service__photo { filter: saturate(1.06); }
.services--photo .service:hover .service__name { color: var(--accent); }
.service__name { transition: color .3s ease; }

/* ROUND 15 — Build Your Charter in the header bar */
.mast-cta--build { background: var(--accent); border-color: var(--accent); color: var(--hull); }
.mast-cta--build:hover, .mast-cta--build:focus-visible { background: var(--hull); border-color: var(--hull); color: var(--ink); }
@media (max-width: 1200px) { .mast-cta--build { display: none; } }  /* drawer + hero carry it below desktop */

/* ROUND 16 — reel logo, world map, brand panels */
.reel__logo { width: min(64vw, 380px); height: auto; display: block;
  filter: drop-shadow(0 6px 30px rgba(0,0,0,.5)); }
.gfeature__photo { background-color: #0A0A0A; }   /* never white while loading */

.await__mark { position: absolute; left: 50%; top: 46%; transform: translate(-50%,-50%);
  width: min(60%, 260px); height: auto; filter: brightness(0) invert(1); opacity: .9; }
.craft__media--await.has-photo .await__mark { display: none; }

.wmap-band { background: #0A0A0A; }
.wmap { position: relative; }
.wmap__img { display: block; width: 100%; height: auto; opacity: .9; }
.wmap__dot { position: absolute; width: 18px; height: 18px; margin: -9px 0 0 -9px;
  background: none; border: 0; cursor: pointer; padding: 0; }
.wmap__dot span { display: block; width: 8px; height: 8px; margin: 5px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 0 rgba(201,123,45,.65); animation: wpulse 2.4s infinite; }
.wmap__dot:hover span, .wmap__dot.is-active span { background: var(--hull); }
@keyframes wpulse {
  0% { box-shadow: 0 0 0 0 rgba(201,123,45,.55); }
  70% { box-shadow: 0 0 0 12px rgba(201,123,45,0); }
  100% { box-shadow: 0 0 0 0 rgba(201,123,45,0); }
}
.wmap__panel { position: absolute; right: 1.2rem; top: 1.2rem; width: min(88%, 360px);
  background: rgba(10,13,18,.96); border: 1px solid rgba(255,255,255,.16); padding: 1.6rem;
  color: var(--hull); z-index: 5; }
.wmap__panel[hidden] { display: none; }
.wmap__close { position: absolute; right: .8rem; top: .5rem; background: none; border: 0;
  color: rgba(255,255,255,.7); font-size: 1.4rem; cursor: pointer; }
.wmap__close:hover { color: var(--accent); }
.wmap__photo { display: none; aspect-ratio: 16/9; background-size: cover; background-position: center; margin: 0 0 1.1rem; }
.wmap__kicker { font-family: var(--body); font-size: .58rem; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(255,255,255,.6); margin: 0 0 .5rem; }
.wmap__name { font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: .08em;
  font-size: 1.3rem; margin: 0 0 .7rem; color: var(--hull); }
.wmap__note { font-size: .9rem; line-height: 1.6; color: rgba(255,255,255,.78); margin: 0 0 1.2rem; }
@media (max-width: 760px) {
  .wmap__panel { position: static; width: 100%; margin-top: 1rem; }
  .wmap__dot { width: 24px; height: 24px; margin: -12px 0 0 -12px; }
}
/* the base .craft__media img rule (gallery cover behaviour) must not inflate the mark */
.craft__media--await .await__mark, .vhero__media .await__mark {
  position: absolute !important; left: 50% !important; top: 46% !important;
  transform: translate(-50%, -50%) !important;
  width: min(56%, 240px) !important; height: auto !important;
  object-fit: contain !important; inset: auto;
}

/* ROUND 17 — map band forced dark (beats the light-theme band overrides) */
.wmap-band, section.band.band--deep.wmap-band { background: var(--ink) !important; }
.wmap-band .eyebrow { color: rgba(255,255,255,.55) !important; }
.wmap-band .display { color: var(--hull) !important; }
.wmap-band .lede { color: rgba(255,255,255,.75) !important; }
.wmap__img { opacity: 1; }

/* ROUND 18 — vessel galleries */
.gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 10px; }
.gal__tile { display: block; aspect-ratio: 4/3; overflow: hidden; background: #0A0A0A; }
.gal__tile img { width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s ease, filter .5s ease; filter: saturate(.95); }
.gal__tile:hover img { transform: scale(1.04); filter: saturate(1.05); }

/* ROUND 19 — rounded buttons, bolder button/link text */
.mast-cta, .btn--solid, .hero__cta .btn--solid, .flagship .btn--solid {
  border-radius: 999px;
}
.destfilter__chip, .btn-compare { border-radius: 999px; }
.builder__opts span { border-radius: 14px; }
.windex__search { border-radius: 999px; padding-left: 1.4rem; }
.gal__tile { border-radius: 10px; }
.craft__media, .vhero__media, .dest__photo, .journal__photo, .gfeature__photo,
.destcard__photo, .service__photo, .wmap__photo, .nav__media, .mediaband__video,
.builder__summary-media { border-radius: 12px; overflow: hidden; }

/* bolder text: body up a notch, buttons and underlined links unmistakably bold */
body { font-weight: 400; }
.btn { font-weight: 700; letter-spacing: 0.3em; }
.textlink { font-weight: 700; }
.mast-link { font-weight: 600; }
.mast-cta { font-weight: 700; }
.nav a { font-weight: 600; }
.foot a { font-weight: 500; }

/* ROUND 20 — statement over Kismet aerial; bigger bolder buttons */
.statement--photo {
  background-size: cover; background-position: center;
  position: relative;
}
.statement--photo::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(rgba(8,11,16,.62), rgba(8,11,16,.62));
}
.statement--photo .shell { position: relative; z-index: 2; }
.statement--photo .statement__text { color: var(--hull); text-shadow: 0 2px 24px rgba(0,0,0,.4); }

.btn { font-size: 0.8rem; font-weight: 800; }
.btn--solid { padding: 1rem 2rem; }
.mast-cta { font-size: 0.72rem; font-weight: 800; padding: 0.9rem 1.7rem; }
.mast-link { font-size: 0.7rem; font-weight: 700; }
.destfilter__chip { font-size: 0.7rem; font-weight: 700; }
.btn-compare { font-size: 0.68rem; font-weight: 700; }


/* ROUND 21 - GRAND FOOTER (broker-house + concierge) */
.foot--grand, footer.foot.foot--grand { background: var(--ink) !important; border-top: 0 !important; padding-block: 0 2.4rem !important; }
.foot__concierge { border-top: 1px solid rgba(201,123,45,.5); border-bottom: 1px solid rgba(255,255,255,.08); background: #0A0A0A; }
.foot__concierge-inner { display: flex; flex-wrap: wrap; gap: 2rem; justify-content: space-between; align-items: center; padding-block: clamp(2.2rem, 5vw, 3.4rem); }
.foot__kicker { font-family: var(--body); font-size: .58rem; letter-spacing: .34em; text-transform: uppercase; color: rgba(255,255,255,.55) !important; margin: 0 0 .8rem; }
.foot__invite { font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: var(--hull) !important; font-size: clamp(1.1rem, 2.3vw, 1.65rem); line-height: 1.35; margin: 0; }
.foot__invite em { font-family: var(--serif); font-style: italic; font-weight: 500; text-transform: none; letter-spacing: 0; }
.foot__concierge-contact { text-align: right; }
.foot__contact-line { display: block; color: var(--hull) !important; text-decoration: none; font-size: 1.02rem; letter-spacing: .05em; margin: 0 0 .4rem; opacity: .92; font-weight: 500; }
.foot__contact-line:hover, .foot__contact-line:focus-visible { color: var(--accent) !important; opacity: 1; }
.foot__concierge-cta { margin-top: 1.1rem; display: flex; gap: .8rem; justify-content: flex-end; flex-wrap: wrap; }
.foot--grand .btn { color: var(--hull); border-color: rgba(255,255,255,.45); }
.foot--grand .btn--solid { color: var(--hull); }
.foot__mark { text-align: center; padding-top: clamp(3rem, 6vw, 4.5rem); }
.foot__logo { width: min(74vw, 470px); height: auto; opacity: .97; display: inline-block; }
.foot__motto { font-family: var(--body); font-size: .6rem; letter-spacing: .42em; text-transform: uppercase; color: rgba(255,255,255,.5) !important; margin: 1.3rem 0 0; }
.foot__grid--grand { border-top: 1px solid rgba(255,255,255,.12); margin-top: clamp(2.2rem, 4vw, 3.2rem); padding-top: clamp(2.2rem, 4vw, 3.2rem); }
.foot--grand .foot__col h3 { color: rgba(255,255,255,.48) !important; font-size: .6rem; letter-spacing: .32em; }
.foot--grand .foot__col a { color: var(--hull) !important; opacity: .78; }
.foot--grand .foot__col a:hover, .foot--grand .foot__col a:focus-visible { opacity: 1; color: var(--accent) !important; }
.foot__base--grand { border-top: 1px solid rgba(255,255,255,.12) !important; margin-top: clamp(2.2rem, 4vw, 3.2rem); padding-top: 1.5rem; display: block !important; text-align: center; }
.foot__base--grand .fine { color: rgba(255,255,255,.55) !important; margin: .35rem auto; max-width: 90ch; }
@media (max-width: 760px) {
  .foot__concierge-contact { text-align: left; }
  .foot__concierge-cta { justify-content: flex-start; }
}

/* ROUND 21 - PHOTOGRAPHY MOSAIC (coffee-table bands) */
.mosaic { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(150px, 21vw, 300px); gap: 10px; padding: 10px; background: var(--ink); }
.mosaic__tile { display: block; background-size: cover; background-position: center; border-radius: 10px; overflow: hidden; position: relative; transition: filter .5s ease; filter: saturate(.98); }
a.mosaic__tile:hover, a.mosaic__tile:focus-visible { filter: saturate(1.06) brightness(1.04); }
.mosaic__tile--w2 { grid-column: span 2; }
.mosaic__tile--t2 { grid-row: span 2; }
.mosaic__cap { position: absolute; left: 1rem; bottom: .85rem; color: var(--hull); font-family: var(--body); font-size: .55rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; text-shadow: 0 1px 14px rgba(0,0,0,.65); }
@media (max-width: 760px) {
  .mosaic { grid-template-columns: repeat(2, 1fr); grid-auto-rows: clamp(130px, 30vw, 220px); }
  .mosaic__tile--t2 { grid-row: span 1; }
}


/* ROUND 22 - hero dual typeface (editorial style over the wave film) */
.hero__rule {
  font-family: var(--body); font-size: .6rem; letter-spacing: .42em; text-transform: uppercase;
  color: rgba(255,255,255,.72); margin: 0 0 1.7rem;
  display: flex; align-items: center; justify-content: center; gap: 1.4rem;
  text-shadow: 0 1px 14px rgba(10,15,30,.45);
}
.hero__rule::before, .hero__rule::after { content: ""; height: 1px; width: clamp(28px, 8vw, 96px); background: rgba(255,255,255,.38); }
.hero--intro .hero__head--duo {
  font-weight: 600; text-transform: uppercase; letter-spacing: .06em;
  font-size: clamp(1.55rem, 3.3vw, 2.9rem); line-height: 1.22; max-width: 30ch;
}
.hero__head--duo em {
  font-family: var(--serif); font-style: italic; font-weight: 500;
  text-transform: none; letter-spacing: .01em; font-size: .97em;
}

/* ROUND 22 - mobile masthead: stop the crowding */
@media (max-width: 700px) {
  .masthead { gap: .7rem; padding: .9rem 1rem; }
  .wordmark { min-width: 0; }
  .wordmark__logo,
  .masthead[data-stuck="true"] .wordmark__logo,
  body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: 22px !important; }
  .masthead__right { gap: .5rem; flex-shrink: 0; }
  .masthead__right .mast-link { display: none; }
  .mast-cta { font-size: .56rem; letter-spacing: .16em; padding: .55rem .95rem; }
  .hero__rule { gap: .9rem; }
  .hero__rule::before, .hero__rule::after { width: 22px; }
}

/* ROUND 22b - duo head: sans caps beat the serif hero rule; masthead breathing room */
.hero--intro .hero__head--duo {
  font-family: var(--display) !important; font-weight: 600 !important;
  text-transform: uppercase !important; letter-spacing: .06em !important;
}
.hero--intro .hero__head--duo em {
  font-family: var(--serif) !important; font-style: italic; font-weight: 500 !important;
  text-transform: none !important; letter-spacing: .01em !important;
}
@media (max-width: 1560px) {
  .wordmark__logo,
  body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: clamp(26px, 2.4vw, 38px); }
}
@media (max-width: 1460px) {
  .masthead__right .mast-link { display: none; }  /* Destinations lives in the drawer */
}


/* ROUND 23 - Central Agent tag readable on any photograph */
.craft__tag {
  background: rgba(255,255,255,.94) !important;
  color: var(--ink) !important;
  font-weight: 700 !important;
  letter-spacing: .26em;
  border-radius: 999px;
  padding: .55rem 1.05rem;
  box-shadow: 0 4px 18px rgba(0,0,0,.25);
  border: 0 !important;
  backdrop-filter: blur(4px);
}

/* ROUND 23 - dual-typeface display headings outside the hero */
.display--duo { text-transform: uppercase !important; font-weight: 600 !important; letter-spacing: .06em !important; }
.display--duo em {
  font-family: var(--serif) !important; font-style: italic; font-weight: 500 !important;
  text-transform: none !important; letter-spacing: .01em !important;
}


/* ROUND 24 - destinations: sea index, season grid */
.seaindex { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: clamp(1.6rem, 3vw, 2.6rem); }
.seaindex__sea { font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; font-size: .95rem; margin: 0 0 .3rem; }
.seaindex__season { font-family: var(--body); font-size: .58rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(20,20,20,.45); margin: 0 0 1rem; }
.seaindex__group a { display: block; text-decoration: none; font-size: .92rem; margin: 0 0 .55rem; opacity: .8; transition: opacity .3s ease, color .3s ease; }
.seaindex__group a:hover, .seaindex__group a:focus-visible { opacity: 1; color: var(--accent); }
.seasongrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: clamp(1.2rem, 2.5vw, 2rem); }
.seasoncard { border: 1px solid var(--rule); border-radius: 12px; padding: clamp(1.4rem, 2.5vw, 2rem); background: var(--hull); }
.seasoncard__months { font-family: var(--body); font-size: .6rem; letter-spacing: .32em; text-transform: uppercase; color: var(--accent); margin: 0 0 .9rem; font-weight: 700; }
.seasoncard__copy { font-size: .95rem; line-height: 1.65; color: rgba(20,20,20,.75); margin: 0 0 1.3rem; }
.destgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(1.2rem, 2.5vw, 2rem); }

/* ROUND 24 - weekly spotlight band */
.spotlight { padding-block: 0 !important; }
.spotlight__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.8rem, 4vw, 4rem); align-items: center; padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.spotlight__photo { display: block; aspect-ratio: 16/11; background-size: cover; background-position: center; border-radius: 12px; position: relative; overflow: hidden; }
.spotlight__eyebrow { color: rgba(255,255,255,.55) !important; }
.spotlight__head { color: var(--hull) !important; }
.spotlight__lede { color: rgba(255,255,255,.75) !important; }
.spotlight__actions { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 1.6rem; }
.spotlight .btn { color: var(--hull); border-color: rgba(255,255,255,.45); }
@media (max-width: 900px) { .spotlight__grid { grid-template-columns: 1fr; } }

/* ROUND 24 - builder: boats that fit */
.builder__fitlist { list-style: none; margin: .6rem 0 0; padding: 0; }
.builder__fitlist li { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--rule); padding: .55rem 0; font-size: .88rem; }
.builder__fitlist a { text-decoration: none; font-weight: 600; }
.builder__fitlist a:hover { color: var(--accent); }
.builder__fitlist span { color: rgba(20,20,20,.55); white-space: nowrap; }

/* ROUND 24b - spotlight forced dark (beats light-theme band overrides) */
.spotlight, section.band.band--deep.spotlight { background: var(--ink) !important; }
.spotlight .display, .spotlight .display--duo { color: var(--hull) !important; }


/* ROUND 25 - catalogue: three vessels per row */
.fleet { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.2rem, 2.2vw, 2rem); align-items: stretch; }
.fleet .craft { display: flex; flex-direction: column; gap: 0; border: 1px solid var(--rule); border-radius: 12px; background: var(--hull); overflow: hidden; }
.fleet .craft:nth-child(even) .craft__media { order: 0; }
.fleet .craft__media { aspect-ratio: 16/10; border-radius: 0 !important; }
.fleet .craft__text { padding: 1.5rem 1.5rem 1.7rem; display: flex; flex-direction: column; flex: 1; }
.fleet .craft__name { font-size: clamp(1.15rem, 1.4vw, 1.45rem); margin-bottom: .6rem; }
.fleet .craft__logo { height: 30px; } .fleet .craft__logo--tall { height: 44px; }
.fleet .craft__meta { font-size: .68rem; }
.fleet .craft__pitch { font-size: .88rem; line-height: 1.55; }
.fleet .craft__stats { margin-block: 1rem; }
.fleet .craft .stat__value { font-size: clamp(1.05rem, 1.3vw, 1.3rem); }
.fleet .craft__rate { margin-top: auto; }
.fleet .craft__rate strong { font-size: clamp(1.15rem, 1.5vw, 1.45rem); }
.fleet .craft__actions { flex-wrap: wrap; gap: .6rem; }
.fleet .craft__actions .btn { font-size: .62rem; padding: .7rem 1.1rem; }
@media (max-width: 1100px) { .fleet { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .fleet { grid-template-columns: 1fr; } }

/* ROUND 25 - social marquee (continuous film strip) */
.social-marquee { overflow: hidden; margin-inline: calc(-1 * var(--gutter)); }
.social-marquee__track { display: flex; width: max-content; animation: social-scroll 60s linear infinite; }
.social-marquee .social__tile { width: clamp(210px, 24vw, 330px); aspect-ratio: 1; flex: none; margin-right: 10px; border-radius: 10px; }
.social-marquee .social__tile > span { border-radius: 10px; }
.social-marquee:hover .social-marquee__track { animation-play-state: paused; }
@keyframes social-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .social-marquee__track { animation: none; } }

/* ROUND 25 - insignia-only footer mark */
.foot__logo--mark { width: min(56vw, 340px); opacity: .95; }

/* ROUND 25 - currency picker */
.curpick { background: transparent; border: 1px solid rgba(255,255,255,.4); color: var(--hull); border-radius: 999px; font-family: var(--body); font-size: .6rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; padding: .55rem .8rem; cursor: pointer; -webkit-appearance: none; appearance: none; }
.curpick:hover, .curpick:focus-visible { border-color: var(--hull); }
.curpick option { color: #141414; text-transform: none; letter-spacing: 0; }
@media (max-width: 700px) { .curpick { font-size: .54rem; padding: .4rem .55rem; } }


/* ROUND 26 - extended bold display sans, closer to the wordmark */
:root { --display: 'Archivo', 'Montserrat', sans-serif; }
.display, .display--sub, .display--section, .editorial__head, .hero__head--duo,
.foot__invite, .craft__name, .vhero__name, .journal__title, .gfeature__title,
.wmap__name, .seaindex__sea, .builder__q, .stat__value, .flagship__stat .stat__value,
.mast-link, .mast-cta, .nav a, .btn, .curpick { font-stretch: 116%; }
.display--section, .editorial__head, .hero__head--duo { font-weight: 700; }
.mast-link, .nav a { font-weight: 700; }
.craft__name, .seaindex__sea { font-weight: 700; }

/* ROUND 26 - offices row */
.foot__offices { border-top: 1px solid rgba(255,255,255,.12); margin-top: clamp(2.2rem, 4vw, 3.2rem); padding-top: clamp(1.6rem, 3vw, 2.4rem); text-align: center; }
.foot__offices h3 { font-family: var(--body); font-size: .58rem; letter-spacing: .34em; text-transform: uppercase; color: rgba(255,255,255,.48); margin: 0 0 .9rem; font-weight: 600; }
.foot__offices p { font-family: var(--body); font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.68); line-height: 2.1; margin: 0 auto; max-width: 100ch; }

/* ROUND 26 - the direct line (refined corner card) */
.desk-card { position: fixed; right: clamp(1rem, 2vw, 1.6rem); bottom: clamp(1rem, 2vw, 1.6rem); z-index: 58;
  width: min(88vw, 300px); background: #0A0A0A; color: var(--hull); border-radius: 12px;
  padding: 1.25rem 1.4rem 1.3rem; border-top: 2px solid var(--accent);
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
  opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.desk-card.is-in { opacity: 1; transform: none; }
.desk-card__kicker { font-family: var(--body); font-size: .55rem; letter-spacing: .32em; text-transform: uppercase; color: rgba(255,255,255,.55); margin: 0 0 .55rem; }
.desk-card__line { font-size: .9rem; line-height: 1.5; color: rgba(255,255,255,.85); margin: 0 0 .9rem; font-family: var(--body); }
.desk-card__link { display: block; color: var(--hull); text-decoration: none; font-weight: 700; letter-spacing: .04em; margin: 0 0 .3rem; font-size: 1.02rem; }
.desk-card__link--mail { font-weight: 500; font-size: .85rem; color: rgba(255,255,255,.8); }
.desk-card__link:hover, .desk-card__link:focus-visible { color: var(--accent); }
.desk-card__x { position: absolute; top: .4rem; right: .65rem; background: none; border: 0; color: rgba(255,255,255,.5); font-size: 1.2rem; cursor: pointer; line-height: 1; padding: .3rem; }
.desk-card__x:hover, .desk-card__x:focus-visible { color: var(--hull); }
@media (prefers-reduced-motion: reduce) { .desk-card { transition: none; } }


/* ROUND 27 - Cecil Wright style catalogue cards (photo-first) */
.fleet { gap: clamp(.8rem, 1.4vw, 1.4rem); }
.fleet .craft.cw { display: block; border: 0; border-radius: 12px; background: none; overflow: visible; position: relative; }
.cw__media { display: block; position: relative; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden;
  background-size: cover; background-position: center; background-color: #0A0A0A; transition: filter .5s ease; }
.cw__media::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(8,12,18,.78), rgba(8,12,18,.12) 52%, rgba(8,12,18,0) 75%); }
.craft.cw:hover .cw__media, .craft.cw:focus-within .cw__media { filter: brightness(1.06) saturate(1.04); }
.cw__cap { position: absolute; left: 0; right: 0; bottom: 1.2rem; z-index: 2; text-align: center; padding-inline: 1rem; }
.cw__name { display: block; font-family: var(--display); font-stretch: 116%; font-weight: 700; text-transform: uppercase;
  letter-spacing: .16em; color: var(--hull); font-size: clamp(.95rem, 1.35vw, 1.25rem); margin-bottom: .5rem;
  text-shadow: 0 1px 18px rgba(0,0,0,.55); }
.cw__specs { display: block; font-family: var(--body); font-size: .66rem; font-weight: 600; letter-spacing: .18em;
  text-transform: uppercase; color: rgba(255,255,255,.88); text-shadow: 0 1px 12px rgba(0,0,0,.5); }
.cw__specs strong { font-weight: 700; color: var(--hull); }
.cw__specs i { font-style: normal; margin: 0 .55em; opacity: .55; }
.cw__unit { text-transform: none; letter-spacing: .08em; opacity: .8; }
.cw__cmp { position: absolute; top: .95rem; right: .95rem; z-index: 3;
  background: rgba(10,14,20,.5) !important; color: var(--hull) !important; border-color: rgba(255,255,255,.4) !important;
  backdrop-filter: blur(6px); font-size: .56rem !important; padding: .5rem .9rem !important; }
.cw__cmp:hover, .cw__cmp.is-picked { background: rgba(255,255,255,.92) !important; color: var(--ink) !important; }
.cw__cmp.is-picked { border-color: var(--accent) !important; }


/* ROUND 28 - currency control, far right */
.curpick-box { display: inline-flex; align-items: center; gap: .5rem; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; padding: .55rem .95rem; color: var(--hull); cursor: pointer; position: relative; }
.curpick-box:hover, .curpick-box:focus-within { border-color: var(--hull); }
.curpick-box__label { font-family: var(--body); font-size: .56rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.curpick-box .curpick { border: 0 !important; padding: 0 !important; background: transparent; font-size: .62rem; }
.curpick-box__chev { width: 10px; height: 6px; color: rgba(255,255,255,.7); flex: none; }
@media (max-width: 700px) { .curpick-box { padding: .4rem .7rem; gap: .35rem; } .curpick-box__label { display: none; } }

/* ROUND 28 - direct line card, lighter and larger */
.desk-card { background: #F6F4EF; color: var(--ink); width: min(90vw, 340px); padding: 1.5rem 1.6rem 1.55rem; border-top: 3px solid var(--accent); box-shadow: 0 22px 60px rgba(0,0,0,.38); }
.desk-card__kicker { color: rgba(20,20,20,.55); font-size: .58rem; }
.desk-card__line { color: rgba(20,20,20,.85); font-size: 1.02rem; line-height: 1.5; }
.desk-card__link { color: var(--ink); font-size: 1.2rem; letter-spacing: .03em; }
.desk-card__link--mail { color: rgba(20,20,20,.75); font-size: .95rem; }
.desk-card__x { color: rgba(20,20,20,.45); }
.desk-card__x:hover, .desk-card__x:focus-visible { color: var(--ink); }

/* ROUND 28 - hero CTA: float + glow */
.hero__cta .btn--solid {
  animation: cta-float 3.6s ease-in-out infinite, cta-glow 3.6s ease-in-out infinite;
  background: var(--accent); border-color: var(--accent);
}
@keyframes cta-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes cta-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,123,45,.0), 0 6px 22px rgba(201,123,45,.25); }
  50% { box-shadow: 0 0 0 7px rgba(201,123,45,.14), 0 14px 34px rgba(201,123,45,.45); }
}
@media (prefers-reduced-motion: reduce) { .hero__cta .btn--solid { animation: none; } }

/* ROUND 28 - statement video layer */
.statement--photo { overflow: hidden; }
.statement__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.statement--photo::before { z-index: 1; }
.statement--photo .shell { z-index: 2; }


/* ROUND 29 - scope the card grid to the catalogue; restore editorial rows elsewhere */
.fleet:not(.fleet--grid) { display: flex; flex-direction: column; gap: clamp(4rem, 9vw, 9rem); }
.fleet:not(.fleet--grid) .craft { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem); align-items: center; border: 0; border-radius: 0; background: none; overflow: visible; }
.fleet:not(.fleet--grid) .craft:nth-child(even) .craft__media { order: 2; }
.fleet:not(.fleet--grid) .craft__media { aspect-ratio: 4 / 3; border-radius: 10px !important; width: auto; }
.fleet:not(.fleet--grid) .craft__text { padding: 0; display: block; }
.fleet:not(.fleet--grid) .craft__name { font-size: inherit; }
@media (max-width: 900px) {
  .fleet:not(.fleet--grid) .craft { grid-template-columns: 1fr; gap: 2rem; }
  .fleet:not(.fleet--grid) .craft:nth-child(even) .craft__media { order: 0; }
}

/* ROUND 29 - compact masthead: smaller controls beside the wordmark */
.mast-cta { font-size: .58rem !important; padding: .62rem 1.1rem !important; letter-spacing: .18em; }
.mast-link { font-size: .56rem !important; }
.masthead { gap: 1rem; }
.masthead__left, .masthead__right { gap: clamp(.6rem, 1.2vw, 1.1rem); }
.curpick-box { padding: .42rem .75rem; gap: .4rem; }
.curpick-box__label { font-size: .5rem; }
.curpick-box .curpick { font-size: .58rem; }
.wordmark__logo,
.masthead .wordmark__logo,
body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: clamp(22px, 2vw, 32px) !important; }
.masthead[data-stuck="true"] .wordmark__logo { height: clamp(20px, 1.8vw, 28px) !important; }

/* ROUND 29 - hero CTA: white bold text */
.hero__cta .btn--solid { color: var(--hull) !important; font-weight: 800 !important; letter-spacing: .3em; }

/* ROUND 29 - yacht pages: centred, quieter layout */
.yachtpage .vhero__body { text-align: center; }
.yachtpage .vhero__logo { margin-inline: auto; }
.yachtpage .band__head { display: block; text-align: center; max-width: 70ch; margin-inline: auto; }
.yachtpage .band__head .lede { margin: 1.3rem auto 0; }
.yachtpage .display--section { margin-inline: auto; }
.yachtpage .display--section br { display: none; }
.yachtpage .flagship__stats { justify-content: center; text-align: center; }
.yachtpage .band > .shell > .lede { margin-inline: auto; text-align: center; max-width: 62ch !important; }
.yachtpage .craft__rate { text-align: center; }
.yachtpage .flagship__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem; }
.yachtpage .services { text-align: left; }
.yachtpage .fleet__note { text-align: center; margin-inline: auto; max-width: 80ch; }
.yachtpage .rates { margin-inline: auto; }
.yachtpage .powered__inner { text-align: center; }

/* ================= ROUND 31/34/35 — ACCENT SCHEME =================
   R35: teal retuned lighter, brighter, bluer: #00A79D -> #FF8000.
   Champagne/brass var(--accent-pale) remains the secondary on dark surfaces.
   --accent-ink is the text colour ON accent fills (white washes out on the
   brighter teal); --accent-tint is the faded translucent teal for encasings. */
:root { --accent: #1EC8D8; --accent-2: var(--accent-pale); --accent-ink: var(--ink);
        --accent-tint: rgba(30, 200, 216, 0.07); --accent-line: rgba(30, 200, 216, 0.35); }

/* dark-surface accents go champagne so they stay legible */
.masthead .nav a:hover, .masthead .nav a:focus-visible,
.foot a:hover, .foot a:focus-visible,
.foot--grand .foot__col a:hover, .foot--grand .foot__col a:focus-visible,
.foot__contact-line:hover, .foot__contact-line:focus-visible,
.wmap__close:hover,
.band--deep .btn:hover, .band--deep .btn:focus-visible,
.band--deep .textlink:hover, .band--deep .textlink:focus-visible,
.spotlight .btn:not(.btn--solid):hover { color: var(--accent-2) !important; border-bottom-color: var(--accent-2) !important; }
.band--deep .btn--solid:hover, .band--deep .btn--solid:focus-visible,
.spotlight .btn--solid:hover { background: var(--accent-2) !important; border-color: var(--accent-2) !important; color: var(--ink) !important; }
.seasoncard__months { color: var(--accent-2); }
.wmap__dot span { background: var(--accent-2) !important; }
@keyframes wpulse {
  0% { box-shadow: 0 0 0 0 rgba(169, 233, 239,.55); }
  70% { box-shadow: 0 0 0 12px rgba(169, 233, 239,0); }
  100% { box-shadow: 0 0 0 0 rgba(169, 233, 239,0); }
}
/* champagne hairline detailing on light surfaces */
.gpost__body blockquote { border-left-color: var(--accent-2); }
.desk-card { border-top-color: var(--accent) !important; }
.craft__tag { border-bottom: 2px solid var(--accent-2); }

/* ROUND 31 — catalogue grid: three to a row on desktop, explicit and scoped */
@media (min-width: 1101px) {
  .fleet.fleet--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ROUND 31 — hero duo: each half of the sentence holds its own single line */
.hero--intro .hero__head--duo { max-width: none; }
.hero--intro .hero__head--duo em { display: block; margin-top: .35em; }
@media (min-width: 761px) {
  .hero--intro .hero__head--duo { font-size: clamp(1.1rem, 2.55vw, 2.6rem); white-space: nowrap; }
  .hero--intro .hero__head--duo em { font-size: .99em; }
}

/* ROUND 31 — yacht pages: hairline spec list replaces the numbered grid */
.yachtpage .display--section { font-size: clamp(1.45rem, 2.6vw, 2.4rem); }
.yachtpage .flagship__stats { color: var(--ink); }
.yachtpage .services { display: block; border-top: 1px solid var(--rule); }
.yachtpage .service { display: flex; align-items: baseline; gap: 1rem; padding: .95rem .1rem; border-bottom: 1px solid var(--rule); background: none; }
.yachtpage .service__no { display: none; }
.yachtpage .service__name { font-family: var(--body); font-size: .72rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; margin: 0; color: var(--ink); }
.yachtpage .vhero__name--text { position: relative; clip: auto; width: auto; height: auto; overflow: visible;
  font-size: clamp(2.2rem, 6vw, 4.6rem); letter-spacing: .12em; }

/* ROUND 31 — on-film click-to-play embed */
.film { position: relative; aspect-ratio: 16/9; border-radius: 12px; overflow: hidden; background: var(--ink); }
.film__poster { position: absolute; inset: 0; background-size: cover; background-position: center; filter: saturate(.96); transition: transform .6s ease; }
.film:hover .film__poster { transform: scale(1.02); }
.film__scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,12,20,.55), rgba(8,12,20,.05) 55%); }
.film__play { position: absolute; inset: 0; margin: auto; width: 84px; height: 84px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.7); background: rgba(8,12,20,.35); color: var(--hull); cursor: pointer;
  display: flex; align-items: center; justify-content: center; transition: background .3s ease, border-color .3s ease; }
.film__play svg { width: 26px; height: 26px; display: block; margin-left: 4px; }
.film__play:hover { background: var(--accent); border-color: var(--accent); }
.film__cap { position: absolute; left: 1.4rem; bottom: 1.1rem; color: rgba(255,255,255,.85);
  font-size: .58rem; letter-spacing: .3em; text-transform: uppercase; font-weight: 700; }
.film iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ROUND 31 — newsletter popup */
.nlpop { position: fixed; inset: 0; z-index: 90; display: flex; align-items: center; justify-content: center; padding: 1.2rem; }
.nlpop[hidden] { display: none; }
.nlpop__veil { position: absolute; inset: 0; background: rgba(8,12,20,.55); backdrop-filter: blur(3px); }
.nlpop__card { position: relative; z-index: 2; width: min(92vw, 520px); background: #FFFDF8; color: var(--ink);
  border-radius: 14px; padding: clamp(1.8rem, 4vw, 2.8rem); text-align: center;
  border-top: 3px solid var(--accent); box-shadow: 0 30px 80px rgba(8,12,20,.45); }
.nlpop__kicker { font-size: .58rem; letter-spacing: .34em; text-transform: uppercase; font-weight: 700; color: var(--accent-2); margin: 0 0 .9rem; }
.nlpop__head { font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  font-size: clamp(1.3rem, 3vw, 1.8rem); line-height: 1.15; margin: 0 0 .4rem; }
.nlpop__head em { font-family: var(--serif); font-style: italic; font-weight: 500; text-transform: none; letter-spacing: .01em; }
.nlpop__copy { font-size: .86rem; line-height: 1.65; color: rgba(20,20,20,.72); margin: 0 0 1.5rem; }
.nlpop__row { display: flex; gap: .6rem; }
.nlpop__row input { flex: 1; min-width: 0; padding: .85rem 1.1rem; border: 1px solid rgba(20,20,20,.25); border-radius: 999px;
  font-family: var(--body); font-size: .9rem; background: var(--hull); color: var(--ink); }
.nlpop__row input:focus { outline: none; border-color: var(--accent); }
.nlpop__row .btn--solid { white-space: nowrap; }
.nlpop__fine { font-size: .62rem; letter-spacing: .04em; color: rgba(20,20,20,.45); margin: 1.1rem 0 0; }
.nlpop__close { position: absolute; top: .8rem; right: 1rem; background: none; border: 0; font-size: 1.5rem;
  line-height: 1; color: rgba(20,20,20,.45); cursor: pointer; padding: .3rem; }
.nlpop__close:hover { color: var(--accent); }
.nlpop__done { font-family: var(--serif); font-style: italic; font-size: 1.1rem; margin: 1rem 0 0; color: var(--accent); }
@media (max-width: 540px) { .nlpop__row { flex-direction: column; } }
@media (prefers-reduced-motion: no-preference) {
  .nlpop__card { animation: nlin .5s ease both; }
  @keyframes nlin { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}

/* ROUND 31b — yacht page stats inherit ink on ivory pages (beats the var(--hull) from the dark flagship band) */
.yachtpage .flagship__stat .stat__value { color: var(--ink); }
.yachtpage .flagship__stat .stat__label { color: rgba(20,20,20,.55); }
/* newsletter popup above the direct-line card; two-line lockup */
.nlpop { z-index: 240; }
.nlpop__head em { display: block; }

/* ROUND 31c — kill the amber CTA glow (float stays, shadow goes neutral) */
.hero__cta .btn--solid { animation: cta-float 3.6s ease-in-out infinite; box-shadow: 0 10px 28px rgba(8,12,20,.28); }
@keyframes cta-glow { 0%, 100% { box-shadow: none; } 50% { box-shadow: none; } }

/* ROUND 31c — currency picker: whole pill is the hit target */
.curpick-box { position: relative; }
.curpick-box .curpick {
  position: absolute; inset: 0; width: 100%; height: 100%;
  opacity: 0; cursor: pointer; z-index: 2; font-size: 16px; padding: 0 !important;
}
.curpick-box__val { font-family: var(--body); font-size: .62rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase; color: var(--hull); }

/* ================= ROUND 32 — DENSITY + CATALOGUE PAGINATION ================= */
/* catalogue cards: name front and centre, type pill top-right, compare top-left */
.cw__type { position: absolute; top: .95rem; right: .95rem; z-index: 3;
  font-family: var(--body); font-size: .56rem; font-weight: 700; letter-spacing: .26em;
  text-transform: uppercase; color: var(--hull); border: 1px solid rgba(255,255,255,.55);
  border-radius: 999px; padding: .42rem .8rem .38rem; background: rgba(8,12,20,.35); backdrop-filter: blur(4px); }
.cw__cmp { left: .95rem; right: auto; }
.craft.cw .craft__tag { display: none; }

/* pager */
.pager { display: flex; align-items: center; justify-content: center; gap: .5rem; margin: clamp(1.8rem, 3.5vw, 2.8rem) 0 0; }
.pager__btn, .pager__num { font-family: var(--body); font-size: .72rem; font-weight: 700; letter-spacing: .12em;
  min-width: 2.4rem; height: 2.4rem; padding: 0 .6rem; border-radius: 999px; border: 1px solid rgba(20,20,20,.25);
  background: none; color: var(--ink); cursor: pointer; transition: border-color .25s, background .25s, color .25s; }
.pager__nums { display: inline-flex; gap: .5rem; }
.pager__btn:hover, .pager__num:hover { border-color: var(--accent); color: var(--accent); }
.pager__num.is-active { background: var(--ink); border-color: var(--ink); color: var(--hull); }

/* yacht pages: tighter vertical rhythm, no dead bands */
.yachtpage .band { padding-block: clamp(2.4rem, 5vw, 4.2rem); }
.yachtpage .band__head { margin-bottom: clamp(1.4rem, 3vw, 2.4rem); }
.yachtpage .flagship__stats { margin: 0 0 1.6rem; gap: 1.8rem 2.8rem; }
.yachtpage .ypage-body { margin: 0 auto 1.8rem; }
.yachtpage .ypage-inclusions { margin: 0 auto clamp(1.6rem, 3vw, 2.4rem); max-width: 900px; }
.yachtpage .ypage-inclusions .eyebrow { margin-bottom: .9rem; }
.yachtpage .services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.6rem;
  border-top: 1px solid var(--rule); text-align: left; }
.yachtpage .service { display: flex; align-items: baseline; gap: 1rem; padding: .75rem .1rem; border-bottom: 1px solid var(--rule); background: none; }
.yachtpage .service__no { display: none; }
.yachtpage .service__name { font-family: var(--body); font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; margin: 0; color: var(--ink); }
@media (max-width: 700px) { .yachtpage .services { grid-template-columns: 1fr; } }
.yachtpage .fleet__note { margin-top: 1rem; }
.yachtpage .flagship__actions { margin-top: .4rem; }
.yachtpage .vhero { min-height: 62svh; }
.yachtpage .ypage-film .band__head { margin-bottom: 1.4rem; }

/* denser gallery + capped view */
.yachtpage .gal { grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 8px; }
.gal--capped .gal__tile:nth-child(n+13) { display: none; }
.gal-more { text-align: center; margin-top: 1.6rem; }

/* ================= ROUND 33 — THE COMPOSER (builder experience) ================= */
.bx { background: var(--ink); color: var(--hull); padding: clamp(1.6rem, 3vw, 2.8rem) 0 clamp(2.4rem, 4vw, 4rem); }
.bx-shell { width: min(1360px, 94vw); margin-inline: auto; }
.bx-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.4rem 3rem; margin-bottom: clamp(1.4rem, 2.6vw, 2.2rem); }
.bx-eyebrow { color: var(--accent-2); }
.bx-title { font-family: var(--display); font-stretch: 116%; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  font-size: clamp(1.8rem, 3.6vw, 3rem); line-height: 1.05; margin: 0; color: var(--hull); }
.bx-title em { font-family: var(--serif); font-style: italic; font-weight: 500; text-transform: none; letter-spacing: .01em; color: var(--accent-2); }
.bx-progress { min-width: min(420px, 100%); }
.bx-progress__count { font-family: var(--body); font-size: .62rem; font-weight: 700; letter-spacing: .3em; color: rgba(255,255,255,.55); }
.bx-progress__track { height: 3px; background: rgba(255,255,255,.14); border-radius: 999px; margin: .55rem 0 .6rem; overflow: hidden; }
.bx-progress__fill { height: 100%; width: 16.6%; border-radius: 999px; background: linear-gradient(90deg, var(--accent-2), var(--accent)); transition: width .5s cubic-bezier(.2,.7,.2,1); }
.bx-progress__labels { display: flex; justify-content: space-between; list-style: none; margin: 0; padding: 0; }
.bx-progress__labels li { font-family: var(--body); font-size: .54rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.35); transition: color .3s; }
.bx-progress__labels li.is-active { color: var(--accent-2); }

.bx-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .8fr); gap: clamp(1.4rem, 2.6vw, 2.6rem); align-items: start; }
@media (max-width: 1000px) { .bx-grid { grid-template-columns: 1fr; } .bx-rail { position: static; } }

.bx-step { display: none; border: 0; padding: 0; margin: 0; }
.bx-step.is-active { display: block; animation: bxin .45s ease both; }
@keyframes bxin { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .bx-step.is-active { animation: none; } }
.bx-q { font-family: var(--display); font-stretch: 116%; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  font-size: clamp(1.15rem, 2vw, 1.6rem); color: var(--hull); margin: 0 0 1.1rem; padding: 0; }
.bx-q em { font-family: var(--serif); font-style: italic; font-weight: 500; text-transform: none; color: var(--accent-2); }

.bx-groupline { font-family: var(--body); font-size: .56rem; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: rgba(255,255,255,.42); margin: 1.1rem 0 .55rem; }
.bx-groupline:first-child { margin-top: 0; }
.bx-tilerow { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: .55rem; }
.bx-tilerow--five { grid-template-columns: repeat(5, minmax(0,1fr)); }
@media (max-width: 1250px) { .bx-tilerow { grid-template-columns: repeat(4, minmax(0,1fr)); } .bx-tilerow--five { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 640px) { .bx-tilerow, .bx-tilerow--five { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.bx-tile { position: relative; display: block; border-radius: 10px; overflow: hidden; cursor: pointer; aspect-ratio: 4 / 3.4;
  outline: 1px solid rgba(255,255,255,.1); transition: transform .3s ease, outline-color .3s ease; }
.bx-tile:hover { transform: translateY(-3px); outline-color: rgba(255,255,255,.35); }
.bx-tile input { position: absolute; opacity: 0; pointer-events: none; }
.bx-tile__img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .5s ease, filter .4s ease; filter: saturate(.92) brightness(.86); }
.bx-tile:hover .bx-tile__img { transform: scale(1.05); filter: saturate(1) brightness(.95); }
.bx-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,9,14,.82) 0%, rgba(6,9,14,.05) 55%); }
.bx-tile__name { position: absolute; left: .7rem; right: .7rem; bottom: 1.35rem; z-index: 2;
  font-family: var(--display); font-stretch: 116%; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; color: var(--hull); }
.bx-tile__tag { position: absolute; left: .7rem; bottom: .55rem; z-index: 2;
  font-family: var(--body); font-size: .5rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.bx-tile input:checked ~ .bx-tile__img { filter: saturate(1.05) brightness(1); }
.bx-tile:has(input:checked) { outline: 2px solid var(--accent-2); box-shadow: 0 10px 30px rgba(169, 233, 239,.18); }
.bx-tile:has(input:checked)::before { content: "\2713"; position: absolute; top: .55rem; right: .55rem; z-index: 3;
  width: 1.5rem; height: 1.5rem; border-radius: 999px; background: var(--accent-2); color: #14100a;
  font-size: .8rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }

.bx-hint { font-family: var(--serif); font-style: italic; font-size: 1rem; color: rgba(255,255,255,.75); margin: -.3rem 0 1rem; }
.bx-hint strong { color: var(--accent-2); font-weight: 600; }
.bx-sublabel { font-family: var(--body); font-size: .56rem; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: rgba(255,255,255,.42); margin: 1.2rem 0 .55rem; }
.bx-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.bx-chip { cursor: pointer; }
.bx-chip input { position: absolute; opacity: 0; pointer-events: none; }
.bx-chip span { display: inline-block; padding: .6rem 1.05rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.22);
  font-family: var(--body); font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.8);
  transition: border-color .25s, background .25s, color .25s; }
.bx-chip:hover span { border-color: rgba(255,255,255,.55); color: var(--hull); }
.bx-chip:has(input:checked) span { background: var(--accent-2); border-color: var(--accent-2); color: #14100a; }

.bx-stepper { display: inline-flex; align-items: center; gap: .8rem; }
.bx-stepper__btn { width: 3rem; height: 3rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.3); background: none; color: var(--hull);
  font-size: 1.3rem; cursor: pointer; transition: border-color .25s, background .25s, color .25s; }
.bx-stepper__btn:hover { background: var(--accent-2); border-color: var(--accent-2); color: #14100a; }
.bx-stepper input { width: 5.2rem; text-align: center; background: none; border: 0; border-bottom: 1px solid rgba(255,255,255,.3);
  color: var(--hull); font-family: var(--display); font-stretch: 116%; font-weight: 700; font-size: 2.2rem; padding: .2rem 0; }
.bx-stepper input:focus { outline: none; border-bottom-color: var(--accent-2); }
.bx-stepper input::-webkit-outer-spin-button, .bx-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; }

.bx-budget { display: grid; gap: .55rem; max-width: 640px; }
.bx-band { position: relative; display: block; border: 1px solid rgba(255,255,255,.16); border-radius: 10px; padding: .95rem 1.1rem; cursor: pointer; overflow: hidden; transition: border-color .25s; }
.bx-band:hover { border-color: rgba(255,255,255,.45); }
.bx-band input { position: absolute; opacity: 0; pointer-events: none; }
.bx-band__bar { position: absolute; left: 0; top: 0; bottom: 0; width: var(--w, 30%); background: linear-gradient(90deg, rgba(169, 233, 239,.16), rgba(169, 233, 239,.02)); transition: opacity .3s; }
.bx-band__label { position: relative; z-index: 2; font-family: var(--body); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--hull); }
.bx-band__label i { font-style: normal; font-weight: 500; letter-spacing: .1em; color: rgba(255,255,255,.5); margin-left: .5rem; }
.bx-band:has(input:checked) { border-color: var(--accent-2); }
.bx-band:has(input:checked) .bx-band__bar { background: linear-gradient(90deg, rgba(169, 233, 239,.38), rgba(169, 233, 239,.06)); }

.bx-recap { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 1.2rem; }
.bx-recap span { font-family: var(--body); font-size: .6rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--accent-2); border: 1px solid rgba(169, 233, 239,.45); border-radius: 999px; padding: .45rem .85rem; }
.bx-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem 1.4rem; max-width: 680px; }
.bx-field--wide { grid-column: 1 / -1; }
.bx-field label { display: block; font-family: var(--body); font-size: .56rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: rgba(255,255,255,.5); margin-bottom: .4rem; }
.bx-field input, .bx-field textarea { width: 100%; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.18); border-radius: 8px;
  color: var(--hull); font-family: var(--body); font-size: .9rem; padding: .75rem .9rem; }
.bx-field input:focus, .bx-field textarea:focus { outline: none; border-color: var(--accent-2); }
@media (max-width: 640px) { .bx-fields { grid-template-columns: 1fr; } }

.bx-nav { display: flex; gap: .8rem; align-items: center; margin-top: 1.6rem; }
.bx-btn { font-family: var(--body); font-size: .66rem; font-weight: 800; letter-spacing: .28em; text-transform: uppercase;
  padding: .95rem 2rem; border-radius: 999px; border: 0; cursor: pointer; background: var(--accent-2); color: #14100a; transition: filter .25s, background .25s, color .25s; }
.bx-btn:hover { filter: brightness(1.08); }
.bx-btn--ghost { background: none; border: 1px solid rgba(255,255,255,.3); color: var(--hull); }
.bx-btn--ghost:hover { border-color: var(--hull); filter: none; }
.bx-btn--send { background: var(--accent); color: var(--hull); }
.bx-fine { color: rgba(255,255,255,.45); margin-top: 1rem; }

.bx-rail { position: sticky; top: 90px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.1); border-radius: 14px;
  padding: 1.4rem 1.4rem 1.2rem; }
.bx-rail__kicker { font-family: var(--body); font-size: .56rem; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: var(--accent-2); margin: 0 0 .7rem; }
.bx-rail__count { font-family: var(--display); font-stretch: 116%; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  color: var(--hull); margin: 0 0 .6rem; font-size: .8rem; }
.bx-rail__count strong { font-size: 2.6rem; line-height: 1; display: inline-block; margin-right: .45rem; color: var(--hull); }
.bx-rail__meter { height: 3px; background: rgba(255,255,255,.12); border-radius: 999px; overflow: hidden; margin-bottom: 1.1rem; }
.bx-rail__meterfill { height: 100%; width: 100%; background: linear-gradient(90deg, var(--accent-2), var(--accent)); transition: width .5s cubic-bezier(.2,.7,.2,1); }
.bx-matches { display: grid; gap: .55rem; margin-bottom: 1.2rem; }
.bx-match { display: grid; grid-template-columns: 92px 1fr; gap: .8rem; align-items: center; text-decoration: none;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 10px; overflow: hidden; transition: border-color .25s, transform .25s; animation: bxin .4s ease both; }
.bx-match:hover { border-color: var(--accent-2); transform: translateY(-2px); }
.bx-match__img { aspect-ratio: 4/3; background-size: cover; background-position: center; }
.bx-match__name { display: block; font-family: var(--display); font-stretch: 116%; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .74rem; color: var(--hull); }
.bx-match__meta { display: block; font-family: var(--body); font-size: .58rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.55); margin-top: .25rem; }
.bx-match__none { font-family: var(--serif); font-style: italic; color: rgba(255,255,255,.6); font-size: .92rem; margin: 0; }
.bx-ledger { margin: 0 0 .9rem; border-top: 1px solid rgba(255,255,255,.1); }
.bx-ledger div { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.bx-ledger dt { font-family: var(--body); font-size: .54rem; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; color: rgba(255,255,255,.4); }
.bx-ledger dd { margin: 0; font-family: var(--body); font-size: .66rem; font-weight: 600; letter-spacing: .06em; color: var(--hull); text-align: right; }
.bx-rail__fine { color: rgba(255,255,255,.4); margin: 0; }

/* ROUND 33b — breathing room above the Composer (fixed masthead clearance + gap) */
.bx { padding-top: clamp(7rem, 10vw, 8.75rem); }

/* ROUND 33b — mobile masthead: three clean zones, nothing overlaps */
@media (max-width: 700px) {
  .masthead { padding: .7rem .9rem !important; gap: .55rem !important; }
  .masthead__primary { display: none; }
  .wordmark { flex: 1 1 auto; justify-content: center; min-width: 0; overflow: hidden; }
  .wordmark__logo,
  .masthead[data-stuck="true"] .wordmark__logo,
  body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: 19px !important; width: auto; }
  .masthead__right { flex: 0 0 auto; gap: .4rem !important; }
  .masthead__right .mast-cta:not(.mast-cta--build) { display: none; } /* Enquire lives in the drawer + footer */
  .mast-cta--build { font-size: .48rem !important; letter-spacing: .12em !important; padding: .55rem .8rem !important; white-space: nowrap; }
  .curpick-box { padding: .45rem .65rem !important; gap: .3rem !important; }
  .curpick-box__label { display: none; }
  .curpick-box__val { font-size: .56rem; }
  .curpick-box__chev { width: 8px; }
}

/* ================= ROUND 33c — SITEWIDE DENSITY ================= */
/* The scroll was the complaint: band rhythm roughly halved everywhere. */
:root { --band: clamp(3rem, 7vh, 5.5rem); }
.band__head { margin-bottom: clamp(1.6rem, 3vw, 2.6rem); }
.editorial__rule { margin-bottom: 1.2rem; }
.editorial__copy { margin-top: 1.2rem; }
/* R35: hero restored to full viewport (92svh left a strip of the next band showing) */
.foot__concierge-inner { padding-block: clamp(2.2rem, 4.5vw, 3.6rem); }
.fleet__more, .journal__more { margin-top: clamp(1.4rem, 2.5vw, 2rem); }

/* homepage featured fleet: encased cards, tight rhythm */
.fleet:not(.fleet--grid) { gap: clamp(1.4rem, 2.6vw, 2.2rem); }
.fleet:not(.fleet--grid) .craft {
  background: #F8F6F1; border: 1px solid var(--rule); border-radius: 16px;
  padding: clamp(1.1rem, 2vw, 1.8rem); gap: clamp(1.4rem, 3vw, 3rem); overflow: hidden;
}
.fleet:not(.fleet--grid) .craft__media { border-radius: 10px !important; }
.fleet:not(.fleet--grid) .craft__text { padding: .4rem .4rem .4rem 0; }
.fleet:not(.fleet--grid) .craft__pitch { margin-block: .7rem .9rem; }
.fleet:not(.fleet--grid) .craft__stats { margin-block: .9rem; }
.craft__logo { max-height: 52px; width: auto; }
@media (max-width: 900px) {
  .fleet:not(.fleet--grid) .craft { grid-template-columns: 1fr; padding: 1rem; }
  .fleet:not(.fleet--grid) .craft__text { padding: .4rem .2rem; }
}

/* ROUND 34 — footer primary button was ink-on-ink; accent fill so it reads */
.foot .btn--solid, .foot--grand .btn--solid {
  background: var(--accent) !important; border-color: var(--accent) !important; color: var(--hull) !important;
}
.foot .btn--solid:hover, .foot--grand .btn--solid:hover {
  background: var(--accent-2) !important; border-color: var(--accent-2) !important; color: var(--ink) !important;
}

/* ================= ROUND 35 — HERO, TEAL RETUNE, FLEET ENCASING ================= */
/* scroll cue retired */
.hero__cue { display: none !important; }

/* ink text wherever the bright teal fills — white washes out on #FF8000 */
.mast-cta--build,
.mast-cta:hover, .mast-cta:focus-visible,
.btn--solid:hover, .btn--solid:focus-visible,
.hero__cta .btn--solid,
.flagship .btn--solid:hover, .flagship .btn--solid:focus-visible,
.bx-btn--send,
.film__play:hover { color: var(--accent-ink) !important; }
.foot .btn--solid, .foot--grand .btn--solid { color: var(--accent-ink) !important; }
::selection { background: var(--accent); color: var(--accent-ink); }

/* featured fleet encasing: a super-faded translucent wash of the accent teal */
.fleet:not(.fleet--grid) .craft {
  background: var(--accent-tint);
  border: 1px solid var(--accent-line);
}

/* the two fleet follow-on links become real pill buttons */
.fleet__more .btn {
  display: inline-block; border: 1.5px solid var(--accent); border-radius: 999px;
  padding: .9rem 2rem; border-bottom-color: var(--accent);
  letter-spacing: .14em; text-transform: uppercase; font-size: .82rem;
  transition: background .25s ease, color .25s ease;
}
.fleet__more .btn::after { content: none; }
.fleet__more .btn:first-child { background: var(--accent); color: var(--accent-ink); }
.fleet__more .btn:first-child:hover { background: var(--accent-ink); border-color: var(--accent-ink); color: var(--hull); }
.fleet__more .btn:last-child { background: transparent; color: var(--ink); }
.fleet__more .btn:last-child:hover { background: var(--accent); color: var(--accent-ink); }

/* guide article pages (destination guides) */
.gd__figure { margin: clamp(1.6rem, 3.5vw, 2.6rem) 0; }
.gd__figure img { width: 100%; height: auto; border-radius: 12px; display: block; }
.gd__figure figcaption { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(20,20,20,.55); margin-top: .6rem; }
.gd__cta { margin-top: clamp(2rem, 4vw, 3rem); padding: clamp(1.6rem, 3vw, 2.4rem); background: var(--accent-tint); border: 1px solid var(--accent-line); border-radius: 16px; text-align: center; }
.gd__cta .btn--pill { display: inline-block; background: var(--accent); color: var(--accent-ink); border-radius: 999px; padding: .95rem 2.2rem; letter-spacing: .14em; text-transform: uppercase; font-size: .84rem; border-bottom: 0; }
.gd__cta .btn--pill::after { content: none; }
.gd__cta .btn--pill:hover { background: var(--accent-ink); color: var(--hull); }
/* R35b: pills never underline */
.fleet__more .btn, .gd__cta .btn--pill { text-decoration: none !important; }
.gd__cta .btn--pill { border: 0; }

/* ================= ROUND 36 — DARK-PILL VISIBILITY, ONE-LINE PILLS,
   MOBILE MAP SHEET, INTEGRATED MOSAIC, CENTRED FOOTER CTAS ================= */

/* 1. solid pills on dark surfaces were ink-on-ink: accent fill where truly dark
   (NOT the generic .band--deep: some of those render light with white cards) */
.spotlight .btn--solid,
.wmap__panel .btn--solid, .wmap-band .btn--solid,
.bx .btn--solid,
.foot .btn--solid, .foot--grand .btn--solid {
  background: var(--accent) !important; border-color: var(--accent) !important;
  color: var(--accent-ink) !important;
}
/* hover stays champagne via the R31 dark-surface rules */

/* 2. pill buttons never break to two lines */
.fleet__more .btn, .gd__cta .btn--pill, .spotlight .btn,
.wmap__panel .btn, .foot__concierge-cta .btn { white-space: nowrap; }
@media (max-width: 480px) {
  .fleet__more .btn, .gd__cta .btn--pill, .spotlight .btn--solid {
    font-size: .7rem; letter-spacing: .1em; padding: .85rem 1.4rem;
  }
}

/* 3. world map on mobile: panel becomes a solid bottom sheet, so the pin
   field never bleeds through and nothing overlaps */
@media (max-width: 760px) {
  .wmap__panel {
    position: fixed; left: 0; right: 0; bottom: 0; top: auto;
    width: 100%; margin: 0; z-index: 235;
    background: #0A0A0A; border: 0; border-top: 1px solid rgba(255,255,255,.14);
    border-radius: 18px 18px 0 0;
    max-height: 82svh; overflow: auto;
    padding: 1.5rem 1.3rem calc(1.8rem + env(safe-area-inset-bottom));
    box-shadow: 0 -14px 44px rgba(0,0,0,.55);
  }
  .wmap__close { right: 1rem; top: .9rem; font-size: 1.7rem; padding: .3rem .5rem; }
  .wmap__panel .destcard__actions { display: flex; flex-direction: column; gap: .9rem; align-items: flex-start; }
  .wmap__kicker { padding-right: 3rem; }
}

/* 4. the catalogue-in-photographs band: seamless full-bleed imagery,
   no frame, no gaps, no dark mat */
.mosaic { gap: 0; padding: 0; background: transparent; grid-auto-rows: clamp(190px, 24vw, 360px); }
.mosaic__tile { border-radius: 0; }
@media (max-width: 760px) { .mosaic { grid-auto-rows: clamp(150px, 34vw, 240px); } }

/* 5. footer enquiry desk on mobile: centre the pill and the link under it */
@media (max-width: 760px) {
  .foot__concierge-inner { text-align: center; justify-content: center; }
  .foot__concierge-contact { text-align: center !important; }
  .foot__concierge-cta { flex-direction: column; align-items: center; justify-content: center !important; gap: 1rem; }
}

/* ROUND 36b — catalogue mobile dropdown, mosaic fill, CTA duos, destinations head */
.destfilter__select { display: none; position: relative; align-items: center;
  border: 1px solid var(--rule); border-radius: 999px; padding: 0 1.1rem; background: var(--hull); }
.destfilter__select select { appearance: none; -webkit-appearance: none; border: 0; background: transparent;
  font-family: var(--body); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase;
  padding: .85rem 1.6rem .85rem 0; width: 100%; color: var(--ink); }
.destfilter__select svg { width: 10px; height: 6px; position: absolute; right: 1.1rem; pointer-events: none; }
@media (max-width: 700px) {
  .destfilter .destfilter__chip { display: none; }
  .destfilter__select { display: flex; width: 100%; }
}

/* mosaic: mobile pattern that never leaves a hole */
@media (max-width: 760px) {
  .mosaic .mosaic__tile { grid-column: auto; grid-row: auto; }
  .mosaic .mosaic__tile:nth-child(3n+1) { grid-column: span 2; }
  .mosaic .mosaic__tile:nth-child(3n+2):last-child { grid-column: span 2; }
}

/* paired CTAs: breathe on desktop, centred stack on mobile */
.cta-duo { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; margin-top: .6rem; }
@media (max-width: 700px) {
  .cta-duo { flex-direction: column; align-items: center; gap: 1.05rem; text-align: center; margin-top: 1rem; }
}

/* generic accent pill (destinations head, reusable) */
.btn--pill-accent { display: inline-block; background: var(--accent); color: var(--accent-ink);
  border-radius: 999px; padding: .95rem 2.2rem; letter-spacing: .14em; text-transform: uppercase;
  font-family: var(--body); font-size: .84rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.btn--pill-accent:hover, .btn--pill-accent:focus-visible { background: var(--accent-ink); color: var(--hull); }
.band__head-cta { margin-top: .4rem; }

/* destinations: no dead air above the title on phones */
@media (max-width: 760px) {
  section#destinations.band { padding-top: clamp(1.2rem, 5vw, 2.4rem); }
}
/* R36b: first band under the masthead loses its dead air on phones */
@media (max-width: 760px) { main > .band:first-child { padding-top: clamp(1.6rem, 6vw, 3rem); } }

/* ================= ROUND 37 — DESTINATIONS PAGE REBUILT ================= */
/* the old destgrid had two competing definitions; restore stacked rows for
   the sections that still use it (pairings) */
.destgrid { grid-template-columns: 1fr !important; }

/* dx: the destination index cards, same encased language as the homepage fleet */
.dx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: clamp(1.3rem, 2.4vw, 2rem); }
.dx-card { background: var(--accent-tint); border: 1px solid var(--accent-line); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.dx-card__photo { display: block; aspect-ratio: 16 / 10; background-size: cover; background-position: center; transition: filter .4s ease; }
.dx-card__photo:hover { filter: saturate(1.06) brightness(1.04); }
.dx-card__body { padding: 1.15rem 1.25rem 1.35rem; display: flex; flex-direction: column; flex: 1; }
.dx-card__name { font-family: var(--display); font-weight: 700; font-size: 1.12rem; letter-spacing: .02em; margin: 0 0 .35rem; }
.dx-card__name a { color: var(--ink); text-decoration: none; }
.dx-card__name a:hover { color: var(--accent-ink); }
.dx-card__meta { font-family: var(--body); font-size: .6rem; letter-spacing: .24em; text-transform: uppercase; color: rgba(20,20,20,.5); margin: 0 0 .6rem; }
.dx-card__blurb { font-size: .92rem; line-height: 1.6; color: rgba(20,20,20,.72); margin: 0 0 1rem; }
.dx-card__links { margin: auto 0 0; display: flex; gap: 1.4rem; flex-wrap: wrap; }
.dx-card__links .textlink { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }

/* ================= ROUND 38 — WORLD MAP REBUILD ================= */
/* new self-generated dot map (exact equirectangular window: lon -170..190,
   lat 84..-72) — pin percentages are computed from real coordinates with the
   same projection, so map and pins can never drift again. */

/* pins: slightly larger hit area, teal pulse (kills the stale amber glow) */
.wmap__dot { width: 22px; height: 22px; margin: -11px 0 0 -11px; }
.wmap__dot span { width: 9px; height: 9px; margin: 6.5px; background: var(--accent) !important;
  animation: wpulse38 2.6s infinite; }
.wmap__dot:hover span, .wmap__dot.is-active span { background: var(--hull) !important; }
@keyframes wpulse38 {
  0% { box-shadow: 0 0 0 0 rgba(30, 200, 216,.5); }
  70% { box-shadow: 0 0 0 12px rgba(30, 200, 216,0); }
  100% { box-shadow: 0 0 0 0 rgba(30, 200, 216,0); }
}

/* panel: photo is a real <img> now (alt + explicit dims, no layout shift) */
.wmap__photo { display: none; width: 100%; height: auto; aspect-ratio: 16/9;
  object-fit: cover; background: #0A0A0A; margin: 0 0 1.2rem; opacity: 0;
  transition: opacity .45s ease; }
.wmap__photo.is-on { display: block; }
.wmap__photo.is-loaded { opacity: 1; }

/* panel rhythm: air between kicker/name/note/actions */
.wmap__panel { padding: 1.7rem 1.7rem 1.9rem; }
.wmap__close { width: 34px; height: 34px; border-radius: 50%; background: rgba(10,13,18,.55);
  display: flex; align-items: center; justify-content: center; line-height: 1;
  backdrop-filter: blur(4px); z-index: 2; }
.wmap__kicker { margin: 0 0 .65rem; }
.wmap__name { margin: 0 0 .8rem; }
.wmap__note { margin: 0 0 1.5rem; }

/* actions: solid pill, then quiet textlinks in a row — no more crammed pills */
.wmap__actions { display: flex; flex-direction: column; gap: 1.25rem; align-items: flex-start; }
.wmap__actions .btn--solid { width: 100%; text-align: center; }
.wmap__links { display: flex; flex-wrap: wrap; column-gap: 1.9rem; row-gap: 1rem; }
.wmap__links .textlink { color: rgba(255,255,255,.88); border-bottom-color: rgba(255,255,255,.35); }
.wmap__links .textlink:hover, .wmap__links .textlink:focus-visible {
  color: var(--accent); border-bottom-color: var(--accent); }
.tl-arrow { font-family: var(--body); }

@media (max-width: 760px) {
  .wmap__panel { padding: 1.7rem 1.5rem calc(2rem + env(safe-area-inset-bottom)); }
  .wmap__photo { margin-bottom: 1.35rem; }
  .wmap__actions { gap: 1.35rem; }
  .wmap__links { flex-direction: column; row-gap: 1.15rem; }
}

/* ---- R38 · newsletter band (homepage, below fleet pills) ---- */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.nlist { border-top: 1px solid var(--rule, rgba(20,20,20,.14)); padding-top: clamp(3.5rem, 7vh, 5.5rem); padding-bottom: clamp(3.5rem, 7vh, 5.5rem); }
.nlist__shell { max-width: 620px; text-align: center; }
.nlist__title { margin-bottom: 1.1rem; }
.nlist__lede { margin: 0 auto 2.2rem; }
.nlist__form { margin: 0 auto; }
.nlist__row { display: flex; gap: .9rem; justify-content: center; }
.nlist__input { flex: 1 1 auto; min-width: 0; padding: 1.02rem 1.3rem; font: inherit;
  font-size: .95rem; color: var(--ink); background: transparent;
  border: 1px solid rgba(20,20,20,.3); border-radius: 999px; outline: none;
  transition: border-color .3s ease; }
.nlist__input::placeholder { color: rgba(20,20,20,.45); }
.nlist__input:focus { border-color: var(--ink); }
.nlist__btn { flex: 0 0 auto; }
.nlist__fine { margin-top: 1.1rem; color: rgba(20,20,20,.55); }
.nlist__msg { margin-top: 1.4rem; font-size: .95rem; letter-spacing: .02em; }
.nlist__msg.is-err { color: #B4433A; }
@media (max-width: 560px) {
  .nlist__row { flex-direction: column; align-items: stretch; }
  .nlist__btn { width: 100%; }
}

/* ---- R38 · destinations rebuilt: immersive region bands ---- */
.dreg__hero { position: relative; background-size: cover; background-position: center;
  min-height: clamp(420px, 62vh, 640px); display: flex; align-items: flex-end; }
.dreg__scrim { position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(7,10,14,.28) 0%, rgba(7,10,14,.42) 45%, rgba(7,10,14,.82) 100%); }
.dreg__head { position: relative; z-index: 1; width: 100%;
  padding-top: clamp(6rem, 14vh, 9rem); padding-bottom: clamp(2.6rem, 6vh, 4rem); }
.dreg__head .eyebrow { color: rgba(255,255,255,.62); }
.dreg__head .display { color: var(--hull); margin-bottom: 1.1rem; }
.dreg__intro { max-width: 620px; font-size: clamp(1rem, 1.35vw, 1.15rem); line-height: 1.7;
  color: rgba(255,255,255,.88); margin: 0; }
.dreg__body { padding-top: clamp(3.4rem, 7vh, 5.5rem); }

/* feature: the one to book */
.dfeat { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(1.8rem, 4vw, 4rem); align-items: center; margin-bottom: clamp(3rem, 6vh, 4.5rem); }
.dfeat__photo { position: relative; display: block; aspect-ratio: 4/3;
  background-size: cover; background-position: center; }
.dfeat__name { margin: .65rem 0 1.1rem; }
.dfeat__vignette { font-size: 1rem; line-height: 1.75; margin: 0 0 1.9rem; }
.dfeat__actions { display: flex; flex-direction: column; gap: 1.15rem; align-items: flex-start; }
.dfeat__links { display: flex; flex-wrap: wrap; column-gap: 1.9rem; row-gap: .9rem; }

/* index rows: the rest of the region */
.dindex { border-top: 1px solid var(--rule); }
.dindex__label { font-family: var(--body); font-size: .6rem; letter-spacing: .3em;
  text-transform: uppercase; color: rgba(20,20,20,.5); margin: 1.6rem 0 .4rem; }
.band--hull .dindex__label { color: rgba(20,20,20,.5); }
.drow { display: grid; grid-template-columns: 92px minmax(0, 1fr) 150px auto;
  gap: clamp(1rem, 2.5vw, 2rem); align-items: center; padding: 1.15rem 0;
  border-bottom: 1px solid var(--rule); }
.drow__thumb { display: block; width: 92px; aspect-ratio: 4/3;
  background-size: cover; background-position: center;
  transition: transform .4s ease; }
.drow:hover .drow__thumb { transform: scale(1.05); }
.drow__name { font-family: var(--display); font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; font-size: 1rem; margin: 0 0 .3rem; }
.drow__name a { color: inherit; text-decoration: none; }
.drow__name a:hover { color: var(--accent); }
.drow__blurb { font-size: .88rem; line-height: 1.5; color: rgba(20,20,20,.65); margin: 0; }
.drow__season { font-family: var(--body); font-size: .68rem; letter-spacing: .16em;
  text-transform: uppercase; color: rgba(20,20,20,.55); margin: 0; }
.drow__go { display: flex; gap: 1.4rem; white-space: nowrap; }

@media (max-width: 900px) {
  .dfeat { grid-template-columns: 1fr; }
  .drow { grid-template-columns: 72px minmax(0, 1fr); }
  .drow__thumb { width: 72px; }
  .drow__season { grid-column: 2; }
  .drow__go { grid-column: 2; }
}

/* R38: band--hull strips .btn fills (line ~296); restore the ink pill for
   the destinations feature CTA on every band variant */
.dfeat__actions .btn--solid { background: var(--gold) !important; color: var(--hull) !important;
  border: 0; padding: 1.05rem 2.6rem; }
.dfeat__actions .btn--solid:hover, .dfeat__actions .btn--solid:focus-visible {
  background: var(--accent) !important; color: var(--accent-ink) !important; }
.dfeat__actions .btn--solid { white-space: nowrap; }
@media (max-width: 420px) {
  .dfeat__actions .btn--solid { font-size: .68rem; letter-spacing: .12em; padding: .95rem 1.6rem; }
}

/* ---- R38 · underway: live fleet chart ---- */
.uw { display: grid; grid-template-columns: minmax(0, 8.2fr) minmax(0, 3.8fr);
  gap: clamp(1.4rem, 3vw, 2.6rem); align-items: stretch; }
.uw__chart { position: relative; }
.uw__map { display: block; width: 100%; height: auto; }
.uw__markers { position: absolute; inset: 0; }
.uw__dot { position: absolute; width: 20px; height: 20px; margin: -10px 0 0 -10px;
  background: none; border: 0; padding: 0; cursor: pointer; pointer-events: auto; }
.uw__dot i { display: block; width: 8px; height: 8px; margin: 6px; border-radius: 50%;
  background: var(--accent-2); box-shadow: 0 0 8px rgba(169, 233, 239,.55); }
.uw__dot.is-underway i { background: var(--accent);
  box-shadow: 0 0 0 rgba(30, 200, 216,.5); animation: wpulse38 2.6s infinite; }
.uw__dot.is-hi i, .uw__dot:hover i { background: var(--hull); }
.uw__tag { position: absolute; left: 50%; bottom: calc(100% + 2px); transform: translateX(-50%);
  font-family: var(--body); font-size: .55rem; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(255,255,255,.85); background: rgba(10,13,18,.82); padding: .28rem .55rem;
  white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.uw__dot:hover .uw__tag, .uw__dot.is-hi .uw__tag { opacity: 1; }

.uw__manifest { display: flex; flex-direction: column; min-height: 0;
  border: 1px solid rgba(255,255,255,.14); background: rgba(10,13,18,.6);
  padding: 1.5rem 1.5rem 1.2rem; }
.uw__manifest-head { font-family: var(--body); font-size: .6rem; letter-spacing: .3em;
  text-transform: uppercase; color: rgba(255,255,255,.55); margin: 0 0 1rem; }
.uw__rows { overflow: auto; flex: 1 1 auto; min-height: 0; max-height: 460px;
  scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.25) transparent; }
.uw__row { display: flex; align-items: center; gap: .9rem; padding: .78rem .2rem;
  border-bottom: 1px solid rgba(255,255,255,.08); text-decoration: none; }
.uw__row:last-child { border-bottom: 0; }
.uw__row.is-hi { background: rgba(255,255,255,.05); }
.uw__row-dot { flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent-2); }
.uw__row-dot.is-underway { background: var(--accent); }
.uw__row-main { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: .18rem; }
.uw__row-name { font-family: var(--display); font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; font-size: .82rem; color: var(--hull); }
.uw__row-place { font-size: .78rem; color: rgba(255,255,255,.6); line-height: 1.35; }
.uw__row-go { color: rgba(255,255,255,.45); font-size: .95rem; transition: color .3s ease, transform .3s ease; }
.uw__row:hover .uw__row-go { color: var(--accent); transform: translateX(3px); }
.uw__stamp { font-size: .68rem; letter-spacing: .06em; color: rgba(255,255,255,.42);
  margin: 1rem 0 0; }

@media (max-width: 900px) {
  .uw { grid-template-columns: 1fr; }
  .uw__rows { max-height: 300px; }
  .uw__tag { display: none; }
}

/* ---- R38 · team rebuilt: listing cards + profile pages ---- */
.tm-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.4rem, 3vw, 2.6rem); }
.tmcard { display: block; text-decoration: none; color: inherit; }
.tmcard__photo { display: block; overflow: hidden; aspect-ratio: 1/1; background: #0A0A0A; }
.tmcard__photo img { width: 100%; height: 100%; object-fit: cover; display: block;
  filter: saturate(.96); transition: transform .5s ease, filter .5s ease; }
.tmcard:hover .tmcard__photo img { transform: scale(1.04); filter: saturate(1.04); }
.tmcard__body { display: flex; flex-direction: column; gap: .45rem; padding-top: 1.15rem; }
.tmcard__name { font-family: var(--display); font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; font-size: 1.12rem; }
.tmcard__role { font-family: var(--body); font-size: .64rem; letter-spacing: .26em;
  text-transform: uppercase; color: rgba(20,20,20,.55); }
.tmcard__line { font-size: .9rem; line-height: 1.55; color: rgba(20,20,20,.68);
  margin-top: .2rem; }
.tmcard__go { margin-top: .8rem; align-self: flex-start; }
@media (max-width: 860px) { .tm-grid { grid-template-columns: 1fr; max-width: 460px; } }

/* profile pages */
.tp { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.tp__photo img { display: block; width: 100%; height: auto; }
.tp__role { font-family: var(--body); font-size: .72rem; letter-spacing: .3em;
  text-transform: uppercase; color: rgba(20,20,20,.6); margin: .4rem 0 1.6rem; }
.tp__meta { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.tp__meta li { padding: .8rem 0; border-bottom: 1px solid var(--rule);
  font-size: .9rem; color: rgba(20,20,20,.72); }
.tp__bio-band { }
.tp__bio { max-width: 720px; }
.tp__bio p { font-size: 1.02rem; line-height: 1.8; margin: 0 0 1.4rem; }
.tp__cta { display: flex; flex-direction: column; gap: 1.1rem; align-items: flex-start;
  margin-top: 2.4rem; }
.tp__cta .btn--solid { background: var(--gold) !important; color: var(--hull) !important;
  border: 0; padding: 1.05rem 2.6rem; white-space: nowrap; }
.tp__cta .btn--solid:hover { background: var(--accent) !important; color: var(--accent-ink) !important; }
.tp__cta-links { display: flex; flex-wrap: wrap; column-gap: 1.9rem; row-gap: .8rem; }
.tp__nav-band { padding-top: 0; }
.tp__nav { display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 1.2rem; border-top: 1px solid var(--rule); padding-top: 1.8rem; }
.tp__nav-siblings { display: flex; gap: 1.9rem; }
@media (max-width: 800px) {
  .tp { grid-template-columns: 1fr; }
  .tp__photo { max-width: 420px; }
}

/* ================= ROUND 39 — TIGHTER HOMEPAGE ================= */

/* hero email pill: one line + input, sits under the hero CTAs */
.hero__nl { display: flex; flex-direction: column; align-items: center; gap: .7rem;
  margin-top: 2.1rem; }
.hero__nl-line { font-family: var(--body); font-size: .66rem; letter-spacing: .24em;
  text-transform: uppercase; color: rgba(255,255,255,.82); }
.hero__nl-pill { display: inline-flex; align-items: center; width: min(320px, 82vw);
  border: 1px solid rgba(255,255,255,.55); border-radius: 999px;
  background: rgba(10,13,18,.35); backdrop-filter: blur(6px);
  padding: .18rem .18rem .18rem 1.2rem; transition: border-color .3s ease; }
.hero__nl-pill:focus-within { border-color: var(--hull); }
.hero__nl-pill input { flex: 1 1 auto; min-width: 0; background: none; border: 0;
  outline: none; color: var(--hull); font: inherit; font-size: .9rem; padding: .55rem 0; }
.hero__nl-pill input::placeholder { color: rgba(255,255,255,.55); }
.hero__nl-pill button { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%;
  border: 0; background: var(--accent); color: var(--accent-ink); font-size: 1.05rem;
  cursor: pointer; transition: background .3s ease; }
.hero__nl-pill button:hover { background: var(--hull); }
.hero__nl-msg { font-size: .8rem; color: rgba(255,255,255,.85); letter-spacing: .04em; }

/* underway, restyled as a nautical chart: graticule, corner ticks, live chip */
.underway { background: #0A0A0A !important;
  background-image: radial-gradient(ellipse 90% 70% at 50% 30%, rgba(30, 200, 216,.055), transparent 60%) !important; }
.underway .band__head { margin-bottom: 0; }
.uw__head { display: flex; align-items: baseline; gap: 1.6rem; flex-wrap: wrap;
  margin-bottom: clamp(1.6rem, 3.5vh, 2.6rem); }
.uw__head .eyebrow { color: rgba(255,255,255,.6) !important; display: inline-flex;
  align-items: center; gap: .55rem; margin: 0; }
.uw__head .display { margin: 0; }
.uw__live { width: 8px; height: 8px; border-radius: 50%; background: var(--accent);
  animation: wpulse38 1.6s infinite; display: inline-block; }
.uw__legend { margin-left: auto; display: flex; gap: 1.3rem; font-family: var(--body);
  font-size: .6rem; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(255,255,255,.55); align-self: center; }
.uw__legend span { display: inline-flex; align-items: center; gap: .5rem; }
.uw__leg-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent-2);
  display: inline-block; }
.uw__leg-dot--t { background: var(--accent); }
.uw__chart { border: 1px solid rgba(255,255,255,.12); }
.uw__grat { position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image:
    repeating-linear-gradient(to right, rgba(255,255,255,.05) 0 1px, transparent 1px 12.5%),
    repeating-linear-gradient(to bottom, rgba(255,255,255,.05) 0 1px, transparent 1px 16.66%);
  background-size: 100% 100%; }
.uw__corner { position: absolute; width: 26px; height: 26px; pointer-events: none;
  border: 1px solid var(--accent); opacity: .8; }
.uw__corner--tl { left: -1px; top: -1px; border-right: 0; border-bottom: 0; }
.uw__corner--br { right: -1px; bottom: -1px; border-left: 0; border-top: 0; }
.underway .uw__manifest { background: rgba(6,14,20,.75); }

/* fleet: 3-up compact cards, 2 rows */
.fgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.1rem, 2.2vw, 1.8rem); }
.fcard { display: block; text-decoration: none; color: inherit; }
.fcard__media { display: block; aspect-ratio: 16/10; background-size: cover;
  background-position: center; background-color: #0A0A0A;
  transition: filter .4s ease; }
.fcard:hover .fcard__media { filter: brightness(1.06) saturate(1.05); }
.fcard__row { display: flex; align-items: baseline; justify-content: space-between;
  gap: 1rem; padding-top: .85rem; }
.fcard__name { font-family: var(--display); font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; font-size: 1.02rem; }
.fcard__rate { font-size: .82rem; white-space: nowrap; color: rgba(20,20,20,.75); }
.fcard__meta { display: block; font-family: var(--body); font-size: .62rem;
  letter-spacing: .2em; text-transform: uppercase; color: rgba(20,20,20,.5);
  padding-top: .3rem; }
@media (max-width: 900px) { .fgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .fgrid { grid-template-columns: 1fr; } }

/* ---- R39 · team, dense ---- */
.team-band { }
.tm-grid { gap: clamp(1.1rem, 2vw, 1.6rem); }
.tmcard__body { padding-top: .9rem; gap: .35rem; }
.tp--dense { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: center;
  gap: clamp(1.6rem, 3.5vw, 3rem); }
.tp--dense .tp__photo { max-width: 400px; }
.tp--dense .display--section { margin-bottom: 1rem; }
.tp__bio-inline { font-size: .98rem; line-height: 1.72; margin: 0 0 1.6rem; max-width: 56ch; }
.tp__cta--row { flex-direction: row; align-items: center; gap: 1.6rem; margin-top: 0;
  flex-wrap: wrap; }
.tq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(2rem, 4vw, 3.5rem); border-top: 1px solid var(--rule); }
.tq { display: flex; align-items: baseline; justify-content: space-between; gap: 1.4rem;
  padding: .95rem 0; border-bottom: 1px solid var(--rule); }
.tq__q { font-family: var(--body); font-size: .62rem; letter-spacing: .22em;
  text-transform: uppercase; color: rgba(20,20,20,.5); margin: 0; flex: 0 0 auto; }
.tq__a { font-size: .92rem; line-height: 1.5; margin: 0; text-align: right; }
.tgal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.tgal__tile { display: block; aspect-ratio: 4/3; background-size: cover;
  background-position: center; background-color: #0A0A0A; }
@media (max-width: 800px) {
  .tp--dense { grid-template-columns: 1fr; }
  .tq-grid { grid-template-columns: 1fr; }
  .tq { flex-direction: column; gap: .3rem; align-items: flex-start; }
  .tq__a { text-align: left; }
  .tgal { grid-template-columns: repeat(3, 1fr); }
}

/* R39: hidden attribute must beat display rules (wmap Australia link toggle) */
.wmap__links .textlink[hidden] { display: none !important; }

/* ================= R40 (2026-08-19) ================= */

/* Featured yacht cards: rounded corners */
.fcard__media { border-radius: 14px; }

/* Direct-line card: Anthea headshot row */
.desk-card__id { display: flex; align-items: center; gap: .85rem; margin: 0 0 1rem; padding-right: 1.1rem; }
.desk-card__face { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex: 0 0 auto;
  border: 1px solid rgba(255,255,255,.3); }
.desk-card__id .desk-card__kicker { margin: 0 0 .35rem; }
.desk-card__id .desk-card__line { margin: 0; }

/* Spotlight: vessel named in the photo corner */
.spotlight__vessel { position: absolute; left: 1.1rem; bottom: 1rem; display: inline-flex; align-items: center;
  gap: .5rem; color: var(--hull); font-family: var(--body); font-size: .6rem; font-weight: 600; letter-spacing: .28em;
  text-transform: uppercase; text-shadow: 0 1px 14px rgba(0,0,0,.7); transition: color .3s ease; }
.spotlight__photo:hover .spotlight__vessel, .spotlight__photo:focus-visible .spotlight__vessel { color: var(--accent); }

/* Underway chart: full-bleed, mouse-scan */
.uw--wide { display: block; }
.uw--wide .uw__viewport { position: relative; overflow: hidden; height: clamp(400px, 64vh, 660px);
  border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12);
  cursor: crosshair; touch-action: pan-y; }
.uw__pan { position: absolute; left: 0; top: 0; width: 260%; will-change: transform; }
.uw__pan .uw__map { display: block; width: 100%; height: auto; }
.uw__pan .uw__grat { position: absolute; inset: 0; }
.uw--wide .uw__corner { z-index: 5; }
@media (max-width: 900px) { .uw__pan { width: 420%; } .uw--wide .uw__viewport { height: clamp(340px, 58vh, 520px); cursor: grab; } }

/* Explore Live Fleet */
.uw__explore { position: absolute; left: clamp(1rem, 2.2vw, 2rem); bottom: clamp(1rem, 2.2vw, 2rem); z-index: 8; }
.uw__explore-btn { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--body);
  font-size: .62rem; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: var(--hull);
  background: rgba(6,14,20,.82); border: 1px solid rgba(255,255,255,.35); padding: .9rem 1.35rem;
  cursor: pointer; backdrop-filter: blur(5px); transition: border-color .3s ease; }
.uw__explore-btn::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.uw__explore-btn:hover, .uw__explore-btn:focus-visible { border-color: var(--accent); }
.uw__list { position: absolute; left: 0; bottom: calc(100% + .65rem); width: min(350px, 82vw);
  max-height: min(420px, 52vh); overflow: auto; background: rgba(6,14,20,.94);
  border: 1px solid rgba(255,255,255,.16); padding: 1.2rem 1.2rem 1rem; backdrop-filter: blur(6px);
  opacity: 0; transform: translateY(8px); pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
  scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.25) transparent; }
.uw__explore:hover .uw__list, .uw__explore:focus-within .uw__list, .uw__explore.is-open .uw__list {
  opacity: 1; transform: none; pointer-events: auto; }
.uw__list .uw__row { width: 100%; background: none; border: 0; border-bottom: 1px solid rgba(255,255,255,.09);
  text-align: left; cursor: pointer; color: inherit; }
.uw__thumb { flex: 0 0 auto; width: 58px; height: 38px; border-radius: 4px;
  background-size: cover; background-position: center; }
.uw__row-prefix { color: rgba(255,255,255,.55); font-weight: 500; }

/* Vessel card on the chart */
.uw__vcard { position: absolute; z-index: 9; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: min(400px, 88vw); background: rgba(6,14,20,.96); border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 24px 70px rgba(0,0,0,.55); }
.uw__vcard[hidden] { display: none; }
.uw__vcard-x { position: absolute; right: .6rem; top: .6rem; z-index: 2; width: 34px; height: 34px;
  border-radius: 50%; background: rgba(10,13,18,.55); border: 0; color: var(--hull); font-size: 1.2rem;
  cursor: pointer; line-height: 1; }
.uw__vcard-x:hover, .uw__vcard-x:focus-visible { color: var(--accent); }
.uw__vcard-photo { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.uw__vcard-body { padding: 1.2rem 1.4rem 1.4rem; }
.uw__vcard-kicker { font-family: var(--body); font-size: .58rem; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(255,255,255,.55); margin: 0 0 .55rem; }
.uw__vcard-name { font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: .08em;
  color: var(--hull); font-size: 1.25rem; margin: 0 0 .45rem; }
.uw__vcard-place { font-size: .88rem; line-height: 1.5; color: rgba(255,255,255,.72); margin: 0 0 1.1rem; }
.uw__vcard-go { display: inline-flex; align-items: center; gap: .5rem; color: var(--hull); text-decoration: none;
  font-family: var(--body); font-size: .68rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  border-bottom: 1px solid rgba(255,255,255,.4); padding-bottom: .3rem; transition: color .3s ease, border-color .3s ease; }
.uw__vcard-go:hover, .uw__vcard-go:focus-visible { color: var(--accent); border-color: var(--accent); }
.uw__vcard-go .tl-arrow { transition: transform .3s ease; }
.uw__vcard-go:hover .tl-arrow { transform: translateX(3px); }
.uw--wide .uw__stamp { margin-top: .9rem; }

/* ================= R41 (2026-08-19) ================= */

/* Business of Yachting: tighter band */
#about.editorial { padding-top: clamp(2.6rem, 5vw, 4.2rem); padding-bottom: clamp(2.6rem, 5vw, 4.2rem); }
#about .editorial__head { font-size: clamp(1.9rem, 3.4vw, 2.9rem); margin-bottom: .9rem; }
#about .editorial__rule { margin-bottom: .9rem; }
#about .editorial__lead { font-size: 1.05rem; }
#about .editorial__copy p { margin-bottom: .55rem; }

/* This Season's Charter: bright teal band */
.spotlight--pop, section.band.spotlight--pop { background: var(--accent) !important; }
.spotlight--pop .spotlight__eyebrow { color: var(--ink) !important; }
.spotlight--pop .spotlight__head { color: var(--ink) !important; }
.spotlight--pop .spotlight__head em { color: var(--ink); }
.spotlight--pop .spotlight__lede { color: rgba(10,10,10,.85) !important; }
.spotlight--pop .spotlight__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.1rem 1.3rem; margin-top: 1.9rem; }
.spotlight--pop .spotlight__actions .btn { border: 1.5px solid var(--ink); color: var(--ink); background: none;
  border-radius: 999px; padding: .95rem 1.9rem; line-height: 1; white-space: nowrap; }
.spotlight--pop .spotlight__actions .btn:hover, .spotlight--pop .spotlight__actions .btn:focus-visible {
  background: rgba(10,10,10,.1); }
.spotlight--pop .spotlight__actions .btn--solid { background: var(--ink); color: var(--hull); border-color: var(--ink); }
.spotlight--pop .spotlight__actions .btn--solid:hover { background: var(--accent); }
.spotlight--pop .spotlight__photo { box-shadow: 0 26px 70px rgba(4,38,44,.35); }

/* Live chart: light nautical restyle */
.underway, section.band.band--deep.underway { background: var(--accent-mist) !important; background-image: none !important; }
.underway .uw__head .display { color: var(--ink) !important; }
.underway .uw__head .eyebrow { color: rgba(10,10,10,.65) !important; }
.underway .uw__legend { color: var(--ink) !important; }
.underway .uw__leg-dot { background: var(--accent); }
.underway .uw__leg-dot--t { background: var(--accent); }
.uw--wide .uw__viewport { border-color: rgba(10,10,10,.18); background: var(--accent-mist); cursor: crosshair; }
.uw--wide .uw__corner { border-color: rgba(10,10,10,.4); }
.underway .uw__dot i { background: var(--accent); box-shadow: 0 0 0 0 rgba(169,133,79,.5); animation: uwpulse 3s ease-out infinite; }
.underway .uw__dot.is-underway i { background: var(--accent); box-shadow: 0 0 0 0 rgba(30, 200, 216,.55);
  animation: uwpulse 2.4s ease-out infinite; }
.underway .uw__dot:hover i, .underway .uw__dot.is-hi i { background: var(--ink); }
@keyframes uwpulse { 0% { box-shadow: 0 0 0 0 currentColor; } 70% { box-shadow: 0 0 0 11px rgba(0,0,0,0); } 100% { box-shadow: 0 0 0 0 rgba(0,0,0,0); } }
.underway .uw__dot i { color: rgba(169,133,79,.4); }
.underway .uw__dot.is-underway i { color: rgba(30, 200, 216,.45); }
.underway .uw__tag { background: var(--ink); color: var(--hull); padding: .3rem .55rem; border-radius: 4px; }
.uw--wide .uw__stamp { color: rgba(10,10,10,.55) !important; }
@media (prefers-reduced-motion: reduce) { .underway .uw__dot i { animation: none !important; } }

/* Our Services: its own moment */
.services--grand { gap: clamp(1.2rem, 2.6vw, 2.2rem); }
.services--grand .service { border-top: 2px solid var(--accent); padding-top: 1.15rem; transition: transform .35s ease; }
.services--grand .service:hover { transform: translateY(-4px); }
.services--grand .service__no { color: var(--accent); font-size: 1.5rem; }
.services--grand .service__name { text-transform: uppercase; letter-spacing: .12em; }

/* Mosaic captions never clip */
.mosaic__tile { position: relative; }
.mosaic__cap { left: 1.1rem; bottom: .95rem; max-width: calc(100% - 2.2rem); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Builder: champagne Back, location preview, light brief rail */
.bx-btn { display: inline-flex; align-items: center; gap: .55rem; }
.bx-btn--ghost { background: var(--accent-2); border: 0; color: #14100a; }
.bx-btn--ghost:hover { border: 0; filter: brightness(1.08); }
.bx-btn__arr { font-size: 1em; line-height: 1; }
.bx-preview { margin-top: 1.5rem; border: 1px solid rgba(255,255,255,.16); }
.bx-preview[hidden] { display: none; }
.bx-preview__img { display: block; width: 100%; aspect-ratio: 21/9; background-size: cover; background-position: center; }
.bx-preview__cap { display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: .85rem 1.1rem; background: rgba(255,255,255,.06); }
.bx-preview__name { font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--hull); }
.bx-preview__season { font-family: var(--body); font-size: .6rem; font-weight: 600; letter-spacing: .24em;
  text-transform: uppercase; color: var(--accent-2); text-align: right; }
.bx-rail { background: #F4EEE1; border: 1px solid rgba(20,16,10,.08); }
.bx-rail__kicker { color: var(--accent); }
.bx-rail__note { font-family: var(--body); font-size: .78rem; line-height: 1.55; color: rgba(20,16,10,.65); margin: 0 0 1.15rem; }
.bx-rail .bx-ledger div { border-color: rgba(20,16,10,.1); }
.bx-rail .bx-ledger dt { color: rgba(20,16,10,.5); }
.bx-rail .bx-ledger dd { color: #14100a; }
.bx-match { background: var(--hull); border: 1px solid rgba(20,16,10,.1); }
.bx-match:hover { border-color: var(--accent); }
.bx-match__name { color: #14100a; }
.bx-match__meta { color: rgba(20,16,10,.55); }
.bx-match__none { color: rgba(20,16,10,.6); }
.bx-rail__fine { color: rgba(20,16,10,.5); }

/* Our Fleet grid: four across */
.fgrid--own { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .fgrid--own { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .fgrid--own { grid-template-columns: 1fr; } }

/* Milestones */
.mile-chips { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: .6rem; }
.mile-chip { font-family: var(--body); font-size: .64rem; font-weight: 600; letter-spacing: .24em;
  text-transform: uppercase; border: 1px solid rgba(20,20,20,.3); padding: .72rem 1.2rem; border-radius: 999px; }
.mile-formats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.2rem, 3vw, 2.4rem); }
@media (max-width: 760px) { .mile-formats { grid-template-columns: 1fr; } }
.mile-format { border: 1px solid rgba(20,20,20,.16); padding: 1.7rem 1.6rem 1.9rem; }
.mile-format__n { font-family: var(--display); font-weight: 700; font-size: 2.1rem; color: var(--accent); margin: 0 0 .35rem; }
.mile-format__name { font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
  font-size: 1.02rem; margin: 0 0 .65rem; }
.mile-format__detail { font-size: .93rem; line-height: 1.65; color: rgba(20,20,20,.75); margin: 0; }

/* About */
.about-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.4rem, 3vw, 2.6rem); max-width: 72rem; }
@media (max-width: 760px) { .about-cols { grid-template-columns: 1fr; } }
.about-cols p { margin: 0; font-size: .98rem; line-height: 1.75; color: rgba(20,20,20,.8); }

/* Reviews */
.reviews-empty { border: 1px dashed rgba(20,20,20,.3); padding: 2.8rem 1.8rem; text-align: center; max-width: 46rem; }
.reviews-empty__line { font-style: italic; font-size: 1.05rem; margin: 0 0 1.4rem; color: rgba(20,20,20,.7); }

/* R41 fix: the R36 dark-surface accent fill must not run on the teal pop band */
.spotlight--pop .spotlight__actions .btn--solid {
  background: var(--ink) !important; border-color: var(--ink) !important; color: var(--hull) !important; }
.spotlight--pop .spotlight__actions .btn--solid:hover,
.spotlight--pop .spotlight__actions .btn--solid:focus-visible {
  background: var(--accent) !important; border-color: var(--accent) !important; color: var(--hull) !important; }
.spotlight--pop .spotlight__actions .btn:not(.btn--solid):hover {
  color: var(--ink) !important; border-color: var(--ink) !important; background: rgba(10,10,10,.1) !important; }

/* ================= R42 (2026-08-19) ================= */

/* Spotlight: teal out, chart-blue in (overrides the R41 block below-same-specificity) */
.spotlight--pop, section.band.spotlight--pop { background: var(--accent-mist) !important; }
.spotlight--pop .spotlight__eyebrow { color: rgba(10,10,10,.65) !important; }
.spotlight--pop .spotlight__head, .spotlight--pop .spotlight__head em { color: var(--ink) !important; }
.spotlight--pop .spotlight__lede { color: rgba(10,10,10,.8) !important; }
.spotlight--pop .spotlight__actions .btn { border-color: var(--ink); color: var(--ink); }
.spotlight--pop .spotlight__actions .btn:not(.btn--solid):hover {
  color: var(--ink) !important; border-color: var(--ink) !important; background: rgba(10,10,10,.08) !important; }
.spotlight--pop .spotlight__actions .btn--solid {
  background: var(--ink) !important; border-color: var(--ink) !important; color: var(--hull) !important; }
.spotlight--pop .spotlight__actions .btn--solid:hover,
.spotlight--pop .spotlight__actions .btn--solid:focus-visible {
  background: var(--ink) !important; border-color: var(--ink) !important; }
.spotlight--pop .spotlight__photo { box-shadow: 0 24px 60px rgba(10,10,10,.28); }

/* Live chart band: dark navy surround, light chart inside */
.underway, section.band.band--deep.underway { background: #0A0A0A !important;
  background-image: radial-gradient(120% 90% at 50% 0%, rgba(30, 200, 216,.08), transparent 55%) !important; }
.underway .uw__head .display { color: var(--hull) !important; }
.underway .uw__head .eyebrow { color: rgba(255,255,255,.6) !important; }
.underway .uw__legend { color: rgba(255,255,255,.7) !important; }
.underway .uw__leg-dot { background: var(--accent-pale); }
.underway .uw__leg-dot--t { background: var(--accent); }
.uw--wide .uw__viewport { border-color: rgba(255,255,255,.14); }
.uw--wide .uw__corner { border-color: rgba(255,255,255,.45); }
.uw--wide .uw__stamp { color: rgba(255,255,255,.5) !important; }

/* Live yacht dots: larger */
.underway .uw__dot { width: 30px; height: 30px; margin: -15px 0 0 -15px; }
.underway .uw__dot i { width: 14px; height: 14px; margin: 8px; }
@media (max-width: 900px) { .underway .uw__dot { width: 34px; height: 34px; margin: -17px 0 0 -17px; } }

/* Management page: dense pass */
.mgmt-page .band__head .display { font-size: clamp(1.8rem, 3.4vw, 2.9rem); }
.mgmt-page .band { padding-top: clamp(2.8rem, 6vw, 4.6rem); padding-bottom: clamp(2.8rem, 6vw, 4.6rem); }
.mgmt-page #management { padding-top: clamp(8.5rem, 15vh, 11rem); padding-bottom: clamp(2.4rem, 4vw, 3.4rem); }
.mgmt-services { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 0 clamp(1.2rem, 2.4vw, 2rem); }
@media (max-width: 900px) { .mgmt-services { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 560px) { .mgmt-services { grid-template-columns: 1fr !important; } }
.mgmt-services .service__photo { aspect-ratio: 16/10; }
.mgmt-services .service__detail { max-width: none; }

/* ================= R43 (2026-08-22) ================= */

/* Live chart: slightly zoomed out, dots up again */
.uw__pan { width: 220%; }
@media (max-width: 900px) { .uw__pan { width: 340%; } }
.underway .uw__dot { width: 34px; height: 34px; margin: -17px 0 0 -17px; }
.underway .uw__dot i { width: 16px; height: 16px; margin: 9px; }

/* Builder brief note stays one quiet line */
.bx-rail__note { margin-bottom: .9rem; }

/* Destinations: compact head straight into the chart */
.dest-head, section.band.dest-head { padding-top: clamp(7.5rem, 13vh, 10rem) !important;
  padding-bottom: clamp(1.6rem, 3vw, 2.6rem) !important; }
.dest-head__row { display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem; flex-wrap: wrap; }
.dest-head__row .display { margin: 0; }
@media (max-width: 700px) { .dest-head__row { align-items: flex-start; flex-direction: column; } }

/* Cruising grounds map: bigger canvas, red pin drops */
.wmap-band .shell { max-width: none; padding-inline: clamp(.9rem, 2vw, 2.2rem); }
.wmap-band { padding-top: clamp(2rem, 4vw, 3.2rem); }
.wmap__dot { width: 30px; height: 34px; margin: -30px 0 0 -15px; background: none; }
.wmap__dot span {
  display: block; width: 18px; height: 18px; margin: 4px auto 0;
  background: #D8402C !important; border: 2px solid var(--hull);
  border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
  box-shadow: 0 3px 8px rgba(0,0,0,.45); transition: background .25s ease, transform .25s ease;
}
.wmap__dot:hover span, .wmap__dot.is-active span {
  background: #F05A3F !important; transform: rotate(-45deg) scale(1.18); }
@media (max-width: 900px) { .wmap__dot { width: 34px; height: 38px; margin: -34px 0 0 -17px; } }

/* Rounded corners: all contained imagery */
.dfeat__photo, .destcard__photo, .dest__photo, .cw__media, .craft__media,
.service__photo, .tgal__tile, .bx-preview__img, .wmap__photo,
.mile-card__photo, .gd__photo, .cobrand__partner-logo {
  border-radius: 14px; overflow: hidden; }
.dreg__hero { border-radius: 0; } /* full-bleed bands stay square */

/* Milestones: photo format cards */
.mile-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.2rem, 2.6vw, 2.2rem); }
@media (max-width: 760px) { .mile-split { grid-template-columns: 1fr; } }
.mile-card { display: block; text-decoration: none; color: inherit; }
.mile-card__photo { position: relative; display: block; aspect-ratio: 16/9;
  background-size: cover; background-position: center; }
.mile-card__n { position: absolute; left: 1.1rem; bottom: .8rem; font-family: var(--display);
  font-weight: 700; font-size: clamp(2.4rem, 4vw, 3.6rem); color: var(--hull); line-height: 1;
  text-shadow: 0 2px 18px rgba(0,0,0,.55); }
.mile-card__name { display: block; font-family: var(--display); font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em; font-size: 1rem; margin: 1rem 0 .45rem; }
.mile-card__detail { display: block; font-size: .92rem; line-height: 1.6; color: rgba(20,20,20,.72); }
.mile-card:hover .mile-card__photo { filter: saturate(1.06) brightness(1.03); }

/* ================= R44 (2026-08-22) ================= */

/* Live chart: pin drops for the fleet */
.underway .uw__dot { width: 36px; height: 42px; margin: -38px 0 0 -18px; }
.underway .uw__dot i {
  display: block; width: 21px; height: 21px; margin: 5px auto 0;
  border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
  background: var(--accent-pale); border: 2px solid var(--hull);
  box-shadow: 0 3px 9px rgba(10,30,40,.4); animation: none;
  transition: transform .25s ease, background .25s ease;
}
.underway .uw__dot.is-underway i { background: var(--accent); }
.underway .uw__dot:hover i, .underway .uw__dot.is-hi i {
  transform: rotate(-45deg) scale(1.18); background: var(--ink); }
.underway .uw__dot::after {
  content: ''; position: absolute; left: 50%; bottom: -1px; width: 12px; height: 12px;
  margin-left: -6px; border-radius: 50%; background: rgba(30, 200, 216,.4);
  animation: uwhalo 2.6s ease-out infinite; pointer-events: none;
}
.underway .uw__dot:not(.is-underway)::after { background: rgba(200,161,92,.4); animation-duration: 3.4s; }
@keyframes uwhalo { 0% { transform: scale(.4); opacity: .9; } 70% { transform: scale(2.4); opacity: 0; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .underway .uw__dot::after { animation: none; opacity: 0; } }
.underway .uw__tag { bottom: calc(100% + 4px); }
.underway .uw__leg-dot { background: var(--accent-pale); }
.underway .uw__leg-dot--t { background: var(--accent); }
.uw--wide .uw__viewport { background: var(--accent-mist); }

/* Management: photo hero + steps */
.reel--head { min-height: clamp(420px, 62vh, 640px); }
.reel--head .reel__meta { max-width: 46ch; }
.mstep-list { list-style: none; margin: 0; padding: 0; display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(1.6rem, 3vw, 3rem); }
@media (max-width: 900px) { .mstep-list { grid-template-columns: 1fr; } }
.mstep { display: grid; grid-template-columns: 96px auto 1fr; gap: 1.1rem; align-items: center;
  padding: 1.05rem 0; border-bottom: 1px solid rgba(20,20,20,.12); }
.mstep__photo { width: 96px; aspect-ratio: 4/3; border-radius: 10px;
  background-size: cover; background-position: center; }
.mstep__n { font-family: var(--display); font-weight: 700; font-size: 1.3rem; color: var(--accent); }
.mstep__name { display: block; font-family: var(--display); font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; font-size: .92rem; margin-bottom: .35rem; }
.mstep__detail { display: block; font-size: .88rem; line-height: 1.55; color: rgba(20,20,20,.72); }

/* Milestones: occasion tiles */
.occ-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.4rem); }
@media (max-width: 900px) { .occ-grid { grid-template-columns: repeat(2, 1fr); } }
.occ { display: block; position: relative; text-decoration: none; border-radius: 14px; overflow: hidden; }
.occ__photo { display: block; aspect-ratio: 3/4; background-size: cover; background-position: center;
  transition: transform .5s ease, filter .4s ease; filter: saturate(.98); }
.occ:hover .occ__photo { transform: scale(1.04); filter: saturate(1.06); }
.occ__name { position: absolute; left: 1.1rem; bottom: .95rem; color: var(--hull); font-family: var(--display);
  font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: 1.02rem;
  text-shadow: 0 2px 16px rgba(0,0,0,.6); }
.occ::after { content: ''; position: absolute; inset: 55% 0 0 0; pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.42)); }

/* Mobile fit pass */
@media (max-width: 700px) {
  .band__head { display: block; }
  .band__head .lede { margin-top: .9rem; }
  .spotlight--pop .spotlight__actions .btn { width: 100%; text-align: center; white-space: normal; }
  .uw--wide .uw__viewport { height: clamp(320px, 55vh, 460px); }
  .uw__list { width: min(310px, 86vw); max-height: 46vh; }
  .uw__vcard { width: min(340px, 92vw); }
  .dest-head__row .btn--pill-accent { align-self: flex-start; }
  .mstep { grid-template-columns: 72px auto 1fr; gap: .8rem; }
  .mstep__photo { width: 72px; }
  .mile-split { gap: 1.2rem; }
  .fleet__more .btn { margin-bottom: .6rem; }
  .foot__offices p { font-size: .78rem; line-height: 1.9; }
  .occ__name { font-size: .84rem; left: .8rem; bottom: .7rem; }
  .reel--head { min-height: 380px; }
  .bx-preview__cap { flex-direction: column; align-items: flex-start; gap: .3rem; }
  .bx-preview__season { text-align: left; }
}

/* ================= R45 (2026-08-24) ================= */

/* Spotlight: persistent section title, monthly line beneath */
.spotlight__title { margin: 0 0 .5rem; }
.spotlight--pop .spotlight__title, .spotlight--pop .spotlight__title em { color: var(--ink) !important; }
.spotlight__head-sub { font-family: var(--serif, Georgia, serif); font-style: italic;
  font-size: clamp(1.15rem, 2vw, 1.55rem); color: rgba(10,10,10,.85); margin: 0 0 .9rem; }
.spotlight__vessel { font-size: .82rem; letter-spacing: .24em; left: 1.2rem; bottom: 1.1rem; gap: .6rem; }

/* Fleet head: title + pill on one row */
.band__head--row { display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem; flex-wrap: wrap; }
.band__head--row .display { margin: 0; }
@media (max-width: 700px) { .band__head--row { flex-direction: column; align-items: flex-start; } }

/* About: single ink statement line */
.about-line { font-family: var(--serif, Georgia, serif); font-style: italic;
  font-size: clamp(1.35rem, 2.6vw, 2rem); line-height: 1.5; color: rgba(20,20,20,.85);
  max-width: 36ch; margin: 0; }
.about-line em { font-style: italic; color: var(--accent); }

/* Official wordmark proportions in the footer */
.foot__logo--mark { height: auto; }

/* ROUND 46 - official lockup (text + icon beneath): taller aspect, keep the
   wordmark text at its previous optical size by raising rendered heights */
.wordmark__logo,
body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: clamp(38px, 4.3vw, 58px); }
.masthead[data-stuck="true"] .wordmark__logo { height: clamp(30px, 3.6vw, 45px); }
@media (max-width: 1560px) {
  .wordmark__logo,
  body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: clamp(33px, 3vw, 48px); }
}
@media (max-width: 760px) {
  .wordmark__logo,
  body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: auto; max-height: 33px; width: 100%; object-fit: contain; }
  .masthead[data-stuck="true"] .wordmark__logo { max-height: 28px; height: auto; }
}
@media (max-width: 700px) {
  .wordmark__logo,
  .masthead[data-stuck="true"] .wordmark__logo,
  body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: 28px !important; }
}
.powered__logo { height: clamp(39px, 5.2vw, 60px); }

/* ROUND 47 - about rebuild, destinations hero, masthead air, form legibility */
.masthead__left, .masthead__right { gap: clamp(1.1rem, 2vw, 1.9rem); }
@media (max-width: 760px) { .masthead__left, .masthead__right { gap: 0.9rem; } }

/* enquiry fields must read dark on the light band */
.field input, .field select, .field textarea { color: var(--ink); }
.field select option { background: var(--hull); color: var(--ink); }

/* about: full-width mixed-typeface statement */
.about-state-band { padding-block: clamp(3rem, 7vh, 5.5rem); }
.about-state {
  text-align: center; margin: 0 auto; max-width: none;
  padding-inline: clamp(1.2rem, 4vw, 4rem);
  font-size: clamp(1.45rem, 3.2vw, 2.7rem); line-height: 1.32;
}
.about-state em { color: var(--accent); }

/* about: impulsive gallery strip */
.about-gal { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.6rem, 1.2vw, 1rem); }
.about-gal__tile {
  display: block; aspect-ratio: 4 / 3; border-radius: 14px;
  background-size: cover; background-position: center;
}
.about-gal__cap { margin-top: .9rem; text-align: center; letter-spacing: .14em; text-transform: uppercase; font-size: .58rem; opacity: .7; }
@media (max-width: 760px) {
  .about-gal { grid-template-columns: 1fr; }
  .about-gal__tile { aspect-ratio: 16 / 10; }
}

/* photo-backed CTA band */
.reel--cta { min-height: clamp(300px, 44vh, 460px); }
.reel__body--center { display: flex; align-items: center; justify-content: center; text-align: center; width: 100%; }
.reel--cta .fleet__more { margin: 0; }
.mstep__n--time { font-size: 1.02rem; letter-spacing: .04em; }
/* vessel pages: stat glyphs + closing hold band */
.stat__ico { display: block; width: 30px; height: 30px; margin: 0 auto .55rem; color: var(--accent); opacity: .9; }
.flagship__stat { text-align: center; }
.ypage-hold { text-align: center; }
.ypage-hold__inner { display: grid; justify-items: center; gap: 1.1rem; }
.ypage-hold__cta { display: flex; gap: .8rem; flex-wrap: wrap; justify-content: center; }


/* ROUND 49 (2026-08-26) - sticky masthead: one height, no state jump.
   The header used to animate its padding and shrink the logo at 40px of
   scroll behind a live blur, which read as jitter. Now only the tint
   deepens. Layer-promoted so the blur is composited, not repainted. */
.masthead, .masthead[data-stuck="true"] {
  padding-block: 1.05rem !important;
  transition: background-color .35s ease, border-color .35s ease;
  will-change: transform; transform: translateZ(0);
  backface-visibility: hidden;
}
.masthead[data-stuck="true"] { background: rgba(10, 12, 16, .74); }
.masthead .wordmark__logo,
.masthead[data-stuck="true"] .wordmark__logo,
body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: clamp(22px, 2vw, 32px) !important; }
@media (max-width: 760px) {
  .masthead, .masthead[data-stuck="true"] { padding-block: .8rem !important; }
  .masthead .wordmark__logo,
  .masthead[data-stuck="true"] .wordmark__logo,
  body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: 24px !important; width: auto; max-height: none; }
}


/* ROUND 50 (2026-08-26) - About rebuild: story rows, founder, video CTA;
   Destinations: occasion tiles, boat-free banners. */
.reel--video .reel__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.reel--head.reel--video { min-height: clamp(520px, 78vh, 820px); }
.reel--film { min-height: clamp(420px, 64vh, 680px); }
.reel--film .reel__media video[data-playing="true"] { opacity: 1; }
.story-band { padding-top: clamp(2.5rem, 5vh, 4rem); }
.story { list-style: none; margin: clamp(1.5rem, 3vh, 2.5rem) 0 0; padding: 0; display: grid; gap: clamp(1.4rem, 3vw, 2.6rem); }
.story__row { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(1.2rem, 3vw, 3rem); align-items: center; }
.story__row:nth-child(even) .story__photo { order: 2; }
.story__photo { display: block; aspect-ratio: 16 / 10; border-radius: 14px; background-size: cover; background-position: center;
  transition: transform .6s ease; }
.story__photo:hover { transform: scale(1.015); }
.story__text { display: grid; gap: .45rem; padding-inline: clamp(0rem, 2vw, 1.5rem); }
.story__n { font-family: var(--display); font-weight: 700; font-size: 1.25rem; color: var(--accent); }
.story__when { font-family: var(--body); font-size: .6rem; letter-spacing: .32em; text-transform: uppercase; color: rgba(20,20,20,.55); }
.story__title { font-family: var(--display); font-weight: 700; font-size: clamp(1.5rem, 2.6vw, 2.4rem); line-height: 1.08; letter-spacing: -.01em; margin: .2rem 0 .3rem; color: var(--ink); }
.story__copy { margin: 0; font-size: clamp(.92rem, 1.1vw, 1.02rem); line-height: 1.6; color: rgba(20,20,20,.74); max-width: 42ch; }
@media (max-width: 900px) {
  .story__row, .story__row:nth-child(even) { grid-template-columns: 1fr; gap: 1rem; }
  .story__row:nth-child(even) .story__photo { order: 0; }
  .story__text { padding-inline: 0; }
}
.founder-band { padding-block: clamp(3rem, 8vh, 6rem); border-top: 1px solid var(--rule); }
.founder { display: grid; grid-template-columns: minmax(200px, 300px) 1fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.founder__photo { display: block; border-radius: 14px; overflow: hidden; }
.founder__photo img { display: block; width: 100%; height: auto; }
.founder__quote { font-family: var(--serif, "Playfair Display", serif); font-style: italic; font-weight: 500;
  font-size: clamp(1.5rem, 2.6vw, 2.4rem); line-height: 1.25; margin: 0 0 1.2rem; color: var(--ink); max-width: 22ch; }
.founder__name { font-family: var(--body); font-size: .62rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(20,20,20,.6); margin: 0 0 1.1rem; }
@media (max-width: 700px) { .founder { grid-template-columns: 1fr; } .founder__photo { max-width: 260px; } }
.reel--cta-video { min-height: clamp(380px, 56vh, 560px); }
.reel--cta-video .reel__scrim { background: linear-gradient(to top, rgba(10,14,20,.7) 0%, rgba(10,14,20,.35) 55%, rgba(10,14,20,.25) 100%); }
.pillrow { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }
.btn--pill-white { display: inline-block; background: var(--hull); color: var(--ink); border-radius: 999px; padding: .95rem 2.2rem;
  letter-spacing: .14em; text-transform: uppercase; font-size: .72rem; font-weight: 700; text-decoration: none; border: 0; }
.btn--pill-white:hover, .btn--pill-white:focus-visible { background: var(--accent); color: var(--accent-ink); }
@media (max-width: 700px) { .pillrow a { width: 100%; text-align: center; } }
.exp-grid { margin-top: clamp(1.4rem, 3vh, 2.2rem); }


/* ROUND 51 (2026-08-26) - drawer leak fix: on short viewports the link
   list is taller than the 100dvh box, so the closed drawer's overflow
   showed at the top-left. Closed = fully hidden; open = scrollable. */
.masthead .nav,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav {
  overflow: hidden;
  transition: transform .55s cubic-bezier(.7, 0, .2, 1), visibility 0s linear .55s;
}
.masthead .nav:not([data-open="true"]),
body:has(.hero) .masthead:not([data-stuck="true"]) .nav:not([data-open="true"]) {
  visibility: hidden; pointer-events: none;
}
.masthead .nav[data-open="true"],
body:has(.hero) .masthead:not([data-stuck="true"]) .nav[data-open="true"] {
  visibility: visible; transition: transform .55s cubic-bezier(.7, 0, .2, 1), visibility 0s;
}
.nav__panel { max-height: 100dvh; overflow-y: auto; -webkit-overflow-scrolling: touch; }


/* ROUND 52 (2026-08-26) - ACCENT: maison orange #FF8000 replaces teal;
   burnt copper var(--accent) (+ pale copper tints) replaces the pale-teal
   section fills and dark-teal text. Dark ink on orange fills. */
:root { --accent: #1EC8D8; --accent-ink: #14100A; --accent-copper: var(--accent); --accent-copper-deep: var(--ink);
        --accent-tint: rgba(30, 200, 216, 0.07); --accent-line: rgba(30, 200, 216, 0.35); }


/* ROUND 53 (2026-08-26) - ACCENT: McLaren papaya #FF8000 as the hero
   colour; pale papaya tints (var(--accent-mist) / var(--accent-mist) / var(--accent-mist)) for the light
   sections, deep papaya var(--ink) for text and buttons on them, var(--accent)
   for italic emphasis. Dark ink stays on orange fills (white fails). */
:root { --accent: #1EC8D8; --accent-ink: #14100A; --accent-copper: var(--accent); --accent-copper-deep: var(--ink);
        --accent-tint: rgba(30, 200, 216, 0.07); --accent-line: rgba(30, 200, 216, 0.35); }


/* =====================================================================
   ROUND 54 (2026-08-26) - FOUR-COLOUR BRAND SYSTEM + JOST DISPLAY
   Black #0A0A0A · McLaren papaya #FF8000 · pale papaya #FFB877 (mist
   #FFF1E4 for light section fills) · off-white #F4F2EC. Champagne,
   bronze, navy and pure white are retired: every earlier hex was
   rewritten to these tokens. Display face = Jost (Futura-class
   geometric sans, the Sea Raes register), self-hosted. This block is
   the authority; edit here.
   ===================================================================== */
@font-face { font-family: "Jost"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url(../fonts/jost.woff2) format("woff2-variations"), url(../fonts/jost.woff2) format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Jost"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url(../fonts/jost-ext.woff2) format("woff2-variations"), url(../fonts/jost-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Mulish"; font-style: normal; font-weight: 200 900; font-display: swap;
  src: url(../fonts/mulish.woff2) format("woff2-variations"), url(../fonts/mulish.woff2) format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Mulish"; font-style: normal; font-weight: 200 900; font-display: swap;
  src: url(../fonts/mulish-ext.woff2) format("woff2-variations"), url(../fonts/mulish-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Mulish"; font-style: italic; font-weight: 200 900; font-display: swap;
  src: url(../fonts/mulish-italic.woff2) format("woff2-variations"), url(../fonts/mulish-italic.woff2) format("woff2"); }
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 400 900; font-display: swap;
  src: url(../fonts/playfair.woff2) format("woff2-variations"), url(../fonts/playfair.woff2) format("woff2"); }
@font-face { font-family: "Playfair Display"; font-style: italic; font-weight: 400 900; font-display: swap;
  src: url(../fonts/playfair-italic.woff2) format("woff2-variations"), url(../fonts/playfair-italic.woff2) format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Playfair Display"; font-style: italic; font-weight: 400 900; font-display: swap;
  src: url(../fonts/playfair-italic-ext.woff2) format("woff2-variations"), url(../fonts/playfair-italic-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

:root {
  --ink: #0A0A0A;
  --hull: #F4F2EC;
  --deep: var(--accent-mist);
  --accent: #1EC8D8;        /* R60: signal teal, as last week */
  --accent-pale: #A9E9EF;
  --accent-mist: #EAF6F8;
  --accent-2: var(--hull);  /* old champagne role -> off-white */
  --accent-ink: #0A0A0A;
  --accent-copper: var(--accent);
  --accent-copper-deep: var(--ink);
  --accent-tint: rgba(30, 200, 216, 0.08);
  --accent-line: rgba(30, 200, 216, 0.35);
  --display: "Jost", "Futura", "Century Gothic", "Helvetica Neue", Arial, sans-serif;
  --body: "Mulish", "Helvetica Neue", Arial, sans-serif;
  --serif: "Playfair Display", Georgia, serif;
  --rule: rgba(10, 10, 10, 0.14);
  --rule-ink: rgba(10, 10, 10, 0.12);
}
::selection { background: var(--accent); color: var(--ink); }

/* ---- Display type: the Sea Raes register (light geometric caps, wide tracking) ---- */
.display, .display--sub, .display--section, .editorial__head, .hero__head--duo,
.foot__invite, .craft__name, .vhero__name, .journal__title, .gfeature__title,
.wmap__name, .seaindex__sea, .builder__q, .stat__value, .flagship__stat .stat__value,
.mast-link, .mast-cta, .nav a, .btn, .curpick, .reel__title, .story__title, .service__name,
.uw__vcard-name, .fcard__name, .nlpop__head, .bx-title, .about-state, .spotlight__title,
.btn--pill-accent, .btn--pill-white, .uw__explore-btn, .service__no, .story__n, .foot__col h3 {
  font-family: var(--display) !important; font-stretch: normal !important;
}
.display, .display--section, .editorial__head, .hero__head--duo, .reel__title, .nlpop__head,
.bx-title, .about-state, .spotlight__title, .foot__invite, .vhero__name {
  font-weight: 500 !important; letter-spacing: .1em !important; text-transform: uppercase !important; line-height: 1.12;
}
.display--section, #about .editorial__head { font-size: clamp(1.75rem, 3.1vw, 2.75rem); }
.hero--intro .hero__head--duo { font-size: clamp(1.45rem, 2.9vw, 2.6rem) !important; letter-spacing: .12em !important; line-height: 1.3; }
.display--duo em, .editorial__head em, .hero__head--duo em, .hero--intro .hero__head--duo em,
.foot__invite em, .nlpop__head em, .bx-title em, .about-state em, .reel__title em {
  font-family: var(--serif) !important; font-style: italic; font-weight: 500 !important;
  text-transform: none !important; letter-spacing: .01em !important; font-size: 1.04em; color: var(--accent);
}
.hero--intro .hero__head--duo em { color: var(--accent-pale); font-size: 1.06em; }
.spotlight .display--duo em, .spotlight__title em { color: var(--ink) !important; }
.editorial__head em { color: var(--accent); }
.craft__name, .fcard__name, .service__name, .story__title, .uw__vcard-name { font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.mast-link, .nav a, .btn, .mast-cta, .btn--pill-accent, .btn--pill-white, .uw__explore-btn { font-weight: 500 !important; letter-spacing: .18em !important; }
.eyebrow, .hero__rule, .editorial__rule, .fine, .story__when, .foot__kicker, .uw__manifest-head { font-family: var(--display); letter-spacing: .28em; font-weight: 400; }
.statement__text, .founder__quote { font-family: var(--serif); }

/* ---- Masthead: clean video on landing, tint only once you scroll ---- */
.masthead, body:has(.hero) .masthead:not([data-stuck="true"]), .masthead:not([data-stuck="true"]) {
  background: transparent !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  border-bottom-color: transparent !important;
  transition: background-color .45s ease, border-color .45s ease, -webkit-backdrop-filter .45s ease, backdrop-filter .45s ease;
}
.masthead[data-stuck="true"], body:has(.hero) .masthead[data-stuck="true"] {
  background: rgba(10, 10, 10, .58) !important;
  -webkit-backdrop-filter: blur(14px) !important; backdrop-filter: blur(14px) !important;
  border-bottom-color: rgba(244, 242, 236, .12) !important;
}
.masthead:not([data-stuck="true"]) .mast-link, .masthead:not([data-stuck="true"]) .nav-toggle,
.masthead:not([data-stuck="true"]) .curpick-box { text-shadow: 0 1px 12px rgba(0,0,0,.45); }
.mast-cta--build { background: var(--accent) !important; color: var(--ink) !important; border-color: var(--accent) !important; }
.mast-cta:not(.mast-cta--build) { background: var(--hull); color: var(--ink); border-color: var(--hull); }
.mast-cta:not(.mast-cta--build):hover, .mast-cta:not(.mast-cta--build):focus-visible { background: var(--accent); color: var(--ink); border-color: var(--accent); }
.mast-cta--build:hover, .mast-cta--build:focus-visible { background: var(--hull) !important; color: var(--ink) !important; border-color: var(--hull) !important; }

/* ---- Signature lockup (brand kit v3.1 spacing: wordmark over mark, air between) ---- */
.wordmark__logo, .masthead .wordmark__logo, .masthead[data-stuck="true"] .wordmark__logo,
body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo {
  filter: none !important; height: clamp(38px, 3.4vw, 50px) !important; width: auto !important; max-height: none !important; object-fit: contain;
}
.masthead, .masthead[data-stuck="true"] { padding-block: .85rem !important; }
@media (max-width: 760px) {
  .wordmark__logo, .masthead .wordmark__logo, .masthead[data-stuck="true"] .wordmark__logo,
  body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: 34px !important; }
  .masthead, .masthead[data-stuck="true"] { padding-block: .7rem !important; }
}
.foot__logo, .foot__logo--mark { height: clamp(52px, 6vw, 84px); width: auto; filter: none; }
.powered__logo { filter: none; }

/* ---- Buttons on the four colours ---- */
.btn--solid, .btn--pill-accent { background: var(--accent) !important; color: var(--ink) !important; border-color: var(--accent) !important; }
.btn--solid:hover, .btn--solid:focus-visible, .btn--pill-accent:hover, .btn--pill-accent:focus-visible { background: var(--ink) !important; color: var(--hull) !important; border-color: var(--ink) !important; }
.btn--pill-white { background: var(--hull) !important; color: var(--ink) !important; }
.btn--pill-white:hover, .btn--pill-white:focus-visible { background: var(--accent) !important; color: var(--ink) !important; }
.band--deep .btn:not(.btn--solid):hover, .foot .btn:not(.btn--solid):hover { color: var(--hull) !important; border-color: var(--hull) !important; }
.masthead .nav a:hover, .masthead .nav a:focus-visible, .foot a:hover, .foot__contact-line:hover,
.foot--grand .foot__col a:hover { color: var(--hull) !important; }
.textlink:hover { color: var(--accent); }

/* ---- Spotlight: boat-name pill, no "This season" tag ---- */
.spotlight--pop, section.band.spotlight--pop { background: var(--accent-mist) !important; }
.spotlight__photo .craft__tag { display: none !important; }
.spotlight__vessel {
  left: 1.1rem; bottom: 1.1rem; gap: .6rem; background: var(--hull); color: var(--ink);
  border-radius: 999px; padding: .8rem 1.35rem; font-family: var(--display); font-size: .74rem; font-weight: 500;
  letter-spacing: .2em; text-shadow: none; box-shadow: 0 6px 24px rgba(0,0,0,.28);
  transition: background .3s ease, color .3s ease, transform .3s ease;
}
.spotlight__photo:hover .spotlight__vessel, .spotlight__photo:focus-visible .spotlight__vessel { background: var(--accent); color: var(--ink); transform: translateY(-2px); }
.spotlight--pop .spotlight__head, .spotlight--pop .spotlight__title, .spotlight--pop .spotlight__eyebrow, .spotlight--pop .spotlight__head-sub { color: var(--ink) !important; }
.spotlight--pop .spotlight__lede { color: rgba(10,10,10,.78) !important; }
.spotlight--pop .spotlight__actions .btn { border-color: var(--ink); color: var(--ink); }
.spotlight--pop .spotlight__actions .btn--solid { background: var(--ink) !important; color: var(--hull) !important; border-color: var(--ink) !important; }
.spotlight--pop .spotlight__actions .btn--solid:hover { background: var(--accent) !important; color: var(--ink) !important; border-color: var(--accent) !important; }
.spotlight--pop .spotlight__actions .btn:not(.btn--solid):hover { background: var(--ink); color: var(--hull); }
.spotlight__photo { border-radius: 14px; }

/* ---- Services: photo-led, rounded, no captions ---- */
.service__photo { border-radius: 14px; aspect-ratio: 4/3; filter: none; transition: transform .5s ease; }
.services--photo .service:hover .service__photo { transform: scale(1.015); filter: none; }
.services--grand .service { border-top: 0; padding-top: 0; }
.services--grand .service__no { color: var(--accent); font-size: 1rem; letter-spacing: .2em; }

/* ---- Partners & causes: rotating logo strip ---- */
.partners { padding-block: clamp(3.4rem, 7vh, 5.5rem); background: var(--ink); color: var(--hull); overflow: hidden; }
.partners .eyebrow { color: var(--accent-pale); }
.band--deep .eyebrow, .spotlight .eyebrow, .about-way .eyebrow, .story-band .eyebrow { color: var(--accent); }
.partners__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; margin-bottom: clamp(1.6rem, 3vw, 2.6rem); }
.partners__strip { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.partners__track { display: flex; align-items: center; gap: clamp(2.6rem, 6vw, 5.5rem); width: max-content; animation: partners-marquee 46s linear infinite; padding-block: .6rem; }
.partners__strip:hover .partners__track, .partners__strip:focus-within .partners__track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .partners__track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; } }
@keyframes partners-marquee { from { transform: translate3d(0,0,0); } to { transform: translate3d(-50%,0,0); } }
.partner { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; min-width: 150px; text-decoration: none; color: var(--hull); opacity: .82; transition: opacity .3s ease; }
.partner:hover, .partner:focus-visible { opacity: 1; }
.partner__name { font-family: var(--display); font-weight: 500; font-size: clamp(.9rem, 1.4vw, 1.2rem); letter-spacing: .22em; text-transform: uppercase; white-space: nowrap; }
.partner__role { font-family: var(--body); font-size: .56rem; letter-spacing: .3em; text-transform: uppercase; color: var(--accent-pale); }
.partner__logo { display: block; height: clamp(30px, 3.4vw, 44px); width: auto; max-width: 180px; object-fit: contain; }
.partner--img .partner__name { display: none; }

/* ---- Destinations mosaic: tiles lift to their guide ---- */
.mosaic { gap: 8px; padding: 8px; background: var(--ink); }
.mosaic__tile { border-radius: 14px; transition: transform .55s cubic-bezier(.2,.8,.2,1), box-shadow .55s ease, filter .55s ease; will-change: transform; }
.mosaic__tile:hover, .mosaic__tile:focus-visible { transform: translateY(-10px) scale(1.015); z-index: 3; box-shadow: 0 26px 48px rgba(0,0,0,.45); filter: saturate(1.05) brightness(1.04); }
.mosaic__tile::after { content: "Read the guide \2192"; position: absolute; right: 1.1rem; bottom: .95rem; font-family: var(--display); font-size: .6rem; letter-spacing: .24em; text-transform: uppercase;
  color: var(--ink); background: var(--hull); border-radius: 999px; padding: .5rem .9rem; opacity: 0; transform: translateY(6px); transition: opacity .35s ease, transform .35s ease; }
.mosaic__tile:hover::after, .mosaic__tile:focus-visible::after { opacity: 1; transform: none; }
.mosaic__cap { color: var(--hull); font-family: var(--display); font-size: .62rem; letter-spacing: .3em; }
@media (max-width: 760px) { .mosaic__tile::after { display: none; } }

/* ---- Live fleet: quieter, Google-Maps-style drag ---- */
.uw--wide .uw__viewport { cursor: grab; touch-action: pan-y; background: var(--accent-mist); }
.uw--wide .uw__viewport.is-dragging { cursor: grabbing; }
.uw__pan { width: 175%; }
@media (max-width: 900px) { .uw__pan { width: 300%; } }
.uw__zoom { position: absolute; right: 1rem; bottom: 1rem; z-index: 6; display: flex; flex-direction: column; gap: 4px; }
.uw__zoom button { width: 38px; height: 38px; border: 0; border-radius: 10px; background: var(--hull); color: var(--ink); font: 500 1.2rem/1 var(--display); cursor: pointer; box-shadow: 0 4px 16px rgba(0,0,0,.25); }
.uw__zoom button:hover { background: var(--accent); }
.uw__dot i { background: var(--accent-pale); box-shadow: 0 0 8px rgba(169, 233, 239,.55); }
.uw__dot.is-underway i { background: var(--accent); }
.uw__dot.is-hi i, .uw__dot:hover i { background: var(--ink); }
.uw__leg-dot { background: var(--accent-pale); } .uw__leg-dot--t { background: var(--accent); }
.uw__tag { background: var(--ink); color: var(--hull); font-family: var(--display); letter-spacing: .2em; }
.uw__vcard-go { color: var(--accent); }

/* ---- Gallery lightbox (vessel pages) ---- */
.lb { position: fixed; inset: 0; z-index: 200; background: rgba(10,10,10,.94); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .3s ease; }
.lb[data-open="true"] { opacity: 1; }
.lb[hidden] { display: none; }
.lb__img { max-width: min(92vw, 1600px); max-height: 86vh; width: auto; height: auto; object-fit: contain; border-radius: 10px; box-shadow: 0 30px 80px rgba(0,0,0,.6); user-select: none; -webkit-user-drag: none; }
.lb__btn { position: absolute; border: 0; background: rgba(244,242,236,.1); color: var(--hull); width: 52px; height: 52px; border-radius: 999px; cursor: pointer; display: grid; place-items: center; transition: background .25s ease, color .25s ease; }
.lb__btn svg { width: 22px; height: 22px; }
.lb__btn:hover, .lb__btn:focus-visible { background: var(--accent); color: var(--ink); }
.lb__prev { left: clamp(.6rem, 2vw, 2rem); top: 50%; transform: translateY(-50%); }
.lb__next { right: clamp(.6rem, 2vw, 2rem); top: 50%; transform: translateY(-50%); }
.lb__close { right: clamp(.6rem, 2vw, 2rem); top: clamp(.6rem, 2vw, 1.4rem); }
.lb__count { position: absolute; left: 50%; bottom: 1.2rem; transform: translateX(-50%); font-family: var(--display); font-size: .68rem; letter-spacing: .3em; color: var(--accent-pale); }
@media (max-width: 760px) { .lb__btn { width: 42px; height: 42px; } .lb__prev, .lb__next { top: auto; bottom: 3.2rem; transform: none; } .lb__img { max-height: 76vh; max-width: 96vw; } }
body.lb-lock { overflow: hidden; }
.gal__tile { cursor: zoom-in; }

/* ---- About: the narrative ---- */
.about-open { padding-block: clamp(2.5rem, 6vh, 5rem) 0; }
.about-open__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 6rem); align-items: start; }
.about-open__lede { font-family: var(--serif); font-style: italic; font-size: clamp(1.3rem, 2.1vw, 1.85rem); line-height: 1.45; margin: 0; color: var(--ink); }
.about-open__lede em { color: var(--accent); font-style: italic; }
.about-open__prose p { margin: 0 0 1.1em; font-size: clamp(1rem, 1.1vw, 1.08rem); line-height: 1.75; color: rgba(10,10,10,.82); }
.about-open__prose p:last-child { margin-bottom: 0; }
.story__copy { font-size: clamp(.98rem, 1.05vw, 1.06rem); line-height: 1.72; }
.story__copy + .story__copy { margin-top: .8em; }
.about-way { padding-block: clamp(3rem, 7vh, 5.5rem); }
.about-way__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); margin-top: clamp(1.4rem, 3vw, 2.4rem); }
.way { border-top: 1px solid var(--rule); padding-top: 1.1rem; }
.way__n { font-family: var(--display); color: var(--accent); letter-spacing: .2em; font-size: .8rem; display: block; margin-bottom: .6rem; }
.way__title { font-family: var(--display); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; font-size: .98rem; margin: 0 0 .6rem; }
.way p { margin: 0; font-size: .95rem; line-height: 1.7; color: rgba(10,10,10,.8); }
@media (max-width: 860px) { .about-open__grid, .about-way__grid { grid-template-columns: 1fr; } }

/* ---- Light sections: text is black, never brown ---- */
.band--deep, .band--hull, .spotlight--pop, .story-band, .founder-band, .about-state-band, .about-open, .about-way { color: var(--ink); }
.band--deep { background: var(--accent-mist); }
.about-state em { color: var(--accent); }
.foot__invite { color: var(--hull) !important; }
.foot__invite em { color: var(--accent-pale); }
.nlpop__card { background: var(--hull); color: var(--ink); }

/* ---- Mobile tidy ---- */
@media (max-width: 760px) {
  .hero--intro .hero__head--duo { font-size: clamp(1.25rem, 5.6vw, 1.6rem) !important; letter-spacing: .1em !important; white-space: normal !important; }
  .display--section, #about .editorial__head { font-size: clamp(1.45rem, 6.4vw, 1.9rem); letter-spacing: .08em !important; }
  .spotlight__vessel { padding: .65rem 1.05rem; font-size: .66rem; }
  .partners__head { margin-bottom: 1.2rem; }
  .partner { min-width: 120px; }
  .uw__zoom { right: .6rem; bottom: .6rem; }
  .about-open__lede { font-size: 1.25rem; }
}
.journal__title, .gpost__title, .gfeature__title, .wmap__name, .seaindex__sea, .builder__q { font-weight: 500 !important; letter-spacing: .1em; }
.gpost__title { font-size: clamp(1.7rem, 4vw, 3.2rem); }
.gpost__title em, .journal__title em, .gfeature__title em { color: var(--accent); }
/* R54: destinations pin drops on the brand papaya (no more red) */
.wmap__dot span { background: var(--accent) !important; border-color: var(--hull); }
.wmap__dot:hover span, .wmap__dot.is-active span { background: var(--accent-pale) !important; }





/* =====================================================================
   ROUND 55 (2026-08-26) - GREEN EXPERIMENT + Pg2 NOTEPAD ITEMS
   Accent = bright green #00C853, pale green #A5E8BF, mist #EEF9F1;
   champagne-role highlights on dark = off-white. Square geometry block
   above. This block styles: social head stack, footer swap, desk-card
   type, hero head spacing, day rates, team intros, from-prices,
   compare bar, and the Build Your Charter light/dark swap.
   ===================================================================== */

/* hero page-heads: eyebrow gap matches title-to-button gap */
.reel--head .eyebrow { margin-bottom: 1.1rem; }

/* social section: heading, blurb beneath, stay-connected button */
.band__head--stack { display: block; }
.band__head--stack .social__lede { margin: 1.1rem 0 1.4rem; max-width: 52ch; }

/* footer: mark row, then the enquiry desk band, then links */
.foot__concierge--below, .foot__concierge--mid { border-top: 1px solid rgba(244,242,236,.12); }

/* direct-line card: number and email, same size, weight and colour (the
   card is off-white, so the links are ink; R55 had them off-white =
   invisible) */
.desk-card__link, .desk-card__link--mail { font-family: var(--body); font-weight: 600; font-size: .92rem; letter-spacing: .04em; color: var(--ink) !important; margin: 0 0 .3rem; display: block; }
.desk-card__link:hover, .desk-card__link:focus-visible { color: var(--accent) !important; }
.desk-card__kicker { color: rgba(10,10,10,.55); }
.desk-card__line { color: rgba(10,10,10,.85); }
.desk-card__x { color: rgba(10,10,10,.55); }
.desk-card__x:hover, .desk-card__x:focus-visible { color: var(--ink); }

/* milestones: day rates */
.dayrates { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: clamp(1rem, 2vw, 2rem); }
.dayrate { border-top: 1px solid var(--rule); padding-top: 1rem; }
.dayrate__label { font-family: var(--body); font-size: .58rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: rgba(10,10,10,.6); margin: 0 0 .55rem; }
.dayrate__figure { font-family: var(--display); font-weight: 500; letter-spacing: .04em; font-size: clamp(1.2rem, 1.9vw, 1.7rem); margin: 0; color: var(--ink); }
.dayrate__from { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: .72em; text-transform: none; letter-spacing: 0; color: var(--accent); margin-right: .15rem; }
@media (max-width: 960px) { .dayrates { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 480px) { .dayrates { grid-template-columns: 1fr; } }

/* team: short introductions on the cards */
.tmcard__intro { display: block; font-family: var(--body); font-size: .9rem; line-height: 1.65; color: rgba(10,10,10,.72); margin: .65rem 0 .9rem; max-width: 40ch; }

/* "from" before card rates */
.cw__from, .fcard__from { font-family: var(--serif); font-style: italic; text-transform: none; letter-spacing: .02em; font-weight: 400; opacity: .85; }

/* compare bar + table polish */
.cbar { border: 1px solid var(--rule); background: var(--hull); box-shadow: 0 18px 48px rgba(0,0,0,.18); }
.btn-compare.is-picked { background: var(--accent); border-color: var(--accent); color: var(--ink); }
.ledger .mark { background: var(--accent); color: var(--ink); }

/* ---- Build Your Charter: cream canvas, black brief rail ---- */
.bx { background: var(--accent-mist); color: var(--ink); }
.bx-eyebrow { color: var(--ink); }
.bx-title, .bx-q { color: var(--ink) !important; }
.bx-title em, .bx-q em { color: var(--accent) !important; }
.bx-progress__count { color: rgba(10,10,10,.5); }
.bx-progress__track { background: rgba(10,10,10,.12); }
.bx-progress__fill { background: var(--accent); }
.bx-progress__labels li { color: rgba(10,10,10,.35); }
.bx-progress__labels li.is-active { color: var(--ink); }
.bx-groupline, .bx-sublabel { color: rgba(10,10,10,.6); }
.bx-hint { color: rgba(10,10,10,.65); }
.bx-chip span { border-color: rgba(10,10,10,.28); color: rgba(10,10,10,.75); background: none; }
.bx-chip:hover span { border-color: var(--ink); color: var(--ink); }
.bx-chip input:checked ~ span { background: var(--ink); border-color: var(--ink); color: var(--hull); }
.bx-tile:has(input:checked) { outline-color: var(--accent); box-shadow: 0 10px 30px rgba(30, 200, 216,.25); }
.bx-field label { color: rgba(10,10,10,.55); }
.bx-field input, .bx-field textarea { background: var(--hull); border-color: rgba(10,10,10,.25); color: var(--ink); }
.bx-field input:focus, .bx-field textarea:focus { border-color: var(--accent); }
.bx-recap span { border: 1px solid rgba(10,10,10,.22); color: rgba(10,10,10,.75); background: none; }
.bx-btn { background: var(--ink); color: var(--hull); }
.bx-btn--ghost { background: none; border: 1px solid rgba(10,10,10,.35); color: var(--ink); }
.bx-btn--ghost:hover { border-color: var(--ink); }
.bx-btn--send { background: var(--accent); color: var(--ink); }
.bx-counter, .bx-counter button { color: var(--ink); border-color: rgba(10,10,10,.3); }
.bx-rail { background: var(--ink); color: var(--hull); padding: clamp(1.2rem, 2vw, 1.8rem); }
.bx-rail__kicker { color: var(--accent-pale); }
.bx-preview { border: 1px solid rgba(10,10,10,.15); background: var(--hull); }
.bx-preview__name, .bx-preview__season { color: var(--ink); }
.bx-preview__next { margin: .8rem; }
.bx-preview { position: relative; }
.bx-preview .bx-preview__next { position: absolute; right: .9rem; bottom: .9rem; z-index: 3; }

.social__lede { color: rgba(10,10,10,.72); }
/* pages with no hero imagery keep a dark header at the top (logo is off-white) */
body:not(:has(.hero)):not(:has(.reel--head)) .masthead:not([data-stuck="true"]) {
  background: rgba(10, 10, 10, .92) !important;
}
.bx-preview__cap { padding-right: 9rem; }

/* R56: map is not selectable/draggable (drag was painting a green
   selection over the whole chart) */
.uw--wide .uw__viewport, .uw--wide .uw__viewport * { -webkit-user-select: none; user-select: none; }
.uw__map { -webkit-user-drag: none; pointer-events: none; }
.uw__pan { z-index: 1; }

/* R56: partners strip shows the real marks; names become the caption */
.partner--img .partner__name { display: block; font-size: .56rem; letter-spacing: .26em; color: rgba(244,242,236,.55); }
.partner--img .partner__role { display: none; }
.partner__logo { height: clamp(44px, 4.6vw, 64px); max-width: 220px; }

/* R56: social head, button opposite the heading */
.social__head { align-items: flex-start; }
.social__head .social__lede { margin: 1rem 0 0; max-width: 52ch; }

/* R56: destinations collage sits edge to edge, no gaps */
.mosaic { gap: 0 !important; padding: 0 !important; }

/* R56: footer order = mark row, enquiry desk band, then the link columns */
.foot__concierge--below, .foot__concierge--mid { border-bottom: 1px solid rgba(244,242,236,.12); }
.foot__mark { padding-bottom: clamp(1.2rem, 2vw, 1.8rem); }

/* R56.2: no floating hairlines or dead bands inside the footer.
   The concierge band's own borders are the separators: the link grid
   loses its border and dead margin, the offices row keeps one tight
   border above itself, the base hugs the offices. */
.foot__grid--grand { border-top: 0 !important; margin-top: 0 !important; padding-top: clamp(1.8rem, 3vw, 2.6rem) !important; }
.foot__offices { margin-top: clamp(1.8rem, 3vw, 2.6rem); padding-top: clamp(1.4rem, 2.4vw, 2rem); padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.foot__base--grand { margin-top: clamp(1.4rem, 2.4vw, 2rem); padding-top: clamp(1.2rem, 2vw, 1.6rem); }

/* R58: BYC brief rail is black; everything inside it reads off-white
   (R55 inked the whole .bx canvas and the rail inherited it) */
.bx-rail, .bx-rail p, .bx-rail dt, .bx-rail dd, .bx-rail .fine { color: var(--hull); }
.bx-rail__note { color: rgba(244,242,236,.7); }
.bx-ledger dt { color: rgba(244,242,236,.55); }
.bx-ledger dd { color: var(--hull); }
.bx-ledger > div { border-color: rgba(244,242,236,.12); }
.bx-rail__fine { color: rgba(244,242,236,.6) !important; }
.bx-match__none { color: rgba(244,242,236,.65); }
.bx-rail .bx-ledger dt { color: rgba(244,242,236,.55) !important; }
.bx-rail .bx-ledger dd { color: var(--hull) !important; }
.bx-rail .bx-ledger div { border-color: rgba(244,242,236,.12) !important; }
.bx-rail .bx-rail__note, .bx-rail .bx-rail__fine { color: rgba(244,242,236,.68) !important; }

/* R58: About, less text, more air */
.about-open__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); align-items: center; }
.about-open__lede { font-size: clamp(1.5rem, 2.6vw, 2.3rem); }
.about-open__prose p { font-size: clamp(1.02rem, 1.15vw, 1.12rem); }
.story__copy { max-width: 42ch; }
.reel--film .reel__media, .reel--cta .reel__media { background-size: cover; background-position: center; }
@media (max-width: 860px) { .about-open__grid { grid-template-columns: 1fr !important; } }

/* R58.1: About CTA button row, three equal buttons */
.pillrow { display: flex; flex-wrap: wrap; justify-content: center; gap: .9rem; }
.pillrow .btn--pill-accent, .pillrow .btn--pill-white { padding: 1.05rem 2.1rem !important; font-size: .76rem !important; line-height: 1 !important; letter-spacing: .18em !important; min-width: 190px; text-align: center; }


/* =====================================================================
   ROUND 60 (2026-08-31) - TEAL AS LAST WEEK + ROUNDED GEOMETRY BACK
   Accent #1EC8D8 / pale #A9E9EF / mist #EAF6F8 with off-white + black.
   No blues. Buttons and chips are pills; contained imagery 14px.
   ===================================================================== */
.btn--pill-accent,
.btn--pill-white,
.btn--solid,
.btn-compare,
.bx-btn,
.bx-chip span,
.bx-stepper__btn,
.craft__tag,
.curpick,
.curpick-box,
.destfilter__chip,
.flagship .btn--solid,
.fleet__more .btn,
.gd__cta,
.gd__cta .btn--pill,
.hero__cta .btn--solid,
.hero__nl-pill,
.lb__btn,
.mast-cta,
.mile-chip,
.pager__btn,
.pager__num,
.sound-toggle,
.spotlight--pop .spotlight__actions .btn,
.spotlight__vessel,
.underway .uw__tag,
.uw__zoom button,
type pill top-right { border-radius: 999px !important; }
.about-gal__tile,
.avail,
.builder__opts span,
.builder__summary-media,
.bx-band,
.bx-field input,
.bx-field textarea,
.bx-match,
.bx-preview__img,
.bx-progress__fill,
.bx-progress__track,
.bx-rail,
.bx-rail__meter,
.bx-recap span,
.bx-tile,
.bx-tile:has(input:checked)::before,
.cobrand__partner-logo,
.craft__media,
.cw__media,
.cw__type,
.desk-card,
.dest,
.dest__photo,
.destcard__photo,
.destfilter__select,
.dfeat__photo,
.dreg__hero,
.dx-card,
.fcard__media,
.field input,
.field select,
.field textarea,
.film,
.film__play,
.filmreel,
.fleet .craft,
.fleet .craft.cw,
.fleet .craft__media,
.fleet:not(.fleet--grid) .craft,
.fleet:not(.fleet--grid) .craft__media,
.founder__photo,
.gal__tile,
.gallery__frame,
.gd__figure img,
.gd__photo,
.gfeature__photo,
.journal__photo,
.lb__img,
.ledger__thumb,
.masthead .nav .nav__sub,
.mediaband__video,
.menu-figure img,
.mile-card__photo,
.mosaic__tile,
.mosaic__tile::after,
.mstep__photo,
.nav__media,
.nlist__input,
.nlpop__card,
.nlpop__row input,
.occ,
.seasoncard,
.service__photo,
.social-marquee .social__tile,
.social-marquee .social__tile > span,
.social__tile,
.social__tile > span,
.spotlight__photo,
.story__photo,
.tgal__tile,
.uw__thumb,
.vhero__media,
.windex__search,
.wmap__panel,
.wmap__photo,
CTA duos,
aligned,
body:has(.hero) .masthead:not([data-stuck="true"]) .nav__sub,
mosaic fill,
rounded { border-radius: 14px !important; }
.gal__tile img, .social__tile span, .service__photo, .fcard__media, .mosaic__tile, .spotlight__photo, .partner__logo, .uw--wide .uw__viewport, .bx-preview__img { border-radius: 14px !important; }
.mosaic { gap: 8px !important; padding: 8px !important; }
.hero__nl-pill { overflow: hidden; }
.mosaic { gap: 8px !important; padding: 8px !important; background: var(--ink); }
.desk-card__face { border-radius: 50% !important; }
.fleet .craft__media, .fleet .cw__media, .cw__media { border-radius: 14px !important; overflow: hidden; }

/* ===================== ROUND 61 (2026-08-31) ===================== */
/* masthead logo a touch smaller */
.wordmark__logo, .masthead .wordmark__logo, .masthead[data-stuck="true"] .wordmark__logo,
body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: clamp(34px, 3vw, 44px) !important; }
@media (max-width: 760px) {
  .wordmark__logo, .masthead .wordmark__logo, .masthead[data-stuck="true"] .wordmark__logo,
  body:has(.hero) .masthead:not([data-stuck="true"]) .wordmark__logo { height: 30px !important; }
}

/* BYC: every label legible on the cream canvas */
.bx-progress__count { color: rgba(10,10,10,.7); }
.bx-progress__labels li { color: rgba(10,10,10,.55); }
.bx-progress__labels li.is-active { color: var(--ink); }
.bx-groupline, .bx-sublabel { color: rgba(10,10,10,.8); }
.bx-hint { color: rgba(10,10,10,.85); }
.bx-chip span { color: rgba(10,10,10,.85); border-color: rgba(10,10,10,.35); }
.bx-field label { color: rgba(10,10,10,.75); }
.bx-recap span { color: rgba(10,10,10,.85); border-color: rgba(10,10,10,.3); }
.bx-tile__tag { color: rgba(244,242,236,.85); }
.bx-counter, .bx-counter button, .bx-counter input { color: var(--ink); }
.bx-form .fine, .bx-step .fine { color: rgba(10,10,10,.7); }
.bx-preview__season { color: rgba(10,10,10,.7); }

/* BYC: preview caption and Next share one row, nothing overlaps */
.bx-preview { display: flex; flex-wrap: wrap; align-items: stretch; }
.bx-preview__img { flex: 1 1 100%; }
.bx-preview__cap { flex: 1 1 auto; padding-right: 1.1rem; }
.bx-preview .bx-preview__next { position: static !important; margin: .8rem 1.1rem .8rem 0; align-self: center; }
@media (max-width: 760px) { .bx-preview .bx-preview__next { margin: 0 1.1rem 1rem; width: calc(100% - 2.2rem); text-align: center; } }
.bx-matches:empty { display: none; }

/* ===================== ROUND 62 (2026-08-31) ===================== */
/* drawer: Meet the team nests under About Us */
.nav__links .nav__sublink { font-size: .72em !important; letter-spacing: .24em !important; opacity: .75; padding-left: 1.6em; margin-top: -.55em; }
.nav__links .nav__sublink::before { content: "\2014"; margin-right: .6em; opacity: .5; }
.nav__links .nav__sublink:hover { opacity: 1; }
/* team cards: contact block + chips */
.tmcard__body { display: flex; flex-direction: column; }
.tmcard__contact { display: flex; flex-direction: column; gap: .2rem; margin: .2rem 0 .7rem; }
.tmcard__mail, .tmcard__tel { font-family: var(--body); font-size: .88rem; font-weight: 600; color: var(--ink); text-decoration: none; letter-spacing: .02em; }
.tmcard__mail:hover, .tmcard__tel:hover { color: var(--accent); }
.tmcard__chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .9rem; }
.tmcard__chip { display: inline-flex; align-items: center; gap: .45rem; border: 1px solid rgba(10,10,10,.28); border-radius: 999px; padding: .5rem .95rem; font-family: var(--display); font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ink); text-decoration: none; transition: background .25s ease, color .25s ease, border-color .25s ease; }
.tmcard__chip:hover { background: var(--ink); color: var(--hull); border-color: var(--ink); }
.tmcard__chip--wa { background: var(--accent); border-color: var(--accent); }
.tmcard__chip--wa:hover { background: var(--ink); border-color: var(--ink); }
.tmcard__photo img { object-position: 50% 32%; }
.tmcard__photo { border-radius: 14px; }

/* R62.1: hero subline sits just under the logo on landing */
.hero--intro { position: relative; }
.hero--intro .hero__rule { position: absolute; top: clamp(84px, 10vh, 112px); left: 0; right: 0; margin-block: 0; margin-inline: auto; justify-content: center; z-index: 3; }
@media (max-width: 760px) { .hero--intro .hero__rule { top: 74px; } }

/* ===================== ROUND 63 (2026-08-31) ===================== */
/* Anthea's card minimises to a pill, never disappears */
.desk-card__mini { display: none; align-items: center; gap: .6rem; border: 0; background: var(--accent); color: var(--ink); border-radius: 999px; padding: .45rem 1.1rem .45rem .45rem; font-family: var(--display); font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.desk-card__mini-face { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.desk-card.is-min { background: none; border: 0; padding: 0; box-shadow: none; width: auto; }
.desk-card.is-min .desk-card__full, .desk-card.is-min .desk-card__x { display: none; }
.desk-card.is-min .desk-card__mini { display: inline-flex; }
.desk-card__link--wa { color: var(--accent) !important; }
/* newsletter: hero pill swaps email for name on step two; popup stacks */
.hero__nl-pill input[hidden] { display: none; }
.nlpop__row--stack { display: grid; grid-template-columns: 1fr; gap: .6rem; }
.nlpop__row--stack input { width: 100%; }
.desk-card.is-min { bottom: 4.8rem !important; right: clamp(1rem, 2vw, 1.6rem) !important; z-index: 59; }
.dest-state-band { padding-block: clamp(3rem, 8vh, 6rem); background: var(--hull); }
.dest-state-band .about-state { max-width: 22ch; margin-inline: auto; text-align: center; }

/* R63.2: BYC guest stepper on the cream canvas */
.bx-stepper__btn { border-color: rgba(10,10,10,.4) !important; color: var(--ink) !important; background: none; }
.bx-stepper__btn:hover { background: var(--ink) !important; border-color: var(--ink) !important; color: var(--hull) !important; }
.bx-stepper input { color: var(--ink) !important; border-bottom-color: rgba(10,10,10,.4) !important; caret-color: var(--ink); }
.bx-stepper input:focus { border-bottom-color: var(--accent) !important; }
/* R63.2: BYC budget bands on cream */
.bx-band { border-color: rgba(10,10,10,.28) !important; background: var(--hull); }
.bx-band:hover { border-color: var(--ink) !important; }
.bx-band__label { color: var(--ink) !important; }
.bx-band__label i { color: rgba(10,10,10,.6) !important; }
.bx-band__bar { background: linear-gradient(90deg, rgba(30,200,216,.28), rgba(30,200,216,.04)) !important; }
.bx-band:has(input:checked) { border-color: var(--accent) !important; }
.bx-band:has(input:checked) .bx-band__bar { background: linear-gradient(90deg, rgba(30,200,216,.5), rgba(30,200,216,.08)) !important; }
.bx-fine, .bx-form .bx-fine { color: rgba(10,10,10,.75) !important; }

/* R64: four team cards */
.tm-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .tm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) { .tm-grid { grid-template-columns: 1fr; max-width: 460px; } }
.tmcard__chip svg { width: 15px; height: 15px; }

/* R64: charter styles row on Destinations */
.cstyles { background: var(--hull); padding-block: clamp(2.4rem, 6vh, 4.2rem); }
.cstyles .eyebrow { text-align: center; margin-bottom: clamp(1.2rem, 3vh, 2rem); }
.cstyles__grid { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: clamp(.6rem, 1.2vw, 1rem); }
.cstyle { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .8rem; padding: clamp(1.1rem, 2.2vw, 1.6rem) .6rem; border: 1px solid rgba(10,10,10,.14); border-radius: 14px; color: var(--ink); text-decoration: none; background: transparent; transition: background .25s ease, border-color .25s ease, transform .25s ease; }
.cstyle:hover { background: var(--ink); border-color: var(--ink); color: var(--hull); transform: translateY(-3px); }
.cstyle__ic { color: var(--accent); }
.cstyle:hover .cstyle__ic { color: var(--accent-pale); }
.cstyle__label { font-family: var(--font-body, inherit); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; text-align: center; line-height: 1.35; }
@media (max-width: 1100px) { .cstyles__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 560px) { .cstyles__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* R64: desk card links identical (WhatsApp ink like the rest), card clears the sound toggle */
.desk-card__link--wa { color: var(--ink) !important; }
.desk-card__link--wa:hover, .desk-card__link--wa:focus-visible { color: var(--accent) !important; }
.desk-card:not(.is-min) { bottom: 4.8rem !important; z-index: 59; }
/* R64: social handle lowercase */
.social-head .display, #social .display, .social__handle { text-transform: none !important; }

/* R64: BYC form side reads black, every step (tiles over photos and buttons excepted) */
.bx-form, .bx-form p, .bx-form label, .bx-form legend, .bx-form li, .bx-form dt, .bx-form dd, .bx-form small,
.bx-form .bx-hint, .bx-form .bx-hint strong, .bx-form .bx-groupline, .bx-form .bx-sublabel, .bx-form .bx-field label,
.bx-form .bx-chip span, .bx-form .bx-recap span, .bx-form .bx-progress__count, .bx-form .bx-progress__labels li,
.bx-form .bx-stepper input, .bx-form .bx-band__label, .bx-form .bx-band__label i, .bx-form .bx-fine,
.bx-preview__cap, .bx-preview__name, .bx-preview__season, .bx-form .bx-field input, .bx-form .bx-field textarea { color: var(--ink) !important; }
.bx-form .bx-progress__labels li:not(.is-active) { color: rgba(10,10,10,.55) !important; }
.bx-form .bx-field input::placeholder, .bx-form .bx-field textarea::placeholder { color: rgba(10,10,10,.45); }
.bx-form .bx-chip:has(input:checked) span { color: var(--ink) !important; }
/* R64: Sea Raes hull kept in frame on the vessel hero and cards */
.vhero__media[aria-label="M/Y Sea Raes"] { background-position: 50% 72%; }
/* R64.2: selected BYC chip reads off-white on black (R64 blanket rule inked it) */
.bx-form .bx-chip:has(input:checked) span, .bx-chip:has(input:checked) span { background: var(--ink) !important; border-color: var(--ink) !important; color: var(--hull) !important; }

/* R64.3: hamburger links lift + slide on hover */
.nav__links > a { position: relative; display: inline-block; transition: color .3s ease, transform .35s cubic-bezier(.2,.7,.2,1), letter-spacing .35s ease; will-change: transform; }
.nav__links > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -.28em; height: 2px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.nav__links > a:hover, .nav__links > a:focus-visible { color: var(--accent) !important; transform: translate(.6rem, -3px); letter-spacing: .18em; }
.nav__links > a:hover::after, .nav__links > a:focus-visible::after { transform: scaleX(1); }
.nav__links > a.nav__sublink:hover { transform: translate(.6rem, -2px); letter-spacing: .28em !important; }
.nav__links > a.nav__sublink::after { display: none; }
@media (prefers-reduced-motion: reduce) { .nav__links > a, .nav__links > a::after { transition: none; } .nav__links > a:hover { transform: none; } }
/* R64.3: less black between the fleet map and the partners strip */
.underway { padding-bottom: clamp(1.6rem, 3.5vh, 2.6rem) !important; }
.wmap__note { margin-bottom: 0 !important; }
.partners { padding-top: clamp(2.2rem, 4.5vh, 3.4rem) !important; }
/* R64.3: destinations mosaic sits on the light canvas, no black behind the rounded tiles */
.mosaic, section.mosaic { background: var(--accent-mist) !important; gap: 10px !important; padding: 10px !important; }

/* ============================================================
   R65 (2026-09-01) — mosaic: flush collage, rounded tiles, hover float
   She does not want the page ground showing between/around the tiles.
   Zero gap + zero padding = collage runs to all four edges; the tiles
   keep their 14px radius and the hover lift. The only ground still
   visible is the tiny notch where four rounded corners meet, so it is
   ink (near-invisible against the photography) rather than mist.
   ============================================================ */
.mosaic, section.mosaic {
  gap: 0 !important;
  padding: 0 !important;
  background: var(--ink) !important;
}
.mosaic__tile { border-radius: 14px !important; }

/* ------------------------------------------------------------
   R65 — About page CTA band (#find-us, the only .reel--cta)
   Her notes: the Black Pearl still clashed with the Mar aerial
   directly above it, and the pills sat low in the band.
   .reel is align-items:flex-end (right for the film heads with
   copy at the bottom); this band is pills only, so it centres.
   Image back to the moonrise (warm dusk against the cool aerial),
   framed from the top so the moon is whole, with a lighter scrim
   so the dusk colour survives.
   ------------------------------------------------------------ */
.reel--cta { align-items: center; min-height: clamp(360px, 50vh, 520px); }
.reel--cta .reel__body { padding-block: clamp(2.4rem, 6vh, 4.5rem); }
.reel--cta .reel__media { background-position: center top; }
.reel--cta .reel__scrim {
  background: linear-gradient(to top, rgba(20,20,20,.42) 0%, rgba(20,20,20,.10) 45%, rgba(20,20,20,0) 78%);
}

/* ============================================================
   R66 (2026-09-02)
   ============================================================ */

/* Faint rules above and below the three service cards (homepage +
   management). They came from the ORIGINAL text-list .services (R1),
   which the photo-card variant inherited. Scoped off the photo variant
   only, so the yacht-page spec lists keep their rules. */
.services--photo { border-top: 0 !important; }
.services--photo .service { border-bottom: 0 !important; }

/* Mosaic: keep the flush collage, but the sliver visible where four
   rounded corners meet should read as the page, not as black. */
.mosaic, section.mosaic { background: var(--accent-mist) !important; }

/* Meet the team: two per row (was four), so the cards can breathe. */
.tm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
@media (max-width: 860px) { .tm-grid { grid-template-columns: 1fr !important; max-width: 460px; } }

/* Bio pages: each person's own mobile, WhatsApp and LinkedIn,
   the same chips as their card on the team page. */
.tp__reach { display: flex; flex-direction: column; align-items: flex-start; gap: .7rem; margin-top: 1.1rem; }
.tp__reach .tmcard__chips { margin-bottom: 0; }

/* Two per row means each card is now ~half the shell wide, and a 1:1
   portrait at that size is a wall of face. Lay the card out sideways
   above 860px: photo left, everything else right. */
@media (min-width: 861px) {
  .tm-grid .tmcard { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr); gap: clamp(1.2rem, 2vw, 1.8rem); align-items: start; }
  .tm-grid .tmcard__photo { aspect-ratio: 4/5; }
  .tm-grid .tmcard__body { padding-top: 0; }
  .tm-grid .tmcard__intro { max-width: none; }
}


/* ============================================================
   R67 (2026-09-02) — final punch list
   ============================================================ */

/* --- 1. LIVE MAP: taller viewport, the chart was cramped ---- */
/* R67.2 — the crop, not the box, was what read as cramped: the chart is
   1920x1248, so a short letterbox showed under half its height. Taller box
   + a wider-out default zoom (see index.html) now shows ~3/4 of it. */
.uw--wide .uw__viewport { width: 100% !important; aspect-ratio: auto !important; height: clamp(420px, 58vh, 620px) !important; min-height: 0; max-height: none; }
@media (max-width: 900px) {
  .uw--wide .uw__viewport { aspect-ratio: auto !important; min-height: 0; max-height: none;
    height: clamp(440px, 76vh, 680px) !important; }
}
.uw__explore-btn { border-radius: 999px !important; }

/* --- 2. Pre-headers and form labels at body-copy size -------- */
.eyebrow,
.fine.enq__reach {
  font-size: clamp(1rem, 0.95rem + 0.35vw, 1.25rem) !important;
  line-height: 1.4;
}
@media (max-width: 760px) {
  .eyebrow, .fine.enq__reach { letter-spacing: 0.2em !important; }
}
/* R67.1 — form field labels: readable, not shouting */
.field label { font-size: 0.8125rem !important; letter-spacing: 0.22em !important; line-height: 1.4; }
@media (max-width: 760px) { .field label { font-size: 0.75rem !important; letter-spacing: 0.18em !important; } }

/* "Or reach us directly" reads like the Enquire eyebrow; contacts at body size */
.fine.enq__reach { color: var(--accent) !important; margin: 2.5rem 0 0.9rem !important; }
.enquire .textlink--plain {
  text-transform: none !important;
  letter-spacing: 0.01em !important;
  font-size: clamp(1rem, 0.95rem + 0.35vw, 1.25rem) !important;
  border-bottom: 0;
  padding-bottom: 0;
  gap: 0;
}
.enquire .textlink--plain { font-weight: 400 !important; }
.enquire .textlink--plain:hover, .enquire .textlink--plain:focus-visible { color: var(--accent); gap: 0; }

/* --- 3. Destination collage: labels to the top-left ---------- */
.mosaic__cap { top: 0.95rem !important; bottom: auto !important; }

/* --- 4. Floating stack: sound above the permanent broker pill  */
.sound-toggle { bottom: calc(clamp(1rem, 2vw, 1.6rem) + 3.9rem) !important; z-index: 57 !important; }
.desk-card.is-min { bottom: clamp(1rem, 2vw, 1.6rem) !important; z-index: 59 !important; }
.desk-card:not(.is-min) { bottom: calc(clamp(1rem, 2vw, 1.6rem) + 3.4rem) !important; }
body.cy-desk-open .sound-toggle { bottom: clamp(1rem, 2vw, 1.6rem) !important; }

/* mobile: the minimised broker button is Anthea, circled in the accent */
@media (max-width: 760px) {
  .desk-card__mini {
    background: none !important; padding: 0 !important; box-shadow: none !important;
    border-radius: 50% !important; gap: 0 !important;
  }
  .desk-card__mini > span { display: none !important; }
  .desk-card__mini-face {
    width: 56px !important; height: 56px !important;
    border: 2px solid var(--accent) !important;
    box-shadow: 0 10px 26px rgba(0,0,0,.32);
  }
  .sound-toggle { bottom: calc(clamp(1rem, 2vw, 1.6rem) + 4.6rem) !important; }
  body.cy-desk-open .sound-toggle { bottom: clamp(1rem, 2vw, 1.6rem) !important; }
}

/* --- 5. Partnerships carousel: manual advance arrow ---------- */
.partners__row { position: relative; }
.partners__next {
  position: absolute; right: clamp(0.4rem, 1.6vw, 1.4rem); top: 50%;
  transform: translateY(-50%); z-index: 4;
  width: 44px; height: 44px; border-radius: 999px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(10,10,10,0.55); border: 1px solid var(--accent); color: var(--hull);
  font-size: 1rem; line-height: 1;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  transition: background 0.35s ease, color 0.35s ease;
}
.partners__next:hover, .partners__next:focus-visible { background: var(--accent); color: var(--ink); }
.partners__strip.is-manual .partners__track { transition: transform 0.55s cubic-bezier(.2,.8,.2,1); }
.partners__strip.is-manual.no-tween .partners__track { transition: none; }

/* --- 6. Instagram handle is a live link --------------------- */
.social__handle { color: inherit; text-decoration: none; transition: color 0.35s ease; }
.social__handle:hover, .social__handle:focus-visible { color: var(--accent); text-decoration: none; }


/* ============================================================
   R68 (2026-09-02)
   ============================================================ */

/* ---- Footer: concierge band ------------------------------- */
.foot__kicker--accent { color: var(--hull) !important; }
.foot__invite em { color: var(--accent) !important; }
.foot__buildlink {
  display: inline-flex; align-items: center; gap: .7rem; margin-top: 1.35rem;
  font-family: var(--body); font-size: .72rem; font-weight: 600;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--hull) !important; text-decoration: none; border: 0;
  transition: color .35s ease, transform .35s cubic-bezier(.2,.7,.2,1);
}
.foot__buildlink .tl-arrow { transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.foot__buildlink:hover, .foot__buildlink:focus-visible { color: var(--accent) !important; transform: translateY(-3px); }
.foot__buildlink:hover .tl-arrow, .foot__buildlink:focus-visible .tl-arrow { transform: translateX(5px); }
.foot__concierge-cta { margin-top: 1.2rem; }

/* ---- Footer: links lift on hover instead of just brightening */
.foot--grand .foot__col a, .foot__contact-line {
  display: block; width: fit-content;
  transition: color .3s ease, opacity .3s ease, transform .35s cubic-bezier(.2,.7,.2,1);
}
.foot--grand .foot__col a:hover, .foot--grand .foot__col a:focus-visible,
.foot__contact-line:hover, .foot__contact-line:focus-visible { transform: translateY(-3px); }
@media (prefers-reduced-motion: reduce) {
  .foot--grand .foot__col a, .foot__contact-line, .foot__buildlink { transition: color .3s ease; }
  .foot--grand .foot__col a:hover, .foot__contact-line:hover, .foot__buildlink:hover { transform: none; }
}

/* ---- Footer: social marks --------------------------------- */
.foot__social { display: flex; align-items: center; gap: 1.1rem; margin-top: .35rem; }
.foot__social a {
  display: inline-flex; color: var(--hull) !important; opacity: .78; margin: 0 !important;
  transition: color .3s ease, opacity .3s ease, transform .35s cubic-bezier(.2,.7,.2,1);
}
.foot__social a:hover, .foot__social a:focus-visible { opacity: 1; color: var(--accent) !important; transform: translateY(-3px); }

/* ---- Footer: collapsible columns on a phone ---------------- */
@media (max-width: 760px) {
  .foot__col h3 { cursor: pointer; position: relative; padding-right: 2rem; margin-bottom: 1rem; }
  .foot__col h3::after {
    content: ""; position: absolute; right: .4rem; top: 50%; width: 8px; height: 8px;
    border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
    transform: translateY(-70%) rotate(45deg); transition: transform .3s ease;
  }
  .foot__col:not(.is-collapsed) h3::after { transform: translateY(-20%) rotate(-135deg); }
  .foot__col.is-collapsed > a,
  .foot__col.is-collapsed > p,
  .foot__col.is-collapsed > .foot__social { display: none !important; }
  .foot__grid--grand { gap: 0 !important; }
  .foot__col { border-bottom: 1px solid rgba(255,255,255,.1); padding-block: .9rem; }
}

/* ---- Homepage: editorial band ------------------------------ */
.editorial__copy--serif p { font-family: var(--serif); letter-spacing: .005em; }
.editorial__copy--serif .editorial__lead { font-style: normal; }

/* ---- Homepage: catalogue peek cards lift like everything else */
.fcard { position: relative; }
.fcard__media { transition: transform .55s cubic-bezier(.2,.8,.2,1), box-shadow .55s ease; will-change: transform; }
.fcard:hover .fcard__media, .fcard:focus-visible .fcard__media {
  transform: translateY(-10px) scale(1.012); box-shadow: 0 26px 48px rgba(0,0,0,.22); z-index: 3;
}
@media (prefers-reduced-motion: reduce) { .fcard:hover .fcard__media { transform: none; } }

/* ---- Homepage: spotlight kicker in the accent -------------- */
.spotlight .spotlight__title--accent em,
.spotlight .display--duo.spotlight__title--accent em { color: var(--accent) !important; }

/* ---- Pill buttons: a drawn arrow, never an emoji ----------- */
.pill-arrow { display: inline-block; vertical-align: -1px; }

/* ---- Nav: the mark at the foot of the open drawer ---------- */
.nav__mark { display: none; }
@media (max-width: 900px) {
  .nav__panel { position: relative; }
  .nav__mark {
    display: block; position: absolute; left: var(--gutter, 1.4rem); bottom: 2.2rem;
    width: 96px; height: auto; opacity: .7; pointer-events: none;
  }
  .nav__links { padding-bottom: 5.5rem; }
}

/* ---- Compare bar: it went white-on-white when the palette flipped */
.cbar {
  border-radius: 999px !important;
  background: var(--hull) !important;
  color: var(--ink) !important;
  border: 1px solid rgba(10,10,10,.14) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.22) !important;
}
.cbar__names { color: var(--ink) !important; }
.cbar .btn { color: var(--ink) !important; border-bottom-color: rgba(10,10,10,.35) !important; }
.cbar .btn--solid {
  background: var(--ink) !important; color: var(--hull) !important;
  border-radius: 999px !important; border-bottom-color: transparent !important;
}
.cbar .btn--solid:hover, .cbar .btn--solid:focus-visible { background: var(--accent) !important; color: var(--ink) !important; }

/* ---- Catalogue on a phone: swipe through the fleet --------- */
@media (max-width: 760px) {
  .fleet--grid {
    display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: 12px;
    grid-template-columns: none !important; align-items: stretch;
    overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-inline: 4px; padding-bottom: .4rem;
  }
  .fleet--grid::-webkit-scrollbar { display: none; }
  .fleet--grid > .craft { flex: 0 0 100%; scroll-snap-align: center; }
  .fleet-swipe { position: relative; }
  .fleet-swipe__btn {
    position: absolute; top: 42%; transform: translateY(-50%); z-index: 4;
    width: 40px; height: 40px; border-radius: 999px; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(10,10,10,.62); border: 1px solid var(--accent); color: var(--hull);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font-size: .95rem; line-height: 1;
  }
  .fleet-swipe__btn--prev { left: 2px; }
  .fleet-swipe__btn--next { right: 2px; }
  .fleet-swipe__hint {
    display: block; text-align: center; margin-top: .8rem;
    font-family: var(--display); font-size: .58rem; letter-spacing: .3em;
    text-transform: uppercase; color: rgba(20,20,20,.5);
  }
}
@media (min-width: 761px) { .fleet-swipe__btn, .fleet-swipe__hint { display: none; } }


/* ============================================================
   R70 (2026-09-02) — team pages: office block + own enquiry form
   ============================================================ */
.tp__office { margin-top: 1.6rem; padding-top: 1.4rem; border-top: 1px solid var(--rule); max-width: 34ch; }
.tp__office-label {
  font-family: var(--display); font-size: .6rem; letter-spacing: .3em;
  text-transform: uppercase; color: var(--accent); margin: 0 0 .55rem;
}
.tp__office-addr { font-size: .95rem; line-height: 1.55; margin: 0 0 .5rem; color: rgba(20,20,20,.8); }
.tp__office-tel {
  display: inline-block; font-size: .95rem; letter-spacing: .02em; text-decoration: none;
  color: var(--ink); transition: color .3s ease, transform .35s cubic-bezier(.2,.7,.2,1);
}
.tp__office-tel:hover, .tp__office-tel:focus-visible { color: var(--accent); transform: translateY(-2px); }
.team-enquire { scroll-margin-top: 90px; }
@media (prefers-reduced-motion: reduce) { .tp__office-tel:hover { transform: none; } }


/* --- R70.1 — team cards: the name is the link, contacts sit on one row --- */
a.tmcard__name {
  display: inline-block; text-decoration: none; color: inherit;
  transition: color .3s ease, transform .35s cubic-bezier(.2,.7,.2,1);
}
a.tmcard__name:hover, a.tmcard__name:focus-visible { color: var(--accent); transform: translateY(-3px); }
@media (prefers-reduced-motion: reduce) { a.tmcard__name:hover { transform: none; } }

.tmcard__contact {
  flex-direction: row; flex-wrap: wrap; align-items: baseline;
  justify-content: space-between; gap: .6rem 1.4rem;
}
.tmcard__contact .tmcard__tel { margin-left: auto; text-align: right; }
@media (max-width: 520px) {
  .tmcard__contact { justify-content: flex-start; }
  .tmcard__contact .tmcard__tel { margin-left: 0; text-align: left; }
}

/* Guides index pre-header in the accent */
.gindex .band__head .eyebrow { color: var(--accent) !important; }


/* --- R70.2 — phone catalogue: whole cards (photo on top, body below) --- */
@media (max-width: 760px) {
  .fleet--grid { gap: 14px; padding-inline: 0; scroll-padding-inline: 0; }
  .fleet--grid > .craft.cw {
    background: var(--hull);
    border: 1px solid rgba(10,10,10,.09);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 14px 34px rgba(10,10,10,.08);
    display: flex; flex-direction: column;
  }
  /* the anchor keeps the photo as its background; the caption below is opaque,
     so the picture reads as the top of the card and the body as the bottom */
  .fleet--grid > .craft.cw .cw__media {
    aspect-ratio: auto !important;
    border-radius: 0 !important;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding-top: 76vw; max-height: none;
  }
  .fleet--grid > .craft.cw .cw__media::after { display: none; }
  .fleet--grid > .craft.cw .cw__cap {
    position: static; left: auto; right: auto; bottom: auto;
    background: var(--hull); color: var(--ink);
    text-align: left; padding: 1.05rem 1.15rem 1.15rem;
  }
  .fleet--grid > .craft.cw .cw__name {
    color: var(--ink) !important; font-size: 1.32rem; letter-spacing: .1em;
    text-shadow: none !important; margin-bottom: .5rem;
  }
  .fleet--grid > .craft.cw .cw__specs {
    color: rgba(10,10,10,.62) !important; font-size: .68rem; letter-spacing: .14em; text-shadow: none !important;
  }
  .fleet--grid > .craft.cw .cw__specs strong { color: var(--ink) !important; }
  .fleet--grid > .craft.cw .cw__cap, .fleet--grid > .craft.cw .cw__cap * { color: inherit; }
  .fleet--grid > .craft.cw .cw__from { color: rgba(10,10,10,.62) !important; }
  .fleet-swipe__btn { top: 34% !important; }
  .fleet--grid > .craft.cw .cw__cmp {
    position: static !important; display: block; width: calc(100% - 2.3rem);
    margin: 0 1.15rem 1.15rem; text-align: center;
    border: 1px solid var(--accent) !important; color: var(--ink) !important;
    background: none !important; border-radius: 999px !important; padding: .8rem 1rem !important;
  }
  .fleet--grid > .craft.cw .cw__cmp.is-picked {
    background: var(--accent) !important; color: var(--ink) !important;
  }
  .fleet--grid > .craft.cw .cw__type { top: .9rem; right: .9rem; }
}

/* multi-paragraph bios on the team profiles */
.tp__bio-inline + .tp__bio-inline { margin-top: 1rem; }

/* R70.5 — the hero "Build your charter" sat at 800 while every other button is 500 */
.hero__cta .btn--solid { font-weight: 500 !important; letter-spacing: .18em !important; }


/* ============================================================
   R71 (2026-09-02) — live map moved to Destinations
   ============================================================ */
/* zoom controls to the top-right corner */
.uw__zoom { top: 1rem !important; bottom: auto !important; right: 1rem !important; }
@media (max-width: 900px) { .uw__zoom { top: .6rem !important; right: .6rem !important; bottom: auto !important; } }

/* the manifest is click-only, and can be closed again */
.uw__explore .uw__list,
.uw__explore:hover .uw__list, .uw__explore:focus-within .uw__list {
  opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(8px);
}
.uw__explore.is-open .uw__list {
  opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; transform: none !important;
}
.uw__manifest-head { position: relative; padding-right: 2rem; }
.uw__list-x {
  position: absolute; top: -.55rem; right: -.35rem;
  width: 30px; height: 30px; border: 0; background: none; cursor: pointer;
  color: rgba(255,255,255,.6); font-size: 1.25rem; line-height: 1; padding: 0;
  transition: color .3s ease;
}
.uw__list-x:hover, .uw__list-x:focus-visible { color: var(--accent); }


/* R71.1 — the Yacht Management service blocks are not links, so they must not
   behave like one (no lift, no photo zoom, no accent title on hover). */
.mgmt-services .service:hover,
.mgmt-services .service:focus-within { transform: none !important; cursor: default; }
.mgmt-services .service:hover .service__photo,
.mgmt-services .service:focus-within .service__photo { transform: none !important; filter: none !important; }
.mgmt-services .service:hover .service__name,
.mgmt-services .service:focus-within .service__name { color: inherit !important; }


/* ============================================================
   R72 (2026-09-02) — "Beyond the vessel" mission block
   ============================================================ */
.spotlight--ink, section.band.spotlight--ink { background: var(--ink) !important; position: relative; }
.spotlight--ink .spotlight__title, .spotlight--ink .spotlight__head-sub { color: var(--hull) !important; }
.spotlight--ink .spotlight__lede { color: rgba(255,255,255,.78) !important; }
.spotlight--ink .spotlight__title em { color: var(--accent) !important; }
.spotlight--ink .spotlight__photo { box-shadow: 0 26px 70px rgba(0,0,0,.5); }

/* image right, copy left */
.spotlight--flip .spotlight__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
.spotlight--flip .spotlight__body { grid-column: 1; grid-row: 1; }
.spotlight--flip .spotlight__photo { grid-column: 2; grid-row: 1; }
@media (max-width: 900px) {
  .spotlight--flip .spotlight__grid { grid-template-columns: 1fr; }
  .spotlight--flip .spotlight__photo { grid-column: 1; grid-row: 1; }
  .spotlight--flip .spotlight__body { grid-column: 1; grid-row: 2; }
}

/* the whole band is the link; the pill is decoration sitting under it */
.spotlight__cover { position: absolute; inset: 0; z-index: 4; }
.spotlight--ink .spotlight__actions { margin-top: 1.9rem; }
.spotlight--ink .spotlight__faux {
  background: var(--hull) !important; color: var(--ink) !important; border: 0 !important;
  display: inline-flex; align-items: center; gap: .8rem;
  padding: 1rem 2rem !important; border-radius: 999px !important;
  font-family: var(--body); font-size: .8rem; font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase; line-height: 1;
  transition: background .35s ease, color .35s ease, transform .35s cubic-bezier(.2,.7,.2,1);
}
.spotlight--ink .spotlight__faux .tl-arrow { transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.spotlight--ink:hover .spotlight__faux { background: var(--accent) !important; }
.spotlight--ink:hover .spotlight__faux .tl-arrow { transform: translateX(5px); }
.spotlight--ink .spotlight__photo { transition: transform .55s cubic-bezier(.2,.8,.2,1); will-change: transform; }
.spotlight--ink:hover .spotlight__photo { transform: translateY(-8px) scale(1.012); }
.spotlight__cover:focus-visible { outline: 2px solid var(--accent); outline-offset: -6px; }
@media (prefers-reduced-motion: reduce) {
  .spotlight--ink:hover .spotlight__photo, .spotlight--ink:hover .spotlight__faux { transform: none; }
}


/* --- R72.1 — phone: the six featured yachts swipe like the catalogue --- */
@media (max-width: 760px) {
  .fleet-swipe--home .fgrid {
    display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
    grid-template-columns: none !important; gap: 12px; align-items: stretch;
    overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; padding-bottom: .4rem;
  }
  .fleet-swipe--home .fgrid::-webkit-scrollbar { display: none; }
  .fleet-swipe--home .fgrid > .fcard { flex: 0 0 100%; scroll-snap-align: center; }
  .fleet-swipe--home .fgrid > .fcard .fcard__media { aspect-ratio: 4 / 3; }
  .fleet-swipe--home .fleet-swipe__btn { top: 32% !important; }
}


/* ============================================================
   R73 (2026-09-02) — the footer on a phone: one left edge,
   tighter rhythm, nothing floating in the middle
   ============================================================ */
@media (max-width: 760px) {
  /* everything below the mark shares the shell's left edge */
  .foot--grand .foot__concierge-inner {
    text-align: left !important; justify-content: flex-start !important;
    align-items: flex-start; flex-direction: column; gap: 1.6rem;
    padding-block: 2.2rem 2.4rem;
  }
  .foot--grand .foot__concierge-copy { width: 100%; }
  .foot--grand .foot__concierge-contact { text-align: left !important; width: 100%; }
  .foot--grand .foot__concierge-cta {
    flex-direction: row !important; align-items: flex-start !important;
    justify-content: flex-start !important; margin-top: 1rem; gap: .8rem;
  }
  .foot--grand .foot__invite { font-size: 1.3rem; line-height: 1.4; }
  .foot--grand .foot__buildlink { margin-top: 1.1rem; }
  .foot--grand .foot__contact-line { font-size: 1rem; margin-bottom: .5rem; }

  /* the mark keeps its own centred moment, just tighter */
  .foot--grand .foot__mark { padding-top: 2.6rem; }
  .foot--grand .foot__logo { width: min(70vw, 320px); }
  .foot--grand .foot__motto { margin-top: 1rem; font-size: .55rem; letter-spacing: .3em; }

  /* accordion rows: full-width tap target, chevron on the shell's right edge */
  .foot__grid--grand { padding-top: .4rem !important; }
  .foot__col { padding-block: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .foot__col h3 {
    display: flex; align-items: center; justify-content: space-between;
    margin: 0 !important; padding: 1.05rem 0; padding-right: 0;
    font-size: .62rem !important; letter-spacing: .28em !important;
    color: rgba(255,255,255,.72) !important;
  }
  .foot__col h3::after { position: static; transform: rotate(45deg); margin-bottom: 3px; flex: 0 0 auto; }
  .foot__col:not(.is-collapsed) h3::after { transform: rotate(-135deg); margin-bottom: 0; margin-top: 3px; }
  .foot__col:not(.is-collapsed) { padding-bottom: 1.1rem; }
  .foot--grand .foot__col a { font-size: .95rem; margin: 0 0 .85rem; }
  .foot__social { margin-top: .6rem; gap: 1.4rem; }

  .foot__col:last-child { border-bottom: 0; }
  .foot__offices { text-align: left; padding-top: 1.4rem; margin-top: 0 !important; border-top: 1px solid rgba(255,255,255,.12); }
  .foot__base--grand { text-align: left !important; }
  .foot__base--grand .fine { margin-inline: 0; }

  /* clear of the floating broker pill and sound toggle */
  .foot--grand, footer.foot.foot--grand { padding-bottom: 7.5rem !important; }
}

/* --- R75 (2026-09-02) — phone catalogue cards: photo edge to edge, wider crop --- */
@media (max-width: 760px) {
  /* .craft's base align-items:center was shrinking the photo to its own width */
  .fleet--grid > .craft.cw { align-items: stretch !important; justify-content: flex-start; }
  .fleet--grid > .craft.cw .cw__media {
    width: 100% !important; align-self: stretch;
    padding-top: 0 !important; aspect-ratio: 4 / 3 !important; min-height: 0;
    background-position: center 58%; /* favour hull and water over sky */
    text-decoration: none !important;
  }
  .fleet--grid > .craft.cw .cw__media > * { text-decoration: none !important; }
  .fleet--grid > .craft.cw .cw__cap { width: 100%; padding: 1.1rem 1.15rem 1rem; }
  .fleet--grid > .craft.cw .cw__name { font-size: 1.28rem; letter-spacing: .12em; margin-bottom: .4rem; }
  .fleet--grid > .craft.cw .cw__specs { font-size: .64rem; letter-spacing: .12em; }
  /* let the rail bleed to a 12px gutter so the photo fills the screen */
  .fleet-swipe { margin-inline: calc(12px - var(--gutter)); }
  .fleet--grid > .craft.cw { border-radius: 16px; box-shadow: 0 10px 28px rgba(10,10,10,.07); }
  .fleet-swipe__btn { top: 30% !important; width: 38px; height: 38px; }
  .fleet-swipe__btn--prev { left: 10px; } .fleet-swipe__btn--next { right: 10px; }
}

/* --- R76 (2026-09-02) — catalogue card body moved out of the photo link ---
   Desktop: .cw__body is transparent (display:contents) so the caption still sits
   over the photo exactly as before; the phone-only pieces are hidden. */
.cw__body { display: contents; }
.cw__cap { pointer-events: none; }
.cw__unit, .cw__grid, .cw__view, .fleet-swipe__nav { display: none; }

/* Phone: Edmiston-style card. Photo 16:9 on top, hairline border, name, rate,
   two-column spec grid with icons, stacked buttons, arrows under the card,
   the next card peeking at the right edge. Overrides R70.2 + R75 above. */
@media (max-width: 760px) {
  .fleet-swipe { margin-inline: calc(12px - var(--gutter)) calc(0px - var(--gutter)); }
  .fleet--grid { gap: 12px !important; padding-inline: 0 12px !important; scroll-padding-inline: 0 !important; }
  .fleet--grid > .craft.cw {
    flex: 0 0 88% !important; scroll-snap-align: start !important;
    background: var(--hull); border: 1px solid rgba(10,10,10,.16) !important;
    border-radius: 14px; box-shadow: none !important; overflow: hidden;
    display: flex; flex-direction: column; align-items: stretch !important;
  }
  .fleet--grid > .craft.cw .cw__media {
    display: block !important; width: 100% !important; padding: 0 !important;
    aspect-ratio: 16 / 9 !important; border-radius: 0 !important;
    background-position: center 55%;
  }
  .fleet--grid > .craft.cw .cw__media::after { display: none; }
  .fleet--grid > .craft.cw .cw__type {
    top: auto; right: auto; bottom: 0; left: 0;
    border: 0; border-radius: 0 12px 0 0; background: var(--hull); color: var(--ink);
    backdrop-filter: none; -webkit-backdrop-filter: none;
    font-size: .58rem; letter-spacing: .26em; padding: .62rem 1.1rem .5rem;
  }
  .fleet--grid > .craft.cw .cw__body { display: flex; flex-direction: column; padding: 1.15rem 1.15rem 1.15rem; }
  .fleet--grid > .craft.cw .cw__cap { position: static; pointer-events: auto; text-align: left; padding: 0; background: none; }
  .fleet--grid > .craft.cw .cw__name {
    color: var(--ink) !important; font-size: 1.55rem; letter-spacing: .1em; line-height: 1.05;
    text-shadow: none !important; margin-bottom: .55rem;
  }
  .fleet--grid > .craft.cw .cw__specs {
    color: var(--ink) !important; text-shadow: none !important;
    font-size: .8rem; font-weight: 500; letter-spacing: .04em; text-transform: none;
  }
  .fleet--grid > .craft.cw .cw__specs strong { color: var(--ink) !important; font-weight: 700; }
  .fleet--grid > .craft.cw .cw__from { color: rgba(10,10,10,.55) !important; font-size: .9em; }
  .fleet--grid > .craft.cw .cw__unit { display: inline; color: rgba(10,10,10,.62); letter-spacing: .02em; }
  .fleet--grid > .craft.cw .cw__specs i, .fleet--grid > .craft.cw .cw__sp { display: none; }
  .fleet--grid > .craft.cw .cw__grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: .8rem 1rem;
    margin: 1.1rem 0 1.35rem; padding-top: 1.05rem; border-top: 1px solid rgba(10,10,10,.1);
  }
  .fleet--grid > .craft.cw .cw__cell {
    display: flex; align-items: center; gap: .6rem; min-width: 0;
    font-family: var(--body); font-size: .76rem; font-weight: 500; letter-spacing: .03em; color: var(--ink);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .fleet--grid > .craft.cw .cw__cell::before {
    content: ""; flex: 0 0 18px; width: 18px; height: 18px; background: var(--accent);
    -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
  }
  .cw__cell--len { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h18M7 8l-4 4 4 4M17 8l4 4-4 4'/%3E%3C/svg%3E"); }
  .cw__cell--gst { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M2.5 20c.6-3.6 3.2-5.5 6.5-5.5s5.9 1.9 6.5 5.5M15.5 5.2a3 3 0 0 1 0 5.6M17 14.6c2.6.5 4.2 2.3 4.6 5.4'/%3E%3C/svg%3E"); }
  .cw__cell--cab { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18V8M21 18v-6a2 2 0 0 0-2-2h-9v6M3 16h18M3 12h7V8H5a2 2 0 0 0-2 2z'/%3E%3C/svg%3E"); }
  .cw__cell--bld { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14l9-9 9 9M6 11v8h12v-8M12 5v6'/%3E%3C/svg%3E"); }
  .cw__cell--yr  { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M7 14h2M11 14h2M15 14h2M7 18h2M11 18h2'/%3E%3C/svg%3E"); }
  .fleet--grid > .craft.cw .cw__actions { display: flex; flex-direction: column; gap: .6rem; margin-top: auto; }
  .fleet--grid > .craft.cw .cw__view {
    display: block; text-align: center; text-decoration: none;
    font-family: var(--body); font-size: .66rem; font-weight: 700; letter-spacing: .26em; text-transform: uppercase;
    background: var(--ink); color: var(--hull); border-radius: 999px; padding: .95rem 1rem;
  }
  .fleet--grid > .craft.cw .cw__cmp {
    position: static !important; display: block; width: 100%; margin: 0;
    text-align: center; border: 1px solid var(--accent) !important; color: var(--ink) !important;
    background: none !important; border-radius: 999px !important; padding: .9rem 1rem !important;
    font-size: .66rem !important; letter-spacing: .26em;
  }
  .fleet--grid > .craft.cw .cw__cmp.is-picked { background: var(--accent) !important; color: var(--ink) !important; }
  /* arrows under the rail, not on the photo */
  .fleet-swipe__btn { position: static !important; transform: none !important; width: 44px; height: 44px;
    background: none; border: 1px solid rgba(10,10,10,.25); color: var(--ink); backdrop-filter: none; -webkit-backdrop-filter: none; }
  .fleet-swipe__btn:active { background: var(--accent); border-color: var(--accent); }
  .fleet-swipe__nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    margin-top: 1.1rem; padding-right: var(--gutter); }
  .fleet-swipe__hint { margin: 0; }
}

/* --- R76 — back to top (site-wide, injected by site.js; bottom-left so it never
   collides with the concierge avatar bottom-right) --- */
.totop {
  position: fixed; left: 18px; bottom: 18px; z-index: 60; width: 44px; height: 44px;
  border-radius: 999px; border: 1px solid rgba(10,10,10,.18); background: var(--hull); color: var(--ink);
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  box-shadow: 0 8px 22px rgba(10,10,10,.14);
  opacity: 0; transform: translateY(12px); pointer-events: none;
  transition: opacity .3s ease, transform .3s ease, background .2s ease;
}
.totop.is-on { opacity: 1; transform: none; pointer-events: auto; }
.totop:hover, .totop:focus-visible { background: var(--accent); border-color: var(--accent); }
.totop svg { width: 18px; height: 18px; }
@media (prefers-reduced-motion: reduce) { .totop { transition: none; } }

/* --- R76.2 — team profile pages: photo top-aligned with the eyebrow + name
   (the grid was vertically centred, so longer bios pushed the photo down) --- */
.tp, .tp--dense { align-items: start !important; }
.tp__photo { align-self: start; }
.tp__intro > .eyebrow:first-child { margin-top: 0; }
.bio-link { font: inherit; letter-spacing: inherit; text-transform: none; color: inherit;
  text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 1.5px; text-underline-offset: .2em; }
.bio-link:hover, .bio-link:focus-visible { color: var(--accent); }

/* --- R76.3 — phone catalogue: no type bubble on the photo; prefix goes in the name --- */
@media (max-width: 760px) {
  .fleet--grid > .craft.cw .cw__type { display: none !important; }
  .fleet--grid > .craft.cw .cw__name[data-type]::before {
    content: attr(data-type) " "; font-weight: 400; color: rgba(10,10,10,.55); letter-spacing: .08em;
  }
}

/* --- R76.4 — footer accordion always ONE column on phones. auto-fit minmax(190px)
   fitted two columns on wide phones (iPhone Max, 430px) once the accordion zeroed the gap. */
@media (max-width: 760px) {
  .foot__grid, .foot__grid--grand { grid-template-columns: 1fr !important; }
}

/* --- R76.7 — homepage featured six on a phone: keep the rail inside the page gutter
   (R76's bleed was built for the catalogue cards) and give the rate line room;
   the row wraps instead of pushing "/ week" to the screen edge. --- */
@media (max-width: 760px) {
  .fleet-swipe--home { margin-inline: 0 !important; }
  .fleet-swipe--home .fgrid { padding-inline: 0 !important; }
  .fleet-swipe--home .fgrid > .fcard { flex: 0 0 100% !important; scroll-snap-align: center !important; }
  .fleet-swipe--home .fcard__row { flex-wrap: wrap; gap: .35rem 1rem; padding-right: .25rem; }
  .fleet-swipe--home .fcard__rate { white-space: normal; }
  .fleet-swipe--home .fleet-swipe__nav { padding-right: 0; }
}

/* --- R76.11 — Impulsive hero: Fiji frame is cropped so the yacht sits above the title;
   anchor the crop to its top so the yacht stays clear of the text on any viewport --- */
.vhero__media[style*="22-fiji-island-hero"] { background-position: center top; }
@media (min-width: 900px) { .vhero:has(.vhero__media[style*="22-fiji-island-hero"]) { min-height: 78svh; } }

/* --- R76.12 — back-to-top in the accent so it reads on any page --- */
.totop { background: var(--accent) !important; border-color: var(--accent) !important; color: var(--ink) !important;
  width: 50px; height: 50px; box-shadow: 0 10px 26px rgba(30,200,216,.35); }
.totop svg { width: 22px; height: 22px; stroke-width: 2.2; }
.totop:hover, .totop:focus-visible { background: var(--ink) !important; border-color: var(--ink) !important; color: var(--accent) !important; }
@media (max-width: 899px) { .vhero__media[style*="22-fiji-island-hero"] { background-size: auto 128%; background-position: center 100%; } }

/* --- R77 (2026-09-03) --- */
/* Guide / destination "Take this water" box: R60's pill list had swept it to 999px (an ellipse on phones) */
.gd__cta { border-radius: 16px !important; }
/* Homepage destinations collage: square-cornered, all viewports */
.mosaic--home .mosaic__tile { border-radius: 0 !important; }
/* Enquiry: preference line when arriving from a yacht page */
.enq__pref { margin: 0 0 1.1rem; font-family: var(--display); font-size: .7rem; letter-spacing: .24em; text-transform: uppercase; color: var(--accent-pale); }
.enq__pref strong { color: var(--hull); font-weight: 500; }
