/* ===== Seabound Trafalgar cluster — interactive/animation enhancement layer ===== */
/* Shared across cluster pages. Additive only — does not alter existing layout classes. */

/* ---------- Hero FX: animated starfield + moon + ship, matching the OG art ---------- */
.hero{ isolation:isolate; }
.hero-fx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.hero-fx .hf-star{position:absolute;border-radius:50%;background:#d7e4e6;will-change:opacity;
  animation:hfTwinkle var(--dur,3.6s) ease-in-out var(--delay,0s) infinite}
@keyframes hfTwinkle{0%,100%{opacity:var(--lo,.15)}50%{opacity:var(--hi,.75)}}
.hero-fx .hf-moon{position:absolute;top:-46px;width:130px;height:130px;border-radius:50%;
  background:var(--brass-lt,#d0a862);box-shadow:0 0 60px 22px rgba(208,168,98,.22);
  animation:hfGlow 5.5s ease-in-out infinite}
.hero-fx .hf-moon::after{content:"";position:absolute;top:6px;border-radius:50%;
  width:108px;height:108px;background:var(--deep,#0B3138)}
.hero-fx .hf-moon.right{right:6%}.hero-fx .hf-moon.right::after{left:28px}
.hero-fx .hf-moon.left{left:6%}.hero-fx .hf-moon.left::after{left:-6px}
@keyframes hfGlow{0%,100%{box-shadow:0 0 60px 22px rgba(208,168,98,.18)}50%{box-shadow:0 0 72px 28px rgba(208,168,98,.30)}}
.hero-fx .hf-ship{position:absolute;bottom:14px;opacity:.5;animation:hfBob 7s ease-in-out infinite}
.hero-fx .hf-ship.right{right:-46px}.hero-fx .hf-ship.left{left:-46px}
.hero-fx .hf-ship.small.right{right:-30px}.hero-fx .hf-ship.small.left{left:-30px}
.hero-fx .hf-hull{position:absolute;bottom:0;height:38px;border-radius:22px;background:rgba(0,0,0,.28)}
.hero-fx .hf-ship.right .hf-hull{right:0;width:270px}
.hero-fx .hf-ship.left .hf-hull{left:0;width:270px}
.hero-fx .hf-ship.small .hf-hull{height:26px;border-radius:16px}
.hero-fx .hf-ship.small.right .hf-hull{width:190px}
.hero-fx .hf-ship.small.left .hf-hull{width:190px}
.hero-fx .hf-stack{position:absolute;width:34px;height:46px;border-radius:5px 5px 0 0;background:rgba(0,0,0,.28)}
.hero-fx .hf-ship.right .hf-stack{right:96px;bottom:30px}
.hero-fx .hf-ship.left .hf-stack{left:96px;bottom:30px}
.hero-fx .hf-ship.small .hf-stack{width:22px;height:30px;border-radius:4px 4px 0 0}
.hero-fx .hf-ship.small.right .hf-stack{right:64px;bottom:20px}
.hero-fx .hf-ship.small.left .hf-stack{left:64px;bottom:20px}
.hero-fx .hf-win{position:absolute;display:flex;gap:9px}
.hero-fx .hf-ship.right .hf-win{right:34px;bottom:12px}
.hero-fx .hf-ship.left .hf-win{left:34px;bottom:12px}
.hero-fx .hf-ship.small .hf-win{gap:6px}
.hero-fx .hf-ship.small.right .hf-win{right:22px;bottom:7px}
.hero-fx .hf-ship.small.left .hf-win{left:22px;bottom:7px}
.hero-fx .hf-win span{width:9px;height:9px;border-radius:2px;background:rgba(0,0,0,.3)}
.hero-fx .hf-ship.small .hf-win span{width:6px;height:6px}
.hero-fx .hf-win span.brass{background:var(--brass-lt,#d0a862);opacity:.85}
@keyframes hfBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media(max-width:760px){.hero-fx .hf-moon{width:88px;height:88px;top:-30px}.hero-fx .hf-moon::after{width:72px;height:72px}
  .hero-fx .hf-ship{opacity:.32}
  .hero-fx .hf-ship.right{right:-90px}.hero-fx .hf-ship.left{left:-90px}
  .hero-fx .hf-ship.small.right{right:-70px}.hero-fx .hf-ship.small.left{left:-70px}}
@media(prefers-reduced-motion:reduce){
  .hero-fx .hf-star,.hero-fx .hf-moon,.hero-fx .hf-ship{animation:none}
  .hero-fx .hf-star{opacity:.45}
}

/* ---------- Scroll reveal ---------- */
.rv{opacity:0;transform:translateY(14px);transition:opacity .55s cubic-bezier(.2,.7,.2,1),transform .55s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ---------- Hover-lift micro-interactions ---------- */
.card,.kx a,.op,.idx-card{transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s ease,border-color .22s ease}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 26px -16px rgba(11,49,56,.35)}
.kx a:hover{transform:translateY(-2px)}
.tbl tbody tr{transition:background .15s ease}
.tbl tbody tr:hover{background:rgba(184,134,59,.07)}
@media(prefers-reduced-motion:reduce){.card,.kx a,.tbl tbody tr{transition:none}.card:hover,.kx a:hover{transform:none}}

/* ---------- Nav scroll-spy ---------- */
.navbar a{position:relative;transition:color .2s ease}
.navbar a.on{color:var(--brass-text,#89642C);font-weight:700}
.navbar a.on::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:2px;background:var(--brass,#B8863B)}

/* ---------- Comparison chart component ---------- */
.cchart{margin:22px 0 8px;border:1px solid var(--paper-2,#E4E7DE);border-radius:10px;background:#fbfaf6;
  padding:20px 22px 14px;box-shadow:0 1px 0 rgba(11,49,56,.04)}
.cchart-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.cchart-title{font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:15px;color:var(--ink,#12262A)}
.cchart-legend{display:flex;gap:16px;flex-wrap:wrap}
.cchart-leg{display:flex;align-items:center;gap:7px;font-family:"Space Mono",monospace;font-size:11px;
  letter-spacing:.03em;color:var(--muted,#5b6b6b)}
.cchart-swatch{width:10px;height:10px;border-radius:3px;flex:none}
.cchart-row{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center;padding:9px 0}
.cchart-lbl{font-size:13.5px;color:var(--ink,#12262A);line-height:1.35}
.cchart-track{position:relative;height:26px}
.cchart-bar{position:absolute;top:3px;height:20px;border-radius:0 5px 5px 0;left:0;
  transform-origin:left;transform:scaleX(0);transition:transform 1s cubic-bezier(.2,.7,.15,1);cursor:pointer}
.cchart-bar.in{transform:scaleX(1)}
.cchart-bar .cchart-val{position:absolute;top:50%;transform:translateY(-50%);
  font-family:"Space Mono",monospace;font-size:12px;font-weight:700;white-space:nowrap;color:var(--ink,#12262A)}
.cchart-bar .cchart-val.inside{right:8px;color:#fff}
.cchart-bar .cchart-val.outside{left:calc(100% + 8px)}
.cchart-tt{position:absolute;pointer-events:none;background:var(--deep,#0B3138);color:#fff;
  font-family:"Space Mono",monospace;font-size:11px;padding:6px 10px;border-radius:6px;white-space:nowrap;
  opacity:0;transform:translate(-50%,-8px);transition:opacity .15s ease;z-index:5;box-shadow:0 8px 20px -8px rgba(0,0,0,.5)}
.cchart-tt.show{opacity:1}
.cchart-note{font-size:12.5px;color:var(--muted,#5b6b6b);margin-top:10px;line-height:1.5}
@media(max-width:640px){.cchart-row{grid-template-columns:100px 1fr}.cchart-lbl{font-size:12.5px}}
@media(prefers-reduced-motion:reduce){.cchart-bar{transition:none;transform:scaleX(1)}}

/* ---------- Animated stat counter (numeric stat-nums only; non-numeric fade as-is via .rv) ---------- */
.stat-num{display:inline-block}

/* ---------- True Cost Calculator ---------- */
.tcc{border:1px solid var(--paper-2,#E4E7DE);border-radius:12px;background:#fbfaf6;padding:0;overflow:hidden;
  margin:26px 0;box-shadow:0 1px 0 rgba(11,49,56,.04)}
.tcc-top{background:var(--deep,#0B3138);color:#fff;padding:18px 22px}
.tcc-top h3{font-family:"Bricolage Grotesque",sans-serif;font-size:18px;margin:0 0 4px;color:#fff;font-weight:700}
.tcc-top p{margin:0;font-size:13px;color:#b8cdd0;line-height:1.5}
.tcc-body{padding:20px 22px 22px}
.tcc-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}
.tcc-f{display:flex;flex-direction:column;gap:7px}
.tcc-f label{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted,#5b6b6b)}
.tcc-f select,.tcc-f input[type=number]{font-family:inherit;font-size:14.5px;padding:9px 11px;border-radius:7px;
  border:1px solid var(--paper-2,#E4E7DE);background:#fff;color:var(--ink,#12262A);width:100%}
.tcc-f select:focus,.tcc-f input:focus{outline:2px solid var(--brass,#B8863B);outline-offset:1px;border-color:transparent}
.tcc-seg{display:flex;gap:0;border:1px solid var(--paper-2,#E4E7DE);border-radius:7px;overflow:hidden;background:#fff}
.tcc-seg button{flex:1;font-family:inherit;font-size:13.5px;padding:9px 6px;border:0;background:#fff;
  color:var(--muted,#5b6b6b);cursor:pointer;transition:background .16s ease,color .16s ease}
.tcc-seg button+button{border-left:1px solid var(--paper-2,#E4E7DE)}
.tcc-seg button[aria-pressed=true]{background:var(--brass,#B8863B);color:#fff;font-weight:700}
.tcc-range{display:flex;align-items:center;gap:12px}
.tcc-range input[type=range]{flex:1;accent-color:var(--brass,#B8863B);min-width:0}
.tcc-range output{font-family:"Space Mono",monospace;font-size:13px;font-weight:700;color:var(--ink,#12262A);
  min-width:62px;text-align:right}
.tcc-out{margin-top:22px;border-top:1px solid var(--paper-2,#E4E7DE);padding-top:20px}
.tcc-total{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:4px}
.tcc-total .lbl{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted,#5b6b6b)}
.tcc-total .amt{font-family:"Bricolage Grotesque",sans-serif;font-size:30px;font-weight:700;color:var(--ink,#12262A);
  line-height:1.1}
.tcc-perday{font-size:13px;color:var(--muted,#5b6b6b);margin:0 0 16px}
.tcc-stack{display:flex;height:30px;border-radius:6px;overflow:hidden;background:#eceee7}
.tcc-seg-bar{height:100%;transition:width .5s cubic-bezier(.2,.7,.2,1);position:relative;cursor:default}
.tcc-seg-bar+.tcc-seg-bar{box-shadow:-2px 0 0 #fbfaf6}
.tcc-key{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px}
.tcc-key-i{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink,#12262A)}
.tcc-key-i .sw{width:10px;height:10px;border-radius:3px;flex:none}
.tcc-key-i .v{font-family:"Space Mono",monospace;color:var(--muted,#5b6b6b)}
.tcc-note{font-size:12.5px;color:var(--muted,#5b6b6b);line-height:1.55;margin-top:16px;
  border-left:2px solid var(--brass,#B8863B);padding-left:12px}
.tcc-note b{color:var(--ink,#12262A)}
@media(max-width:640px){.tcc-grid{grid-template-columns:1fr;gap:16px}.tcc-total .amt{font-size:25px}
  .tcc-body{padding:18px 16px}.tcc-top{padding:16px}}
@media(prefers-reduced-motion:reduce){.tcc-seg-bar{transition:none}}

/* ---------- Wide 5-column operator comparison ---------- */
.tbl.mastercmp{table-layout:fixed;width:100%}
.tbl.mastercmp th,.tbl.mastercmp td{font-size:13.5px;line-height:1.45;vertical-align:top;
  overflow-wrap:break-word;word-break:normal;hyphens:auto}
.tbl.mastercmp th:nth-child(1),.tbl.mastercmp td:nth-child(1){width:15%}
.tbl.mastercmp th:nth-child(2),.tbl.mastercmp td:nth-child(2){width:20%}
.tbl.mastercmp th:nth-child(3),.tbl.mastercmp td:nth-child(3){width:25%}
.tbl.mastercmp th:nth-child(4),.tbl.mastercmp td:nth-child(4){width:16%}
.tbl.mastercmp th:nth-child(5),.tbl.mastercmp td:nth-child(5){width:24%}
@media(max-width:900px){.tbl.mastercmp{table-layout:auto;min-width:720px}}

/* ---------- Tour Matcher ---------- */
.tmx{border:1px solid var(--paper-2,#E4E7DE);border-radius:12px;background:#fbfaf6;overflow:hidden;
  margin:26px 0;box-shadow:0 1px 0 rgba(11,49,56,.04)}
.tmx-top{background:var(--deep,#0B3138);color:#fff;padding:18px 22px}
.tmx-top h3{font-family:"Bricolage Grotesque",sans-serif;font-size:18px;margin:0 0 4px;color:#fff;font-weight:700}
.tmx-top p{margin:0;font-size:13px;color:#b8cdd0;line-height:1.5}
.tmx-body{padding:20px 22px 22px}
.tmx-q{margin-bottom:16px}
.tmx-q > span.q{display:block;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--muted,#5b6b6b);margin-bottom:8px}
.tmx-opts{display:flex;flex-wrap:wrap;gap:8px}
.tmx-opts button{font-family:inherit;font-size:13.5px;padding:8px 13px;border-radius:999px;cursor:pointer;
  border:1px solid var(--paper-2,#E4E7DE);background:#fff;color:var(--ink,#12262A);
  transition:background .16s ease,color .16s ease,border-color .16s ease}
.tmx-opts button:hover{border-color:var(--brass,#B8863B)}
.tmx-opts button[aria-pressed=true]{background:var(--brass,#B8863B);border-color:var(--brass,#B8863B);
  color:#fff;font-weight:700}
.tmx-opts button:focus-visible{outline:2px solid var(--brass,#B8863B);outline-offset:2px}
.tmx-res{margin-top:22px;border-top:1px solid var(--paper-2,#E4E7DE);padding-top:18px}
.tmx-res h4{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted,#5b6b6b);margin:0 0 12px;font-weight:400}
.tmx-card{border:1px solid var(--paper-2,#E4E7DE);border-radius:9px;background:#fff;padding:14px 16px;margin-bottom:10px}
.tmx-card.top{border-color:var(--brass,#B8863B);box-shadow:0 0 0 1px var(--brass,#B8863B) inset}
.tmx-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.tmx-name{font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:15.5px;color:var(--ink,#12262A)}
.tmx-badge{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.05em;text-transform:uppercase;
  background:var(--brass,#B8863B);color:#fff;padding:3px 8px;border-radius:4px}
.tmx-meta{font-family:"Space Mono",monospace;font-size:12px;color:var(--muted,#5b6b6b);margin:6px 0 8px}
.tmx-meta b{color:var(--ink,#12262A)}
.tmx-why{font-size:13.5px;line-height:1.55;color:var(--ink,#12262A);margin:0 0 6px}
.tmx-watch{font-size:12.5px;line-height:1.5;color:var(--muted,#5b6b6b);margin:0;
  border-left:2px solid var(--brass,#B8863B);padding-left:10px}
.tmx-none{font-size:13.5px;color:var(--muted,#5b6b6b);line-height:1.6}
.tmx-note{font-size:12.5px;color:var(--muted,#5b6b6b);line-height:1.55;margin-top:14px}
@media(max-width:640px){.tmx-body{padding:18px 16px}.tmx-top{padding:16px}
  .tmx-opts button{font-size:13px;padding:8px 11px}}

/* ---------- Cancellation Exposure Planner ---------- */
.cxp{border:1px solid var(--paper-2,#E4E7DE);border-radius:12px;background:#fbfaf6;overflow:hidden;
  margin:26px 0;box-shadow:0 1px 0 rgba(11,49,56,.04)}
.cxp-top{background:var(--deep,#0B3138);color:#fff;padding:18px 22px}
.cxp-top h3{font-family:"Bricolage Grotesque",sans-serif;font-size:18px;margin:0 0 4px;color:#fff;font-weight:700}
.cxp-top p{margin:0;font-size:13px;color:#b8cdd0;line-height:1.5}
.cxp-body{padding:20px 22px 22px}
.cxp-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}
.cxp-f{display:flex;flex-direction:column;gap:7px}
.cxp-f label{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted,#5b6b6b)}
.cxp-f input[type=date],.cxp-f select{font-family:inherit;font-size:14.5px;padding:9px 11px;border-radius:7px;
  border:1px solid var(--paper-2,#E4E7DE);background:#fff;color:var(--ink,#12262A);width:100%}
.cxp-f input:focus,.cxp-f select:focus{outline:2px solid var(--brass,#B8863B);outline-offset:1px;border-color:transparent}
.cxp-out{margin-top:22px;border-top:1px solid var(--paper-2,#E4E7DE);padding-top:20px}
.cxp-stage{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.cxp-pill{font-family:"Space Mono",monospace;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;
  padding:4px 10px;border-radius:999px;color:#fff;background:var(--muted,#5b6b6b)}
.cxp-pill.safe{background:#2F7D45}.cxp-pill.warn{background:#B8863B}.cxp-pill.risk{background:#BE4B33}
.cxp-headline{font-family:"Bricolage Grotesque",sans-serif;font-size:19px;font-weight:700;
  color:var(--ink,#12262A);line-height:1.3;margin:0 0 10px}
.cxp-lede{font-size:14px;line-height:1.6;color:var(--ink,#12262A);margin:0 0 14px}
.cxp-lede b{color:var(--ink,#12262A)}
.cxp-track{position:relative;height:34px;border-radius:7px;background:#eceee7;overflow:hidden;margin:16px 0 8px}
.cxp-fill{position:absolute;top:0;bottom:0;left:0;transition:width .5s cubic-bezier(.2,.7,.2,1)}
.cxp-marker{position:absolute;top:0;bottom:0;width:2px;background:var(--deep,#0B3138)}
.cxp-marker span{position:absolute;top:-2px;left:5px;font-family:"Space Mono",monospace;font-size:10px;
  color:var(--deep,#0B3138);white-space:nowrap}
.cxp-scale{display:flex;justify-content:space-between;font-family:"Space Mono",monospace;font-size:10.5px;
  color:var(--muted,#5b6b6b);margin-bottom:14px}
.cxp-rows{border:1px solid var(--paper-2,#E4E7DE);border-radius:8px;background:#fff;overflow:hidden}
.cxp-row{display:flex;justify-content:space-between;gap:14px;padding:10px 14px;font-size:13.5px;
  border-bottom:1px solid var(--paper-2,#E4E7DE)}
.cxp-row:last-child{border-bottom:0}
.cxp-row.hi{background:rgba(184,134,59,.09);font-weight:700}
.cxp-row .k{color:var(--ink,#12262A)}
.cxp-row .v{font-family:"Space Mono",monospace;color:var(--ink,#12262A);white-space:nowrap}
.cxp-note{font-size:12.5px;color:var(--muted,#5b6b6b);line-height:1.55;margin-top:14px;
  border-left:2px solid var(--brass,#B8863B);padding-left:12px}
.cxp-note b{color:var(--ink,#12262A)}
.cxp-err{font-size:13.5px;color:#BE4B33;line-height:1.55;margin:0}
@media(max-width:640px){.cxp-grid{grid-template-columns:1fr;gap:16px}.cxp-body{padding:18px 16px}
  .cxp-top{padding:16px}.cxp-headline{font-size:17px}}
@media(prefers-reduced-motion:reduce){.cxp-fill{transition:none}}
