/* Cruise itinerary + ship guide pages */

/* ---- Fare board (compact version of the home page boarding pass) ---- */
.board{background:#fff;border:1px solid var(--line);border-radius:var(--rad);box-shadow:var(--sh-lg);overflow:hidden;margin:-38px 0 34px;position:relative;z-index:5}
@media(max-width:767px){.board{margin-top:-22px}}
.board-top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--ink);color:#fff;padding:12px 24px}
.board-top .lbl{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700}
.board-top .stamp{font-family:var(--mono);font-size:.72rem;color:#9FB4CA;display:inline-flex;align-items:center;gap:7px}
.pulse{width:7px;height:7px;border-radius:50%;background:#E74C3C;box-shadow:0 0 7px rgba(231,76,60,.7);animation:pulse 1.5s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}
.board-body{display:grid;grid-template-columns:repeat(4,1fr)}
@media(max-width:860px){.board-body{grid-template-columns:repeat(2,1fr)}}
@media(max-width:430px){.board-body{grid-template-columns:1fr}}
.bcell{padding:18px 22px;position:relative}
.bcell+.bcell::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:1px;
  background:repeating-linear-gradient(to bottom,var(--line) 0 5px,transparent 5px 10px)}
@media(max-width:860px){.bcell:nth-child(odd)::before{display:none}}
@media(max-width:430px){.bcell::before{display:none}}
.bcell .k{display:block;font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:5px}
.bcell .v{display:block;font-family:var(--mono);font-size:1.35rem;font-weight:700;color:var(--ink);line-height:1.15;letter-spacing:-.02em}
.bcell .v small{font-family:var(--sans);font-size:.66rem;font-weight:600;color:var(--muted)}
.bcell .n{display:block;font-size:.76rem;color:var(--muted);margin-top:4px;line-height:1.45}
.board-foot{border-top:1px dashed var(--line);background:var(--foam);padding:11px 24px;font-size:.78rem;color:var(--muted);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}

/* ---- Sail-date calendar ---- */
.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.month{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--sh-sm)}
.month h3{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);margin:0 0 10px;font-family:var(--sans);font-weight:700}
.month ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.month li{font-family:var(--mono);font-size:.8rem;font-weight:600;color:var(--sea);background:var(--foam);
  border:1px solid var(--mist);border-radius:6px;padding:4px 8px;min-width:32px;text-align:center}
.month li.soon{background:var(--gold);border-color:var(--brass);color:var(--ink)}

/* ---- Deck / zone cards ---- */
.zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:20px}
.zone{background:#fff;border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;box-shadow:var(--sh-sm);transition:transform .25s,box-shadow .25s}
.zone:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}
.zone img{width:100%;aspect-ratio:16/10;object-fit:cover}
.zone .zb{padding:18px 20px}
.zone .num{display:inline-block;font-family:var(--mono);font-size:.68rem;font-weight:700;color:var(--brass);letter-spacing:.1em;margin-bottom:6px}
.zone h3{font-size:1.05rem;margin-bottom:.35em}
.zone p{font-size:.9rem;color:var(--muted);margin:0}

/* ---- Day-by-day ---- */
.days{display:grid;gap:16px}
.day{display:grid;grid-template-columns:96px minmax(0,1fr);background:#fff;border:1px solid var(--line);
  border-radius:var(--rad);overflow:hidden;box-shadow:var(--sh-sm)}
@media(max-width:560px){.day{grid-template-columns:1fr}}
.day .tag{background:var(--sea);color:#fff;display:grid;place-content:center;text-align:center;padding:18px 10px}
.day .tag b{display:block;font-family:var(--mono);font-size:1.5rem;line-height:1}
.day .tag span{display:block;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:#A8C6E0;margin-top:4px}
@media(max-width:560px){.day .tag{display:flex;align-items:baseline;gap:9px;justify-content:flex-start;padding:11px 18px}
  .day .tag b{font-size:1.05rem}.day .tag span{margin:0}}
.day .db{padding:18px 22px}
.day h3{font-size:1.05rem;margin-bottom:.35em}
.day p{font-size:.93rem;margin:0}
.day p+p{margin-top:.6em}

/* ---- Compare ---- */
.vs{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:640px){.vs{grid-template-columns:1fr}}
.vs>div{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:24px;box-shadow:var(--sh-sm)}
.vs>div.pick{border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,179,61,.14),var(--sh-md)}
.vs h3{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:1.1rem;margin-bottom:.6em}
.vs .badge{font-size:.62rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;background:var(--gold);color:var(--ink);padding:3px 9px;border-radius:5px}
.vs ul{list-style:none;padding:0;margin:0}
.vs li{position:relative;padding:6px 0 6px 25px;font-size:.92rem;border-bottom:1px solid var(--mist)}
.vs li:last-child{border-bottom:0}
.vs li::before{content:"";position:absolute;left:4px;top:1.05em;width:6px;height:6px;border-radius:50%;background:var(--tide)}
