/* ================================================================
   TravelBelka Cruise Cards — v1.0.0
   Стили карточки речного круиза + модальное окно.
   Префикс tb-cruise-* чтобы не конфликтовать с .tb-card (туры).
   ================================================================ */

/* WordPress wpautop neutralization */
.tb-cruise-card p, .tb-cruise-overlay p, .tb-cruise-modal p { margin:0 !important; padding:0 !important; }
.tb-cruise-card br, .tb-cruise-overlay br, .tb-cruise-modal br { display:none !important; }

/* HTML-текст перед карточкой (вводится редактором в парсере) */
.tb-cruise-intro { margin:0 0 14px; line-height:1.55; color:#1a1a2e; font-family:var(--tbc-font); }
.tb-cruise-intro h1,.tb-cruise-intro h2,.tb-cruise-intro h3,.tb-cruise-intro h4 { margin:0 0 8px; line-height:1.25; }
.tb-cruise-intro a { color:#0e7490; }
.tb-cruise-intro ul,.tb-cruise-intro ol { margin:8px 0; padding-left:22px; }

/* Design tokens */
:root {
  --tbc-brand:#f97316;
  --tbc-brand-hover:#ea580c;
  --tbc-brand-dark:#c2410c;
  --tbc-brand-tint-1:#fff7ed;
  --tbc-brand-tint-2:#ffedd5;
  --tbc-brand-border:#fdba74;
  --tbc-brand-text:#9a3412;
  --tbc-brand-icon-bg:#fb923c;

  --tbc-text:#1a1a2e;
  --tbc-text-mid:#334155;
  --tbc-text-soft:#475569;
  --tbc-text-muted:#64748b;
  --tbc-text-faint:#94a3b8;

  --tbc-bg-surface:#ffffff;
  --tbc-bg-chip:#f1f5f9;
  --tbc-bg-tile:#f8fafc;
  --tbc-bg-photo:#e2e8f0;
  --tbc-border:#e2e8f0;
  --tbc-border-strong:#cbd5e1;
  --tbc-divider:#f1f5f9;

  --tbc-cat-text:#0e7490;
  --tbc-cat-bg:#ecfeff;
  --tbc-cat-border:#a5f3fc;
  --tbc-cat-text-dark:#cffafe;
  --tbc-cat-bg-dark:rgba(8,145,178,.6);
  --tbc-cat-border-dark:rgba(165,243,252,.5);

  --tbc-info-bg:#dbeafe;
  --tbc-info-fg:#1d4ed8;

  --tbc-font:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,Roboto,sans-serif;
}

/* ================================================================
   КАРТОЧКА
   ================================================================ */
.tb-cruise-card {
  display:grid; grid-template-columns:320px 1fr;
  background:var(--tbc-bg-surface); border-radius:16px; overflow:hidden;
  box-shadow:0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04);
  transition:box-shadow .2s ease, transform .2s ease;
  margin-bottom:20px;
  font-family:var(--tbc-font);
  color:var(--tbc-text);
  cursor:pointer;
}
.tb-cruise-card:hover {
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(0,0,0,.08), 0 16px 36px rgba(0,0,0,.10);
}

/* ── Карусель ── */
.tb-cruise-image {
  position:relative; overflow:hidden; background:var(--tbc-bg-photo);
  min-height:260px;
}
.tb-cruise-slide {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  display:block; opacity:0; transition:opacity .35s ease;
}
.tb-cruise-slide.tb-cruise-slide--active { opacity:1; }

.tb-cruise-departure-badge {
  position:absolute; top:14px; left:14px; z-index:2;
  display:inline-flex; align-items:center; gap:5px;
  background:rgba(0,0,0,.55); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  color:#fff; padding:5px 12px 5px 10px; border-radius:8px;
  font-size:12px; font-weight:600; line-height:1;
}
.tb-cruise-counter {
  position:absolute; top:14px; right:14px; z-index:2;
  background:rgba(0,0,0,.55); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  color:#fff; padding:5px 10px; border-radius:8px;
  font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; line-height:1;
}

.tb-cruise-photo-overlay {
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:28px 14px 12px;
  background:linear-gradient(to top, rgba(0,0,0,.7) 0%, rgba(0,0,0,.35) 50%, transparent 100%);
  display:flex; align-items:flex-end; justify-content:space-between; gap:10px;
  pointer-events:none;
}
.tb-cruise-photo-caption {
  color:#fff; font-size:12px; text-shadow:0 1px 2px rgba(0,0,0,.5);
  flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.tb-cruise-dots {
  display:inline-flex; gap:5px; flex-shrink:0; pointer-events:auto;
}
.tb-cruise-dot {
  width:6px; height:6px; border-radius:3px;
  background:rgba(255,255,255,.55); border:none; padding:0;
  cursor:pointer; transition:width .25s ease, background .2s;
}
.tb-cruise-dot.tb-cruise-dot--active { width:18px; background:#fff; }

.tb-cruise-arrow {
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,.95); border:none; padding:0;
  color:var(--tbc-text); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
  opacity:0; transition:opacity .2s ease;
}
.tb-cruise-image:hover .tb-cruise-arrow { opacity:1; }
.tb-cruise-arrow:hover { background:#fff; }
.tb-cruise-arrow-left { left:10px; }
.tb-cruise-arrow-right { right:10px; }

/* ── Контент ── */
.tb-cruise-content {
  display:flex !important; flex-direction:column; gap:14px;
  padding:20px 24px 22px;
}

/* Header */
.tb-cruise-header { display:block !important; }
.tb-cruise-operator {
  display:block !important;
  font-size:12px; color:var(--tbc-text-muted); font-weight:500; margin-bottom:4px;
}
.tb-cruise-title-row {
  display:flex !important; align-items:center; gap:10px; flex-wrap:wrap;
}
.tb-cruise-ship {
  margin:0 !important; padding:0 !important;
  font-size:22px; font-weight:700; color:var(--tbc-text);
  letter-spacing:-.2px; line-height:1.15;
}
.tb-cruise-category {
  display:inline-flex !important; align-items:center; gap:5px;
  font-size:11px; font-weight:700; letter-spacing:.4px; text-transform:uppercase;
  color:var(--tbc-cat-text); background:var(--tbc-cat-bg);
  border:1px solid var(--tbc-cat-border);
  padding:4px 10px; border-radius:6px;
  line-height:1;
}
.tb-cruise-category .tb-cruise-icon { color:var(--tbc-cat-text); }
.tb-cruise-category--dark {
  color:var(--tbc-cat-text-dark); background:var(--tbc-cat-bg-dark);
  border-color:var(--tbc-cat-border-dark);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
}
.tb-cruise-category--dark .tb-cruise-icon { color:var(--tbc-cat-text-dark); }

/* Маршрут */
.tb-cruise-route {
  display:flex !important; align-items:center; flex-wrap:wrap; gap:4px 2px;
  font-size:13px; color:var(--tbc-text-mid); font-weight:500;
  line-height:1.4;
}
.tb-cruise-route-city { display:inline; }
.tb-cruise-route-city--edge { color:var(--tbc-text); font-weight:600; }
.tb-cruise-route-arrow {
  color:#94a3b8; margin:0 3px; flex-shrink:0;
  position:relative; top:1px;
}

/* Чипы */
.tb-cruise-chips {
  display:flex !important; flex-wrap:wrap; gap:6px;
}
.tb-cruise-chip {
  display:inline-flex !important; align-items:center; gap:6px;
  font-size:12px; color:var(--tbc-text-soft); background:var(--tbc-bg-chip);
  padding:6px 12px; border-radius:8px; font-weight:500; white-space:nowrap;
  line-height:1.2;
}
.tb-cruise-chip .tb-cruise-icon { color:var(--tbc-text-muted); flex-shrink:0; }

/* Удобства превью + плашка скидки */
.tb-cruise-amenities-row {
  display:flex !important; align-items:center; justify-content:space-between;
  gap:10px; flex-wrap:wrap;
}
.tb-cruise-amenities-preview {
  display:flex !important; align-items:center; gap:6px;
}
.tb-cruise-amenity-tile {
  display:inline-flex !important; align-items:center; justify-content:center;
  width:30px; height:30px;
  background:var(--tbc-bg-tile); border:1px solid var(--tbc-border);
  border-radius:8px;
  color:var(--tbc-text-soft);
}
.tb-cruise-amenity-rest {
  margin-left:4px;
  font-size:11px; color:var(--tbc-text-muted); font-weight:500;
}

/* Footer (цена + CTA) */
.tb-cruise-footer {
  display:flex !important; align-items:center; justify-content:space-between;
  gap:12px;
  border-top:1px solid var(--tbc-divider);
  padding-top:14px; margin-top:4px;
}
.tb-cruise-price-block {
  display:flex !important; align-items:baseline; gap:6px;
}
.tb-cruise-price-from {
  font-size:11px; color:var(--tbc-text-muted); font-weight:500;
  text-transform:uppercase; letter-spacing:.4px;
}
.tb-cruise-price {
  font-size:26px; font-weight:800; color:var(--tbc-text);
  letter-spacing:-.5px; font-variant-numeric:tabular-nums;
  line-height:1;
}
.tb-cruise-price-rub { font-size:18px; font-weight:700; }
.tb-cruise-price-per {
  font-size:12px; color:var(--tbc-text-muted); font-weight:500;
}
.tb-cruise-cta {
  display:inline-flex !important; align-items:center; gap:6px;
  background:var(--tbc-brand); color:#fff !important;
  padding:12px 22px; border:none; border-radius:12px;
  font-size:14px; font-weight:700; cursor:pointer;
  box-shadow:0 2px 4px rgba(249,115,22,.25);
  transition:background .2s ease, transform .15s ease;
  white-space:nowrap; text-decoration:none !important;
  font-family:inherit;
}
.tb-cruise-cta:hover { background:var(--tbc-brand-hover); }
.tb-cruise-cta:active { transform:scale(.98); }
.tb-cruise-cta .tb-cruise-icon { color:#fff; }

/* ── Плашка скидки ── */
.tb-cruise-discount {
  display:inline-flex !important; align-items:center; gap:8px;
  padding:9px 14px; border-radius:10px;
  background:linear-gradient(95deg, var(--tbc-brand-tint-1) 0%, var(--tbc-brand-tint-2) 100%);
  border:1px solid var(--tbc-brand-border);
  color:var(--tbc-brand-text); font-size:13px; font-weight:600;
  line-height:1.2;
}
.tb-cruise-discount--compact { padding:7px 12px; font-size:12px; }
.tb-cruise-discount b { color:var(--tbc-brand-dark); font-weight:800; }
.tb-cruise-discount-icon {
  display:inline-flex !important; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:6px;
  background:var(--tbc-brand-icon-bg); color:#fff;
  font-size:13px; line-height:1;
  animation:tbc-pulse 2.4s ease-in-out infinite;
  flex-shrink:0;
}
@keyframes tbc-pulse {
  0%, 100% { box-shadow:0 0 0 0 rgba(251,146,60,.55); }
  50%      { box-shadow:0 0 0 6px rgba(251,146,60,0); }
}

/* ── Адаптив карточки ── */
@media (max-width:768px) {
  .tb-cruise-card { grid-template-columns:1fr; }
  .tb-cruise-image { min-height:220px; }
  .tb-cruise-content { padding:18px; gap:12px; }
  .tb-cruise-ship { font-size:20px; }
  .tb-cruise-chip--year { display:none; }
  .tb-cruise-price { font-size:24px; }
  .tb-cruise-footer { flex-direction:row; align-items:center; gap:10px; }
  .tb-cruise-cta { flex:1 1 auto; justify-content:center; padding:12px 16px; }
}
@media (max-width:480px) {
  .tb-cruise-amenities-row { flex-direction:column; align-items:flex-start; gap:10px; }
}

/* ================================================================
   МОДАЛКА
   ================================================================ */
.tb-cruise-overlay {
  display:none;
  position:fixed; inset:0; z-index:9999;
  background:rgba(15,23,42,.55);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  justify-content:center; align-items:center;
  padding:20px; overflow-y:auto;
  font-family:var(--tbc-font);
}
.tb-cruise-overlay.tb-cruise-overlay--open {
  display:flex;
  animation:tbc-fade .2s ease-out;
}
@keyframes tbc-fade { from { opacity:0; } to { opacity:1; } }

.tb-cruise-modal {
  width:560px; max-width:100%; max-height:calc(100vh - 40px);
  background:#fff; border-radius:20px; overflow:hidden;
  box-shadow:0 24px 64px rgba(0,0,0,.35);
  display:flex !important; flex-direction:column;
  animation:tbc-scale .2s ease-out;
}
@keyframes tbc-scale {
  from { transform:scale(.96); opacity:0; }
  to   { transform:scale(1);   opacity:1; }
}

/* Hero */
.tb-cruise-modal-hero {
  position:relative; height:220px; flex-shrink:0;
  background-size:cover; background-position:center;
  background-color:var(--tbc-bg-photo);
  color:#fff;
}
.tb-cruise-modal-hero::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 30%, rgba(0,0,0,.7) 100%);
  pointer-events:none;
}
.tb-cruise-modal-close {
  position:absolute; top:14px; right:14px; z-index:2;
  width:34px; height:34px; border-radius:50%; border:none;
  background:rgba(0,0,0,.55); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.tb-cruise-departure-badge--hero { z-index:2; }
.tb-cruise-modal-hero-text {
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:22px 26px 18px;
}
.tb-cruise-modal-operator {
  display:block !important;
  font-size:12px; color:rgba(255,255,255,.85); margin-bottom:4px;
}
.tb-cruise-modal-title-row {
  display:flex !important; align-items:baseline; gap:10px; flex-wrap:wrap;
  margin-bottom:6px;
}
.tb-cruise-modal-ship {
  margin:0 !important; padding:0 !important;
  font-size:28px; font-weight:800; color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
  letter-spacing:-.4px; line-height:1.1;
}
.tb-cruise-route--hero {
  color:rgba(255,255,255,.95); font-size:13px;
}
.tb-cruise-route--hero .tb-cruise-route-city,
.tb-cruise-route--hero .tb-cruise-route-city--edge { color:rgba(255,255,255,.95); }
.tb-cruise-route--hero .tb-cruise-route-arrow { color:rgba(255,255,255,.7); }

/* Body */
.tb-cruise-modal-body {
  flex:1; min-height:0; overflow-y:auto;
  display:flex !important; flex-direction:column;
  padding-bottom:28px;
}

/* Цена + дата */
.tb-cruise-modal-price-row {
  display:flex !important; justify-content:space-between; align-items:flex-end;
  padding:22px 26px 0; gap:14px;
}
.tb-cruise-modal-price-left { display:block !important; }
.tb-cruise-modal-price-label {
  display:block !important;
  font-size:11px; color:var(--tbc-text-muted); font-weight:700;
  text-transform:uppercase; letter-spacing:.4px; margin-bottom:4px;
}
.tb-cruise-modal-price {
  display:block !important;
  font-size:34px; font-weight:800; color:var(--tbc-brand);
  letter-spacing:-.6px; line-height:1; font-variant-numeric:tabular-nums;
}
.tb-cruise-modal-rub { font-size:.7em; font-weight:700; }
.tb-cruise-modal-dates { text-align:right; }
.tb-cruise-modal-dep {
  display:block !important;
  font-size:14px; color:var(--tbc-text); font-weight:600;
}
.tb-cruise-modal-dep-sub {
  display:block !important;
  font-size:12px; color:var(--tbc-text-muted); margin-top:2px;
}

.tb-cruise-modal-discount-wrap { padding:14px 26px 0; }

/* Главная CTA */
.tb-cruise-modal-cta {
  display:flex !important; align-items:center; justify-content:center; gap:8px;
  margin:16px 26px 0;
  padding:15px 18px; border:none; border-radius:14px;
  background:var(--tbc-brand); color:#fff !important;
  font-size:16px; font-weight:700; cursor:pointer;
  text-decoration:none !important;
  box-shadow:0 4px 14px rgba(249,115,22,.35);
  transition:background .2s ease;
  font-family:inherit;
}
.tb-cruise-modal-cta:hover { background:var(--tbc-brand-hover); }
.tb-cruise-modal-cta .tb-cruise-icon { color:#fff; }

.tb-cruise-modal-step {
  display:block !important;
  padding:22px 26px 8px;
  font-size:11px; font-weight:700; color:var(--tbc-text-faint);
  text-transform:uppercase; letter-spacing:.8px;
}

/* Альтернативные ссылки */
.tb-cruise-modal-alts {
  display:flex !important; flex-direction:column; gap:8px;
  padding:0 26px;
}
.tb-cruise-modal-alt {
  display:flex !important; align-items:center; gap:14px;
  padding:12px 14px; border-radius:12px;
  background:var(--tbc-bg-tile); border:1px solid var(--tbc-border);
  color:var(--tbc-text) !important; text-decoration:none !important;
  transition:background .2s ease, border-color .2s ease;
}
.tb-cruise-modal-alt:hover {
  background:var(--tbc-bg-chip); border-color:var(--tbc-border-strong);
}
.tb-cruise-modal-alt-icon {
  display:inline-flex !important; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:10px;
  background:#fff; border:1px solid var(--tbc-border);
  color:var(--tbc-cat-text); flex-shrink:0;
}
.tb-cruise-modal-alt-text {
  display:block !important; flex:1; min-width:0;
}
.tb-cruise-modal-alt-title {
  display:block !important;
  font-size:14px; font-weight:600; color:var(--tbc-text);
}
.tb-cruise-modal-alt-sub {
  display:block !important;
  font-size:12px; color:var(--tbc-text-muted); margin-top:2px;
}
.tb-cruise-modal-alt-chev {
  display:inline-flex !important; color:var(--tbc-text-faint); flex-shrink:0;
}

/* Удобства */
.tb-cruise-modal-section { padding:28px 26px 0; }
.tb-cruise-modal-section-title {
  display:block !important;
  font-size:11px; font-weight:700; color:var(--tbc-text-faint);
  text-transform:uppercase; letter-spacing:.4px; margin-bottom:12px;
}
.tb-cruise-modal-facilities {
  display:grid !important; grid-template-columns:repeat(4, 1fr); gap:14px;
}
.tb-cruise-modal-fac {
  display:flex !important; flex-direction:column; align-items:center; gap:8px;
  padding:14px 6px 12px;
  background:var(--tbc-bg-tile); border:1px solid var(--tbc-border);
  border-radius:12px; text-align:center;
}
.tb-cruise-modal-fac-icon {
  display:inline-flex !important; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:10px;
  background:var(--tbc-cat-bg); color:var(--tbc-cat-text);
}
.tb-cruise-modal-fac-label {
  font-size:11.5px; color:var(--tbc-text-mid); font-weight:500; line-height:1.25;
}

/* Важно знать */
.tb-cruise-important {
  background:var(--tbc-bg-tile); border:1px solid var(--tbc-border);
  border-radius:14px; padding:18px 20px 16px;
}
.tb-cruise-important-title {
  display:flex !important; align-items:center; gap:8px;
  font-size:13px; font-weight:700; color:var(--tbc-text); margin-bottom:10px;
}
.tb-cruise-important-badge {
  display:inline-flex !important; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%;
  background:var(--tbc-info-bg); color:var(--tbc-info-fg);
  font-style:italic; font-weight:800; font-size:13px; line-height:1;
  font-family:Georgia, serif;
}
.tb-cruise-important-list {
  margin:0 !important; padding:0 !important; list-style:none;
  display:flex !important; flex-direction:column; gap:9px;
}
.tb-cruise-important-list li {
  display:flex !important; gap:10px; align-items:flex-start;
  font-size:13px; color:var(--tbc-text-soft); line-height:1.5;
}
.tb-cruise-important-num {
  display:inline-flex !important; align-items:center; justify-content:center;
  flex:0 0 auto; width:20px; height:20px; border-radius:50%;
  background:#fff; border:1px solid var(--tbc-border-strong);
  color:var(--tbc-text-muted); font-size:11px; font-weight:700; margin-top:1px;
}
.tb-cruise-important-text { flex:1; }

/* Подробнее о теплоходе */
.tb-cruise-modal-details {
  margin:20px 26px 0;
  padding-top:16px;
  border-top:1px solid var(--tbc-border);
}
.tb-cruise-modal-details summary {
  display:flex !important; align-items:center; gap:8px;
  font-size:14px; font-weight:600; color:var(--tbc-text);
  cursor:pointer; list-style:none; user-select:none;
}
.tb-cruise-modal-details summary::-webkit-details-marker { display:none; }
.tb-cruise-details-chev {
  display:inline-flex !important; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:6px;
  background:var(--tbc-bg-chip); color:var(--tbc-text-muted);
  transition:transform .2s ease;
}
.tb-cruise-modal-details[open] .tb-cruise-details-chev { transform:rotate(180deg); }
.tb-cruise-modal-details p,
.tb-cruise-modal-description-par {
  font-size:13.5px; line-height:1.6; color:var(--tbc-text-soft);
  margin-top:12px !important;
}

/* ── Адаптив модалки ── */
@media (max-width:640px) {
  .tb-cruise-overlay { padding:0; align-items:stretch; }
  .tb-cruise-modal {
    width:100%; max-width:100%; max-height:100vh;
    border-radius:0;
  }
  .tb-cruise-modal-hero { height:180px; }
  .tb-cruise-modal-ship { font-size:24px; }
  .tb-cruise-modal-hero-text { padding:20px 18px 16px; }
  .tb-cruise-modal-price-row { padding:20px 18px 0; }
  .tb-cruise-modal-price { font-size:30px; }
  .tb-cruise-modal-discount-wrap { padding:14px 18px 0; }
  .tb-cruise-modal-cta { margin:14px 18px 0; }
  .tb-cruise-modal-step { padding:20px 18px 8px; }
  .tb-cruise-modal-alts { padding:0 18px; }
  .tb-cruise-modal-section { padding:22px 18px 0; }
  .tb-cruise-modal-facilities { gap:10px; }
  .tb-cruise-modal-details { margin:18px 18px 0; }
}

/* Lock body scroll while modal open */
body.tb-cruise-lock { overflow:hidden !important; }
