/* Redesign single trip detail (rdd-*). Restyles transplanted original widgets
   (itinerary, dates, included, booking) + new hero/trust/garant. */

/* ---------- HERO ---------- */
.rdd-hero {
  position: relative; min-height: 62vh; padding: 120px 40px 60px;
  display: flex; align-items: flex-end;
  background-size: cover; background-position: center; background-color: var(--rd-night);
}
.rdd-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(26,18,8,0.35) 0%, rgba(26,18,8,0.25) 40%, rgba(26,18,8,0.85) 100%); }
.rdd-hero-content { position: relative; z-index: 2; max-width: 1220px; margin: 0 auto; width: 100%; }
.rdd-hero-tag {
  display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase; color: var(--rd-gold); margin-bottom: 14px;
  font-family: 'DM Sans', sans-serif;
}
.rdd-hero-tag span { width: 24px; height: 1px; background: var(--rd-gold); display: inline-block; }
.rdd-hero-title {
  font-family: 'Playfair Display', serif !important; font-size: clamp(34px, 5vw, 60px) !important;
  font-weight: 400 !important; color: var(--rd-sand) !important; line-height: 1.1 !important; margin: 0 0 8px !important;
}
.rdd-hero-title em { font-style: italic; color: var(--rd-gold); }
/* CRM sub-name under the main title. Enlarged 2026-08-21 (client point 6:
   "to by som trosku v tomto pripade zvacsil nech to je vacsie"). */
.rdd-hero-sub { color: rgba(245,237,216,0.9) !important; font-size: 24px !important; line-height: 1.35 !important; font-family: 'DM Sans', sans-serif; margin: 0 0 26px !important; }
@media (max-width: 767px) { .rdd-hero-sub { font-size: 19px !important; } }
.rdd-hero-facts { display: flex; gap: 0; flex-wrap: wrap; border-top: 1px solid rgba(245,237,216,0.2); padding-top: 18px; }
.rdd-hero-fact { padding: 0 34px 0 0; margin-right: 34px; border-right: 1px solid rgba(245,237,216,0.15); }
.rdd-hero-fact:last-child { border-right: none; }
.rdd-hero-fact-label { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(245,237,216,0.55); margin-bottom: 4px; font-family: 'DM Sans', sans-serif; }
.rdd-hero-fact-value { font-size: 18px; font-weight: 600; color: var(--rd-sand); font-family: 'DM Sans', sans-serif; }
.rdd-fact-price { color: var(--rd-gold); font-weight: 700; }
.rdd-fact-price small { display: inline-block; margin-right: 8px; color: rgba(245,237,216,0.5); text-decoration: line-through; font-weight: 400; font-size: 13px; }

/* ---------- TRUST STRIP ---------- */
.rdd-trust { background: var(--rd-forest); padding: 14px 24px !important; }
.rdd-trust-grid { display: flex; justify-content: center; gap: 34px; flex-wrap: wrap; max-width: 1220px; margin: 0 auto; }
.rdd-trust-item { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--rd-sand); font-family: 'DM Sans', sans-serif; }
.rdd-trust-item svg { width: 16px; height: 16px; color: var(--rd-gold); flex: none; }

/* ---------- LAYOUT (main + sticky sidebar) ---------- */
.rdd-layout.e-con { --content-width: 1300px; flex-direction: row !important; flex-wrap: wrap !important; align-items: flex-start !important; gap: 40px; padding: 56px 24px 80px !important; max-width: 1300px; margin: 0 auto; }
.rdd-main.e-con { flex: 1 1 620px !important; max-width: 800px !important; min-width: 0; }
.rdd-sidebar.e-con { flex: 0 1 360px !important; width: 360px !important; position: sticky !important; top: 24px; }

/* section headings inside main */
.rdd-main .elementor-widget-heading .elementor-heading-title {
  font-family: 'Playfair Display', serif !important; font-weight: 400 !important;
  color: var(--rd-night) !important; font-size: clamp(24px, 3vw, 34px) !important; text-align: left !important;
}
.rdd-main > .e-con { margin-bottom: 14px; }

/* ---------- ATTRIBUTES (transplanted heading pairs) ---------- */
.rdd-attrs.e-con { flex-direction: row !important; flex-wrap: wrap !important; gap: 12px; }
.rdd-attrs > .e-con {
  flex: 1 1 160px !important; background: #fff; border: 1px solid var(--rd-border); border-radius: 12px; padding: 14px 16px !important;
}
.rdd-attrs > .e-con .elementor-heading-title { font-family: 'DM Sans', sans-serif !important; }
.rdd-attrs > .e-con > .elementor-widget-heading:first-child .elementor-heading-title {
  font-size: 10px !important; font-weight: 700 !important; letter-spacing: 1.5px !important;
  text-transform: uppercase !important; color: var(--rd-muted) !important; margin-bottom: 4px;
}
.rdd-attrs > .e-con > .elementor-widget-heading:last-child .elementor-heading-title {
  font-size: 15px !important; font-weight: 600 !important; color: var(--rd-text) !important;
}

/* ---------- ITINERARY (restyle original markup) ---------- */
.rdd-itinerary .itinerary-day { display: flex; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--rd-border); }
.rdd-itinerary .day-number {
  flex: none; width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--rd-terra);
  color: var(--rd-terra); display: flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', serif; font-size: 16px; background: transparent !important;
}
.rdd-itinerary .name { font-family: 'DM Sans', sans-serif; font-weight: 700; font-size: 16px; color: var(--rd-night); margin-bottom: 6px; }
.rdd-itinerary .description { font-size: 14px; color: var(--rd-muted); line-height: 1.7; }

/* ---------- INCLUDED / NOT INCLUDED (typography only — no icons, per client) ---------- */
.rdd-included.e-con { flex-direction: row !important; flex-wrap: wrap !important; gap: 28px; align-items: flex-start !important; }
.rdd-included > .e-con { flex: 1 1 300px !important; min-width: 0; }
.rdd-included ul, .rdd-included li { font-family: 'DM Sans', sans-serif; }
.rdd-included li { font-size: 14px; line-height: 1.6; color: var(--rd-text); padding: 8px 0; border-bottom: 1px solid var(--rd-border); }

/* ---------- DATES / TERMS (restyle original .date-card) ---------- */
.rdd-dates .date-card {
  background: #fff !important; border: 1px solid var(--rd-border) !important; border-radius: 12px !important;
  padding: 16px 18px !important; margin-bottom: 12px !important; font-family: 'DM Sans', sans-serif;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.rdd-dates .date-card:hover { border-color: var(--rd-terra) !important; box-shadow: 0 8px 24px rgba(26,18,8,0.08); }
.rdd-dates .card-label { font-size: 10px !important; font-weight: 700 !important; letter-spacing: 1px; text-transform: uppercase; color: var(--rd-muted) !important; }
.rdd-dates .card-value { font-size: 14px !important; font-weight: 600 !important; color: var(--rd-text) !important; }
.rdd-dates .price-wrapper { color: var(--rd-terra) !important; }
.rdd-dates .card-actions .elementor-button, .rdd-dates .card-actions a, .rdd-dates .card-actions button {
  background: var(--rd-terra) !important; color: #fff !important; border-radius: 8px !important;
  font-family: 'DM Sans', sans-serif !important; font-weight: 600 !important;
}
.rdd-dates .card-actions a:hover, .rdd-dates .card-actions button:hover { background: var(--rd-terra-dark) !important; color: #fff !important; }
.rdd-dates .pdf a { color: var(--rd-terra) !important; }

/* ---------- GALLERY ---------- */
.rdd-gallery .galerie-thumbnail { border-radius: 12px; overflow: hidden; }

/* ---------- BOOKING SIDEBAR (transplanted subtree) ---------- */
.rdd-booking.e-con {
  background: #fff !important; border: 1px solid var(--rd-border) !important; border-radius: 16px !important;
  padding: 24px !important; box-shadow: 0 16px 40px rgba(26,18,8,0.08);
}
.rdd-booking .elementor-heading-title {
  font-family: 'DM Sans', sans-serif !important; font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: 1.5px !important; text-transform: uppercase !important; color: var(--rd-muted) !important;
  text-align: left !important;
}
.rdd-booking .price-wrapper, .rdd-booking .price-per-person, .rdd-booking .price-per-person-discounted {
  font-family: 'Playfair Display', serif !important; color: var(--rd-terra) !important; font-weight: 700 !important;
}
.rdd-booking .dropdown-selected, .rdd-booking .mtc-select-wrapper select, .rdd-booking select {
  border: 1.5px solid var(--rd-border) !important; border-radius: 10px !important; background-color: #fff !important;
  font-family: 'DM Sans', sans-serif !important;
}
.rdd-booking .elementor-button, .rdd-booking button[type=submit], .rdd-booking .single_add_to_cart_button {
  background: var(--rd-terra) !important; color: #fff !important; border-radius: 10px !important;
  font-family: 'DM Sans', sans-serif !important; font-weight: 700 !important; width: 100%;
  padding: 15px 20px !important; border: none !important;
}
.rdd-booking .elementor-button:hover, .rdd-booking button[type=submit]:hover, .rdd-booking .single_add_to_cart_button:hover {
  background: var(--rd-terra-dark) !important; color: #fff !important;
}

/* ---------- GARANT CARD ---------- */
.rdd-garant {
  display: flex; gap: 16px; align-items: center; background: #fff; border: 1px solid var(--rd-border);
  border-radius: 16px; padding: 18px; margin-top: 20px; font-family: 'DM Sans', sans-serif;
}
.rdd-garant-photo { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex: none; }
.rdd-garant-label { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rd-terra); margin-bottom: 3px; }
.rdd-garant-name { font-weight: 700; font-size: 16px; color: var(--rd-night); margin-bottom: 4px; }
.rdd-garant-link { font-size: 13px; font-weight: 600; color: var(--rd-terra) !important; text-decoration: none; }
.rdd-garant-link:hover { color: var(--rd-terra-dark) !important; }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
  .rdd-layout.e-con { flex-direction: column !important; }
  .rdd-sidebar.e-con { position: static !important; width: 100% !important; flex-basis: auto !important; }
  /* In the stacked layout the desktop basis (620px) became a HEIGHT; Safari/WebKit takes it as
     definite and wrapped the column into side-by-side columns ("Cena nezahŕňa" next to the
     text, page scrolling sideways on iPhone, SUP-1488). Chrome ignores it, so only iOS showed it. */
  .rdd-main.e-con { max-width: 100% !important; flex: 0 0 auto !important; flex-wrap: nowrap !important; }
}
@media (max-width: 768px) {
  .rdd-hero { padding: 90px 20px 40px; min-height: 480px; }
  .rdd-hero-fact { padding-right: 18px; margin-right: 18px; }
  .rdd-trust-grid { gap: 12px 20px; }
  .rdd-layout.e-con { padding: 40px 16px 60px !important; }
}

/* Transplanted widgets carried light text colors from the old dark layout */
.rdd-main .elementor-widget-text-editor, .rdd-main .elementor-widget-text-editor p,
.rdd-main .elementor-widget-text-editor li {
  color: var(--rd-text) !important; font-family: 'DM Sans', sans-serif !important; font-size: 15px !important; line-height: 1.75 !important;
}
/* Booking card: stack the transplanted price/term/capacity columns vertically */
.rdd-booking .e-con, .rdd-booking > .e-con > .e-con {
  flex-direction: column !important; width: 100% !important; max-width: 100% !important; flex-basis: auto !important;
}
.rdd-booking { overflow: hidden; }
.rdd-booking .elementor-widget { width: 100% !important; }

/* ===== Mockup 1:1 calibration (measured at 1440x960) ===== */

/* Hero fills the viewport like the mockup (minus site header) */
.rdd-hero { min-height: calc(100vh - 96px) !important; }

/* Section rhythm: 60px between blocks (mockup), not cramped */
.rdd-main > .e-con, .rdd-main > .elementor-widget { margin-bottom: 24px !important; }
.rdd-main > .e-con.rdd-attrs { margin-bottom: 60px !important; }
.rdd-main > .e-con.rdd-gallery, .rdd-main > .e-con.rdd-itinerary,
.rdd-main > .e-con.rdd-included, .rdd-main > .e-con.rdd-dates,
.rdd-main > .e-con.rdd-infoblock { margin-bottom: 60px !important; }
.rdd-sidebar.e-con { flex: 0 1 380px !important; width: 380px !important; }

/* ---------- TERMS TABLE (mockup 1:1) ---------- */
.rdd-dates .dates-table table { width: 100%; border-collapse: collapse; font-family: 'DM Sans', sans-serif; }
.rdd-dates .dates-table th {
  font-size: 10px !important; font-weight: 700 !important; letter-spacing: 1.2px; text-transform: uppercase;
  color: var(--rd-muted) !important; text-align: left; padding: 10px 12px !important;
  border-bottom: 2px solid var(--rd-border) !important; background: transparent !important;
}
.rdd-dates .dates-table td {
  padding: 14px 12px !important; border-bottom: 1px solid var(--rd-border) !important;
  font-size: 14px !important; color: var(--rd-text) !important; vertical-align: middle;
  background: transparent !important;
}
.rdd-dates .dates-table tr:hover td { background: rgba(196,98,45,0.04) !important; }
.rdd-dates .dates-table tr.past-date td { opacity: 0.45; }
.rdd-dates .price-wrapper { display: flex; flex-direction: column; line-height: 1.25; }
.rdd-dates .price-per-person { color: var(--rd-terra) !important; font-weight: 700 !important; font-size: 15px !important; }
.rdd-dates .price-per-person-discounted { color: var(--rd-muted) !important; text-decoration: line-through; font-size: 12px !important; font-weight: 400 !important; }
.rdd-dates .dates-table .single_add_to_cart_button {
  background: var(--rd-terra) !important; color: #fff !important; border: none !important; border-radius: 8px !important;
  padding: 9px 18px !important; font-family: 'DM Sans', sans-serif !important; font-size: 13px !important; font-weight: 600 !important;
  cursor: pointer; white-space: nowrap;
}
.rdd-dates .dates-table .single_add_to_cart_button:hover { background: var(--rd-terra-dark) !important; color: #fff !important; }
.rdd-dates .pdf-wrapper { color: var(--rd-terra); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; }
.rdd-badge { display: inline-block; font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 20px; white-space: nowrap; }
.rdd-badge-sale { background: rgba(196,98,45,0.12); color: var(--rd-terra); }
.rdd-badge-garant { background: rgba(44,74,53,0.12); color: var(--rd-forest); }
.rdd-note-empty { color: var(--rd-border) !important; }
.rdd-dates-note { font-size: 13px; color: var(--rd-muted); font-family: 'DM Sans', sans-serif; margin-top: -44px !important; margin-bottom: 60px !important; }
.rdd-dates-note a { color: var(--rd-terra) !important; font-weight: 600; }

/* ---------- INFO CARDS ("Čo treba vedieť pred cestou") ---------- */
.rdd-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.rdd-info-card { background: #fff; border: 1px solid var(--rd-border); border-radius: 14px; padding: 22px; font-family: 'DM Sans', sans-serif; }
.rdd-info-icon { width: 34px; height: 34px; color: var(--rd-terra); margin-bottom: 12px; }
.rdd-info-icon svg { width: 100%; height: 100%; }
.rdd-info-title { font-weight: 700; font-size: 15px; color: var(--rd-night); margin-bottom: 8px; }
.rdd-info-text, .rdd-info-text p { font-size: 13.5px !important; color: var(--rd-muted) !important; line-height: 1.65 !important; margin: 0 0 8px; }

/* ---------- BOOKING CARD interior (mockup look) ---------- */
.rdd-booking .price-wrapper, .rdd-booking .price-per-person { font-size: 30px !important; }
.rdd-booking .price-per-person-discounted { font-size: 14px !important; color: var(--rd-muted) !important; }

/* ---------- PHONES CARD (transplanted icon-list) ---------- */
.rdd-phones.e-con {
  background: var(--rd-night) !important; border-radius: 16px !important; padding: 22px 24px !important; margin-top: 20px;
}
.rdd-phones .elementor-heading-title { color: var(--rd-sand) !important; font-family: 'Playfair Display', serif !important; font-size: 19px !important; font-weight: 400 !important; text-align: left !important; }
.rdd-phones .elementor-icon-list-text, .rdd-phones a { color: var(--rd-sand) !important; font-family: 'DM Sans', sans-serif !important; font-weight: 600; }
.rdd-phones .elementor-icon-list-icon { color: var(--rd-gold) !important; }

/* ---------- GARANT initials fallback ---------- */
.rdd-garant-initials { display: flex; align-items: center; justify-content: center; background: var(--rd-forest); color: var(--rd-sand); font-weight: 700; font-size: 20px; font-family: 'DM Sans', sans-serif; }

@media (max-width: 768px) {
  .rdd-info-grid { grid-template-columns: 1fr; }
  .rdd-hero { min-height: 70vh !important; }
}

/* Phones card: heading on top, numbers stacked below */
.rdd-phones.e-con { flex-direction: column !important; }
.rdd-phones .elementor-widget { width: 100% !important; }
.rdd-phones .elementor-icon-list-items { display: flex; flex-direction: column; gap: 8px; }
.rdd-phones .elementor-icon-list-item { display: flex; align-items: center; gap: 10px; }
.rdd-phones .elementor-icon-list-text { font-size: 17px !important; }
.rdd-phones .elementor-widget-heading { margin-bottom: 10px; }
/* Terms table header: muted uppercase (mockup), not theme orange */
.rdd-dates .dates-table th { color: var(--rd-muted) !important; font-size: 10px !important; }

/* ---------- PROMO / COUNTDOWN (sale header data) ---------- */
.rdd-promo {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  background: linear-gradient(120deg, var(--rd-terra), var(--rd-terra-dark)); color: #fff;
  border-radius: 14px; padding: 14px 18px; margin-bottom: 16px; font-family: 'DM Sans', sans-serif;
}
.rdd-promo-text { display: flex; flex-direction: column; gap: 2px; }
.rdd-promo-text strong { display: inline-flex; align-items: center; gap: 7px; font-size: 15px; }
.rdd-promo-text span { font-size: 12px; opacity: 0.85; }
.rdd-countdown { display: flex; gap: 8px; }
.rdd-cd-unit { text-align: center; background: rgba(255,255,255,0.14); border-radius: 8px; padding: 6px 9px; min-width: 44px; }
.rdd-cd-num { font-size: 18px; font-weight: 700; line-height: 1.1; }
.rdd-cd-label { font-size: 9px; text-transform: uppercase; letter-spacing: 1px; opacity: 0.85; }

/* ---------- BOOKING price header (dark, mockup) ---------- */
.rdd-booking > .e-con:first-child > .e-con:first-child {
  background-color: var(--rd-night) !important; border-radius: 12px !important; padding: 18px 18px 16px !important; margin-bottom: 6px;
  background-size: cover !important; background-position: center !important;
}
.rdd-booking > .e-con:first-child > .e-con:first-child .elementor-heading-title { color: rgba(245,237,216,0.6) !important; }
.rdd-booking > .e-con:first-child > .e-con:first-child .price-wrapper,
.rdd-booking > .e-con:first-child > .e-con:first-child .price-per-person { color: var(--rd-gold) !important; }
.rdd-booking > .e-con:first-child > .e-con:first-child .price-per-person-discounted { color: rgba(245,237,216,0.5) !important; }

/* ---------- BOOKING EXTRAS (perks, contact, secondary CTA) ---------- */
.rdd-booking-extras { background: #fff; border: 1px solid var(--rd-border); border-top: none; border-radius: 0 0 16px 16px; padding: 18px 24px 22px; margin-top: -14px; font-family: 'DM Sans', sans-serif; }
.rdd-btn-secondary {
  display: block; text-align: center; border: 1.5px solid var(--rd-terra); color: var(--rd-terra) !important;
  border-radius: 10px; padding: 12px 16px; font-weight: 600; font-size: 14px; text-decoration: none;
  transition: all 0.2s; margin-bottom: 16px;
}
.rdd-btn-secondary:hover { background: var(--rd-terra); color: #fff !important; }
.rdd-perks { display: flex; flex-direction: column; gap: 9px; margin-bottom: 16px; }
.rdd-perk { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--rd-muted); }
.rdd-perk svg { color: var(--rd-forest); flex: none; }
.rdd-booking-contact { border-top: 1px solid var(--rd-border); padding-top: 14px; }
.rdd-booking-contact p { font-size: 12px; color: var(--rd-muted); margin: 0 0 6px; }
.rdd-booking-contact a { display: block; font-weight: 700; font-size: 16px; color: var(--rd-night) !important; text-decoration: none; margin-bottom: 3px; }
.rdd-booking-contact a:hover { color: var(--rd-terra) !important; }

/* ---------- BOTTOM CTA BAND (transplanted phones icon-list) ---------- */
.rdd-cta.e-con { background: var(--rd-night) !important; padding: 46px 24px !important; }
.rdd-cta .rdd-cta-inner.e-con { flex-direction: row !important; align-items: center !important; justify-content: center !important; gap: 40px; flex-wrap: wrap !important; background: transparent !important; max-width: 1220px; margin: 0 auto; }
.rdd-cta .elementor-heading-title { color: var(--rd-sand) !important; font-family: 'Playfair Display', serif !important; font-size: 26px !important; font-weight: 400 !important; }
.rdd-cta .elementor-icon-list-items { display: flex !important; gap: 28px; flex-wrap: wrap; }
.rdd-cta .elementor-icon-list-text, .rdd-cta a { color: var(--rd-sand) !important; font-size: 18px !important; font-weight: 600; font-family: 'DM Sans', sans-serif !important; }
.rdd-cta .elementor-icon-list-icon { color: var(--rd-gold) !important; }

/* ---------- GALLERY mockup grid (big first tile) ---------- */
.rdd-gallery .produkt-galerie-thumbnails {
  display: grid !important; grid-template-columns: 2fr 1fr 1fr !important; grid-auto-rows: 150px; gap: 10px;
}
.rdd-gallery .produkt-galerie-thumbnails .galerie-thumbnail { width: 100% !important; height: 100% !important; border-radius: 12px; overflow: hidden; }
.rdd-gallery .produkt-galerie-thumbnails .galerie-thumbnail:first-child { grid-row: span 2; }
.rdd-gallery .galerie-thumbnail img { width: 100% !important; height: 100% !important; object-fit: cover !important; margin: 0 !important; }

/* Tablet/mobile gallery — client point 10 ("mobilna verzia galerie ... je broken").
   [produkt_galerie] emits three sets of tiles: the desktop ones, `.tablet-thumb` +
   `.tablet-more`, and a single `.mobile-more` overlay. css/product-gallery.css hides
   EVERY .galerie-thumbnail below 769px and leaves only that one "+N dalších" tile, so
   the redesign grid had nothing to lay out and the gallery read as broken. Below we
   keep the real thumbnails in a 2-column grid and drop the tablet/mobile stand-ins;
   the "+N" tile that belongs to the desktop set stays as the entry to the lightbox. */
@media (max-width: 1024px) {
  .rdd-gallery .produkt-galerie-thumbnails .galerie-thumbnail:not(.tablet-thumb):not(.tablet-more):not(.mobile-more) {
    display: block !important;
  }
  .rdd-gallery .produkt-galerie-thumbnails .tablet-thumb,
  .rdd-gallery .produkt-galerie-thumbnails .tablet-more,
  .rdd-gallery .produkt-galerie-thumbnails .mobile-more { display: none !important; }
}
@media (max-width: 768px) {
  .rdd-gallery .produkt-galerie-thumbnails { grid-template-columns: 1fr 1fr !important; grid-auto-rows: 120px; }
  .rdd-gallery .produkt-galerie-thumbnails .galerie-thumbnail:first-child { grid-row: span 1; }
  .rdd-cta .rdd-cta-inner.e-con { flex-direction: column !important; gap: 14px; }
}

/* ===== Mockup 1:1: itinerary timeline + terms table ===== */

/* section heading pattern (eyebrow + h2) */
.rdd-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: var(--rd-terra); margin-bottom: 8px; font-family: 'DM Sans', sans-serif; }
.rdd-h2 { font-family: 'Playfair Display', serif; font-size: clamp(24px, 3vw, 32px); font-weight: 400; color: var(--rd-night); margin: 0 0 10px; }

/* itinerary — mockup: white 48px circles, vertical line, hover terra, location pill */
.rdd-itinerary { position: relative; }
.rdd-itinerary .elementor-widget-shortcode { position: relative; }
.rdd-itinerary .itinerary-container, .rdd-itinerary .desktop-version { position: relative; }
.rdd-itinerary .desktop-version::before {
  content: ''; position: absolute; left: 23px; top: 10px; bottom: 10px; width: 1px; background: var(--rd-border);
}
.rdd-itinerary .itinerary-day {
  display: grid !important; grid-template-columns: 48px 1fr; gap: 20px;
  padding: 0 !important; border-bottom: none !important; position: relative;
}
.rdd-itinerary .itinerary-day + .itinerary-day { border-top: 1px solid var(--rd-border) !important; }
.rdd-itinerary .day-number {
  width: 48px !important; height: 48px !important; margin-top: 20px;
  background: #fff !important; border: 2px solid var(--rd-border) !important; border-radius: 50% !important;
  color: var(--rd-muted) !important; font-family: 'DM Sans', sans-serif !important; font-weight: 700 !important;
  font-size: 13px !important; position: relative; z-index: 1; transition: all 0.2s;
}
.rdd-itinerary .itinerary-day:hover .day-number { background: var(--rd-terra) !important; border-color: var(--rd-terra) !important; color: #fff !important; }
.rdd-itinerary .content-container { padding: 20px 0 !important; }
.rdd-day-loc {
  display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 600;
  letter-spacing: 0.5px; color: var(--rd-terra); text-transform: uppercase;
  background: rgba(196,98,45,0.08); padding: 3px 10px; border-radius: 20px; margin-bottom: 8px;
  font-family: 'DM Sans', sans-serif;
}
.rdd-itinerary .name { font-family: 'DM Sans', sans-serif !important; font-size: 17px !important; font-weight: 600 !important; color: var(--rd-night) !important; margin-bottom: 8px !important; }
.rdd-itinerary .description { font-size: 14px !important; color: var(--rd-muted) !important; line-height: 1.7 !important; }

/* terms table — mockup: dark thead */
.rdd-dates .dates-table thead tr, .rdd-dates .dates-table thead { background: var(--rd-night) !important; }
.rdd-dates .dates-table th {
  background: var(--rd-night) !important; color: var(--rd-sand) !important;
  padding: 14px 16px !important; font-size: 11px !important; font-weight: 600 !important;
  letter-spacing: 1px !important; text-transform: uppercase; border-bottom: none !important; white-space: nowrap;
}
.rdd-dates .dates-table th:first-child { border-radius: 10px 0 0 10px; }
.rdd-dates .dates-table th:last-child { border-radius: 0 10px 10px 0; }
.rdd-dates .dates-table td { padding: 14px 16px !important; }
.rdd-dates .dates-table .single_add_to_cart_button { border-radius: 4px !important; padding: 8px 18px !important; }

/* Itinerary structure fix: row = .desktop-version inside .itinerary-item
   [show-itinerary] prints BOTH a .mobile-header/.mobile-content accordion and a
   .desktop-version block for every day; css/style.css swaps them at 640px. This
   `display:grid !important` used to apply at every width (0,3,0 beats the 0,1,0
   rule in style.css even though that one is !important too), so below 640px every
   day was on the page twice — client point 10, "mobilna verzia galerie a itineraru
   je broken". Keep the redesign grid for the desktop version only. */
.rdd-itinerary .itinerary-day { display: block !important; grid-template-columns: none !important; }
@media (min-width: 641px) {
  .rdd-itinerary .itinerary-item .desktop-version {
    display: grid !important; grid-template-columns: 48px 1fr; gap: 20px; align-items: start;
  }
}
@media (max-width: 640px) {
  .rdd-itinerary .itinerary-item .desktop-version { display: none !important; }
}
.rdd-itinerary .itinerary-item + .itinerary-item .desktop-version { border-top: 1px solid var(--rd-border); }
.rdd-itinerary .itinerary-container { position: relative; }
.rdd-itinerary .itinerary-container::before {
  content: ''; position: absolute; left: 23px; top: 10px; bottom: 10px; width: 1px; background: var(--rd-border);
}
.rdd-itinerary .desktop-version::before { display: none !important; }
.rdd-itinerary .desktop-version .itinerary-day { position: relative; z-index: 1; }

/* ===== Booking card 1:1 (per client screenshot) ===== */
.rdd-price-note { font-size: 12px; color: rgba(245,237,216,0.7); margin-top: 4px; font-family: 'DM Sans', sans-serif; }
/* primary = Rezervovať (WC add-to-cart), secondary = Vlastný termín (elementor button) */
.rdd-booking .single_add_to_cart_button {
  background: var(--rd-terra) !important; color: #fff !important; font-size: 15px !important;
}
.rdd-booking .elementor-widget-button .elementor-button {
  background: #fff !important; color: var(--rd-text) !important; border: 1.5px solid var(--rd-border) !important;
  font-weight: 600 !important; font-size: 14px !important; text-transform: none !important;
}
.rdd-booking .elementor-widget-button .elementor-button:hover {
  border-color: var(--rd-terra) !important; color: var(--rd-terra) !important; background: #fff !important;
}
/* perks: colored icons like the mockup */
.rdd-perk:nth-child(1) svg { color: var(--rd-gold); }
.rdd-perk:nth-child(2) svg { color: var(--rd-terra); }
.rdd-perk:nth-child(3) svg { color: var(--rd-forest); }
.rdd-perks { background: var(--rd-cream); border-radius: 10px; padding: 14px 16px; }
/* contact centered */
.rdd-booking-contact { text-align: center; }
.rdd-booking-contact p { font-size: 13px; }
.rdd-booking-contact a { font-size: 17px; }
/* garant per mockup: name, label, bio */
.rdd-garant { align-items: flex-start; }
.rdd-garant-photo { width: 56px; height: 56px; }
.rdd-garant-name { margin-bottom: 2px; }
.rdd-garant-label { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rd-terra); margin-bottom: 8px; }
.rdd-garant-bio { font-size: 13px; color: var(--rd-muted); line-height: 1.6; margin: 0 0 8px; }

/* Booking container ITSELF must stack (was only inner .e-con → 2-column break on some trips) */
.rdd-booking.e-con { flex-direction: column !important; flex-wrap: nowrap !important; align-items: stretch !important; }
.rdd-booking > .e-con { width: 100% !important; max-width: 100% !important; flex: 0 0 auto !important; }
/* price colors robust across old term-price styles */
.rdd-booking .price-per-person { color: var(--rd-gold) !important; }
.rdd-booking .price-per-person-discounted { color: rgba(245,237,216,0.55) !important; text-decoration: line-through; }

/* term_price shortcode variant classes (used on discounted trips) */
.rdd-booking .term-price { color: var(--rd-gold) !important; font-family: 'Playfair Display', serif !important; font-weight: 700 !important; font-size: 28px !important; }
.rdd-booking .original-price { color: rgba(245,237,216,0.55) !important; text-decoration: line-through !important; font-size: 13px !important; }
.rdd-booking .term-price-wrapper { color: rgba(245,237,216,0.75) !important; }
.rdd-booking .term-price-note { color: rgba(245,237,216,0.65) !important; font-size: 11.5px !important; line-height: 1.5; }

/* Price header edge-to-edge inside the booking card (mockup) */
.rdd-booking > .e-con:first-child > .e-con:first-child {
  margin: -24px -24px 10px !important;
  width: calc(100% + 48px) !important; max-width: none !important;
  border-radius: 16px 16px 0 0 !important;
  padding: 22px 24px 18px !important;
}

/* Layout must be CENTERED (was hugging the left edge — e-con full width won over max-width) */
.rdd-layout.e-con {
  max-width: 1300px !important; width: 100% !important;
  margin-left: auto !important; margin-right: auto !important;
}
.rdd-main .elementor-widget-text-editor p { text-align: left !important; }
/* Booking header photo: nicer crop focus */
.rdd-booking > .e-con:first-child > .e-con:first-child { background-position: center 30% !important; }

/* Sidebar: ONE continuous card (booking + extras), proper sticky offset */
.rdd-sidebar.e-con { --gap: 0 !important; gap: 0 !important; position: sticky !important; top: 106px !important; }
.rdd-sidebar > .elementor-element { width: 100% !important; }
.rdd-booking.e-con { border-radius: 16px 16px 0 0 !important; border-bottom: none !important; box-shadow: none; }
.rdd-booking-extras {
  margin-top: 0 !important; border: 1px solid var(--rd-border); border-top: none;
  border-radius: 0 0 16px 16px; box-shadow: 0 16px 40px rgba(26,18,8,0.08);
}
.rdd-promo { margin-bottom: 16px !important; }
.rdd-garant { margin-top: 20px !important; }

/* ===== Terms table redesign (per client) ===== */
.rdd-dates .dates-table td:first-child { font-weight: 700; color: var(--rd-night) !important; white-space: nowrap; }
.rdd-dates .dates-table .price-wrapper { display: flex; flex-direction: column; line-height: 1.3; gap: 1px; }
.rdd-dates .dates-table .price-per-person { color: var(--rd-terra) !important; font-weight: 700 !important; font-size: 16px !important; text-decoration: none !important; }
.rdd-dates .dates-table .price-per-person-discounted { color: var(--rd-muted) !important; font-weight: 400 !important; font-size: 12px !important; text-decoration: line-through !important; }
.rdd-dates .dates-table td { font-size: 14px !important; }
.rdd-avail { display: inline-flex; align-items: center; gap: 7px; font-weight: 600; font-size: 13px; white-space: nowrap; }
.rdd-avail i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.rdd-avail-free { color: var(--rd-forest); }
.rdd-avail-free i { background: #5A9B62; }
.rdd-avail-full { color: var(--rd-terra); }
.rdd-avail-full i { background: var(--rd-terra); }
.rdd-avail-past { color: var(--rd-muted); font-weight: 400; }
.rdd-badge-neutral { background: var(--rd-cream); color: var(--rd-muted); border: 1px solid var(--rd-border); }
.rdd-note-extra { display: block; font-size: 12px; color: var(--rd-muted); margin-top: 4px; max-width: 220px; line-height: 1.45; }
.rdd-badge { max-width: 220px; white-space: normal !important; line-height: 1.35; }
tr.rdd-row-full td { background: rgba(196,98,45,0.03) !important; }
tr.rdd-row-full td:first-child { color: var(--rd-muted) !important; }
.rdd-dates .dates-table tr td { vertical-align: middle !important; }

/* dates-table header (actual markup class) */
.rdd-dates .dates-table thead tr, .rdd-dates .dates-table thead { background: var(--rd-night) !important; }
.rdd-dates .dates-table th {
  background: var(--rd-night) !important; color: var(--rd-sand) !important;
  padding: 13px 14px !important; font-size: 11px !important; font-weight: 600 !important;
  letter-spacing: 1px !important; text-transform: uppercase !important; white-space: nowrap !important;
  border-bottom: none !important;
}
.rdd-dates .dates-table-container { border: none !important; border-radius: 14px; overflow: hidden; }
.rdd-dates .dates-table { border: none !important; }

/* Terms table mockup 1:1 v2 */
.rdd-eyebrow-dash { display: inline-flex; align-items: center; gap: 10px; }
.rdd-eyebrow-dash::after { content: ''; width: 34px; height: 1px; background: var(--rd-terra); opacity: 0.5; }
.rdd-avail-free { color: var(--rd-night); font-weight: 500; }
.rdd-avail-full { color: var(--rd-terra); font-weight: 600; }
.rdd-avail i { display: none; }

/* ---------- ATTRS GRID (mockup 3x2, SVG icons) ---------- */
.rdd-attrs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 60px; font-family: 'DM Sans', sans-serif; }
.rdd-attr { background: #fff; border: 1px solid var(--rd-border); border-radius: 12px; padding: 16px 18px; }
.rdd-attr-icon { width: 24px; height: 24px; color: var(--rd-terra); margin-bottom: 9px; }
.rdd-attr-icon svg { width: 100%; height: 100%; }
.rdd-attr-label { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rd-muted); margin-bottom: 3px; }
.rdd-attr-value { font-size: 14.5px; font-weight: 600; color: var(--rd-text); line-height: 1.4; overflow-wrap: anywhere; }
@media (max-width: 768px) { .rdd-attrs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Itinerary circle fix: the WRAPPER (.itinerary-day) is the circle, the number is plain text */
.rdd-itinerary .desktop-version .itinerary-day {
  width: 48px !important; height: 48px !important; min-width: 48px !important; margin-top: 20px !important;
  background: #fff !important; border: 2px solid var(--rd-border) !important; border-radius: 50% !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  padding: 0 !important; position: relative; z-index: 1; transition: all 0.2s;
}
.rdd-itinerary .desktop-version .day-number {
  width: auto !important; height: auto !important; min-width: 0 !important;
  background: transparent !important; border: none !important; border-radius: 0 !important;
  margin: 0 !important; padding: 0 !important; display: block !important;
  font-family: 'DM Sans', sans-serif !important; font-weight: 700 !important;
  font-size: 13px !important; line-height: 1 !important; color: var(--rd-muted) !important;
}
.rdd-itinerary .itinerary-item:hover .desktop-version .itinerary-day {
  background: var(--rd-terra) !important; border-color: var(--rd-terra) !important;
}
.rdd-itinerary .itinerary-item:hover .desktop-version .day-number { color: #fff !important; }

/* Circle MUST be round: beat the snippet's inline <style> (later in DOM wins ties) with specificity */
.rdd-itinerary .itinerary-item .desktop-version .itinerary-day,
.rdd-main .rdd-itinerary .desktop-version .itinerary-day {
  width: 48px !important; height: 48px !important;
  min-width: 48px !important; max-width: 48px !important;
  min-height: 48px !important; max-height: 48px !important;
  aspect-ratio: 1 / 1 !important; align-self: start !important; flex: none !important;
}

/* ---------- "Čo je v cene" mockup layout (icons unchanged per client) ---------- */
.rdd-included .rdd-col-inc .elementor-heading-title,
.rdd-included .rdd-col-not .elementor-heading-title,
.rdd-included .rdd-col-extra .elementor-heading-title {
  font-family: 'DM Sans', sans-serif !important; font-size: 12px !important; font-weight: 700 !important;
  letter-spacing: 1.5px !important; text-transform: uppercase !important; text-align: left !important;
  padding-bottom: 10px; border-bottom: 2px solid var(--rd-border); margin-bottom: 6px;
}
.rdd-included .rdd-col-inc .elementor-heading-title { color: var(--rd-forest) !important; border-color: rgba(44,74,53,0.3); }
.rdd-included .rdd-col-not .elementor-heading-title { color: var(--rd-terra) !important; border-color: rgba(196,98,45,0.3); }
.rdd-included .rdd-col-extra .elementor-heading-title { color: var(--rd-night) !important; }
.rdd-included .price-included-item {
  display: flex !important; gap: 12px; align-items: flex-start;
  padding: 11px 0 !important; border-bottom: 1px solid var(--rd-border) !important; margin: 0 !important;
}
.rdd-included .price-included-item .icon-container { flex: none; width: 20px; height: 20px; margin-top: 1px; }
.rdd-included .price-included-item .icon-container img { width: 20px !important; height: 20px !important; margin: 0 !important; }
.rdd-included .content-name {
  font-family: 'DM Sans', sans-serif !important; font-size: 14.5px !important; font-weight: 600 !important;
  color: var(--rd-text) !important; margin: 0 !important; line-height: 1.45 !important;
}
.rdd-included .content-name::first-letter { text-transform: uppercase; }
.rdd-included .content-description {
  font-size: 12.5px !important; color: var(--rd-muted) !important; line-height: 1.55 !important;
  font-family: 'DM Sans', sans-serif !important;
}
.rdd-included .content-container ul { margin: 4px 0 0 !important; padding-left: 14px !important; }

/* ---------------------------------------------------------------------------
 * Doplnkové služby — client point 9 (2026-08-21): the block moves out of the
 * "Čo je v cene" columns into its own section below, rendered as cards from the
 * design BALOO sent, "len odstranit hover na ne" — so there is deliberately NO
 * :hover rule here. Scoped to .rdd-services so the checkout list (same
 * .service-item class, css/additional-services.css) is untouched.
 * ------------------------------------------------------------------------- */
.rdd-services { display: flex; flex-direction: column; gap: 12px; }
.rdd-services .service-item.rdd-service {
  display: flex !important; align-items: flex-start; gap: 14px;
  background: #fff; border: 1px solid var(--rd-border); border-radius: 12px;
  padding: 18px 22px !important; margin: 0 !important;
  transition: none;
}
.rdd-services .service-item.rdd-service:last-child { padding: 18px 22px !important; }
.rdd-services .icon-container {
  flex: none; width: 38px; height: 38px; border-radius: 9px; background: var(--rd-cream);
  display: flex; align-items: center; justify-content: center;
}
.rdd-services .icon-container img { width: 18px !important; height: 18px !important; margin: 0 !important; }
.rdd-services .service-details { flex: 1; min-width: 0; }
.rdd-services .service-name {
  font-family: 'DM Sans', sans-serif !important; font-size: 15.5px !important; font-weight: 600 !important;
  color: var(--rd-text) !important; margin: 0 0 4px !important; line-height: 1.4 !important;
}
.rdd-services .service-description {
  list-style: none !important; margin: 0 !important; padding: 0 !important;
  font-size: 13px !important; color: var(--rd-muted) !important; line-height: 1.55 !important;
}
.rdd-services .service-description li { margin: 0 !important; }
.rdd-service-price {
  flex: none; align-self: center; white-space: nowrap;
  font-family: 'DM Sans', sans-serif; font-size: 15px; font-weight: 700; color: var(--rd-terra);
}
@media (max-width: 767px) {
  .rdd-services .service-item.rdd-service { flex-wrap: wrap; padding: 16px !important; }
  .rdd-service-price { width: 100%; align-self: flex-start; padding-left: 52px; }
}

/* C.5 mobile itinerary fix: the grid override above re-showed .desktop-version on phones,
   duplicating every day next to the collapsible .mobile-header variant. */
@media (max-width: 640px) {
  .rdd-itinerary .itinerary-item .desktop-version { display: none !important; }
  .rdd-itinerary .itinerary-container::before { display: none; }
  .rdd-itinerary .mobile-header .day-number { margin-top: 0; }
  .rdd-itinerary .mobile-content .description { padding-left: 0; }
}

/* Client point 12 (2026-10-02): "obrovske medzery nad a pod galeriou". The gallery section
   carried 32px padding on both sides plus the 60px section margin and the 20px flex gap,
   about 110px of empty band on each side. The gallery now sits in the normal rhythm. */
.rdd-main > .e-con.rdd-gallery { padding-top: 8px !important; padding-bottom: 0 !important; margin-bottom: 28px !important; }
.rdd-main > .e-con.rdd-itinerary { padding-top: 12px !important; }
/* Desktop shows the big tile, two photos and the "+N" tile, which left the bottom-right
   cell empty: the "+N" tile fills both cells. */
@media (min-width: 1025px) {
  .rdd-gallery .produkt-galerie-thumbnails .desktop-more { grid-column: span 2; }
}

/* Fixed booking bar, tablet + mobile (client point 16, design .sticky-cta). */
.rdd-sticky-cta { display: none; }
@media (max-width: 1024px) {
  .rdd-sticky-cta:not([hidden]) {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
    align-items: center; justify-content: space-between; gap: 12px;
    background: var(--rd-night, #1A1208); padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    box-shadow: 0 -4px 20px rgba(0,0,0,.3); transition: transform .25s ease;
  }
  .rdd-sticky-cta.is-away { transform: translateY(110%); }
  .rdd-sticky-cta-info { min-width: 0; color: #fff; }
  .rdd-sticky-cta-info span {
    display: block; font-size: 12px; opacity: .65; font-family: 'DM Sans', sans-serif;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .rdd-sticky-cta-info strong { font-family: 'Playfair Display', serif; font-size: 20px; color: var(--rd-gold, #D4A84B); font-weight: 600; }
  a.rdd-sticky-cta-btn {
    flex: none; background: var(--rd-terra, #C4622D); color: #fff !important; text-decoration: none;
    padding: 12px 22px; border-radius: 8px; font-family: 'DM Sans', sans-serif; font-weight: 700; font-size: 14px;
  }
  body.single-product { padding-bottom: 76px; }
}

/* Client point 18 (2026-10-02): the booking card is only ~360px wide even on desktop, so the
   date and the two prices side by side wrapped ("15.03. -" / "24.03.2028"). Inside the card
   every option is laid out like the old web's mobile dropdown: date line, price line, centred. */
.rdd-booking .dropdown-option .option-content { flex-direction: column; align-items: center; gap: 4px; }
.rdd-booking .dropdown-option .option-date { flex: none; text-align: center; white-space: nowrap; }
.rdd-booking .dropdown-option .option-price {
  margin-left: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; white-space: nowrap;
}

/* Client point 17: the booking sidebar kept its fixed 380px on phones and pushed the page
   21px wider than the screen. Below the two-column breakpoint it takes the full width. */
@media (max-width: 1024px) {
  .rdd-sidebar.e-con { flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important; position: static !important; }
}

/* Client point 13 (2026-10-02), design "Priobjednajte si navyše": the services section heading
   is an eyebrow ("Doplnkové služby") + a serif H2 like every other section, not a small label.
   Matches only the heading that sits in the services section moved out of "Čo je v cene". */
.e-con:has(.rdd-services) > .rdd-col-extra .elementor-heading-title {
  font-family: 'Playfair Display', serif !important; font-size: clamp(24px, 3vw, 32px) !important;
  font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important;
  color: var(--rd-night) !important; border: 0 !important; padding: 0 !important; margin: 0 0 18px !important;
}
.e-con:has(.rdd-services) > .rdd-col-extra .elementor-heading-title::before {
  content: 'Doplnkové služby'; display: block; margin-bottom: 8px;
  font-family: 'DM Sans', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 2.5px;
  text-transform: uppercase; color: var(--rd-terra);
}

/* ---------------------------------------------------------------------------
 * Client mail 2026-10-03
 * ------------------------------------------------------------------------- */
/* 5) Phone itinerary: full width of the content column (the section, the day row and the
   header each added their own side padding), and the day circle drawn like on desktop:
   one round white circle, the number centred in it. style.css drew a second orange ring
   on the wrapper, slightly offset from the inner circle. */
@media (max-width: 640px) {
  .rdd-main > .e-con.rdd-itinerary { padding-left: 0 !important; padding-right: 0 !important; }
  .rdd-itinerary .itinerary-item { margin-left: 0 !important; margin-right: 0 !important; }
  .rdd-itinerary .mobile-header { display: flex; align-items: center; gap: 12px; padding: 14px 0 !important; }
  .rdd-itinerary .mobile-header .itinerary-day {
    width: 40px !important; height: 40px !important; min-width: 40px !important; min-height: 40px !important; margin: 0 !important;
    background: #fff !important; border: 2px solid var(--rd-border) !important; border-radius: 50% !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    padding: 0 !important; box-shadow: none !important;
  }
  .rdd-itinerary .mobile-header .day-number {
    width: auto !important; height: auto !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important;
    background: transparent !important; border: none !important; border-radius: 0 !important;
    font-family: 'DM Sans', sans-serif !important; font-weight: 700 !important; font-size: 13px !important;
    line-height: 1 !important; color: var(--rd-muted) !important;
  }
  .rdd-itinerary .mobile-header .name { font-size: 16px !important; }
  .rdd-itin-map-canvas { height: 420px; }
}
/* 6) Less empty space above the gallery on a phone: the attribute tiles carried a 60px
   bottom margin on top of the section gap. */
@media (max-width: 768px) {
  .rdd-attrs-grid { margin-bottom: 0 !important; }
}

/* -------------------------------------------------------------------------
 * Client mail 2026-10-06
 * ------------------------------------------------------------------------- */
/* 2) One left edge and one rhythm for every section of the trip detail, as in
   "Priobjednajte si navyše": the inner Elementor containers carried their own 8-32px side
   and top padding and 24/28/60/80px bottom margins. Sections start 64px apart (44 + the
   20px column gap), a heading sits 24px above its content. */
body .e-con.rdd-main.rdd-main > .e-con.e-con-full { padding-left: 0 !important; padding-right: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; }
body .e-con.rdd-main.rdd-main > .e-con.rdd-infoblock { padding: 0 !important; }
body .e-con.rdd-main.rdd-main > * { margin-top: 0 !important; margin-bottom: 0 !important; }
body .e-con.rdd-main.rdd-main > :not(:first-child):is(.rdd-gallery, .rdd-itinerary, .rdd-dates, .rdd-infoblock, .elementor-widget-html,
  .elementor-widget-heading, .e-con-full:has(> .elementor-widget-heading:first-child)) { margin-top: 44px !important; }
body .e-con.rdd-main.rdd-main > .rdd-included { padding: 0 !important; }
.rdd-dates-note { margin-top: -16px !important; margin-bottom: 0 !important; }
body .e-con.rdd-main.rdd-main > .elementor-widget-heading + * { margin-top: 4px !important; }
body .e-con.rdd-main.rdd-main > .elementor-widget-html + * { margin-top: -6px !important; }

/* Inside "Termíny a ceny" the table sat 46px under its heading and 86px above "Iný termín". */
body .e-con.rdd-main.rdd-main > .rdd-dates { gap: 8px !important; row-gap: 8px !important; }
.rdd-dates > .e-con, .rdd-dates .elementor-widget { margin: 0 !important; }
.rdd-dates table.dates-table, .rdd-dates .dates-table-wrapper { margin-bottom: 0 !important; }

/* 3) Section menu under the hero, fixed under the site header while scrolling (desktop);
   flat - no inset shadow. On a phone it is a "Obsah zájazdu" button that opens the list
   in place and does not follow the scroll. */
.rdd-secnav { position: sticky; top: var(--rdd-header-h, 96px); z-index: 40; background: var(--rd-cream, #FBF7EE);
  border-bottom: 1px solid var(--rd-border, #E8DCC8); margin: 0 0 24px; }
.rdd-secnav-inner { max-width: 1440px; margin: 0 auto; padding: 10px 24px; display: flex; align-items: center; gap: 6px; }
.rdd-secnav-toggle { display: none; }
.rdd-secnav-list { display: flex; flex-wrap: wrap; gap: 4px; flex: 1; margin: 0; padding: 0; list-style: none; }
.rdd-secnav a.rdd-secnav-link { display: inline-flex; align-items: center; padding: 10px 14px; border-radius: 8px; color: var(--rd-text, #2A1F0E) !important;
  font-family: 'DM Sans', sans-serif; font-size: 14px; font-weight: 600; text-decoration: none; border-bottom: 2px solid transparent; }
.rdd-secnav a.rdd-secnav-link:hover { color: var(--rd-terra, #C4622D) !important; }
.rdd-secnav a.rdd-secnav-link.is-active { color: var(--rd-terra, #C4622D) !important; border-bottom-color: var(--rd-terra, #C4622D); border-radius: 0; }
.rdd-secnav a.rdd-secnav-cta { margin-left: auto; padding: 11px 22px; border-radius: 8px; background: var(--rd-terra, #C4622D); color: #fff !important;
  font-family: 'DM Sans', sans-serif; font-size: 14px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.rdd-secnav a.rdd-secnav-cta:hover { background: var(--rd-terra-dark, #8B3D18); }
.rdd-sec-target { scroll-margin-top: calc(var(--rdd-header-h, 96px) + 72px); }
@media (min-width: 981px) {
  /* the booking card sticks under the menu, not behind it */
  .rdd-sidebar.e-con { top: calc(var(--rdd-header-h, 96px) + 80px) !important; }
}
@media (max-width: 980px) {
  .rdd-secnav { position: static; background: transparent; border: 0; margin: 16px 0; }
  .rdd-secnav-inner { display: block; padding: 0 16px; }
  .rdd-secnav-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 13px 16px; border-radius: 10px;
    border: 1px solid var(--rd-border, #E8DCC8); background: #fff; color: var(--rd-text, #2A1F0E); font-family: 'DM Sans', sans-serif; font-size: 15px; font-weight: 600; }
  .rdd-secnav-toggle svg { transition: transform .2s; }
  .rdd-secnav.is-open .rdd-secnav-toggle svg { transform: rotate(180deg); }
  .rdd-secnav-list, .rdd-secnav a.rdd-secnav-cta { display: none; }
  .rdd-secnav.is-open .rdd-secnav-list { display: flex; flex-direction: column; gap: 0; margin-top: 8px; background: #fff;
    border: 1px solid var(--rd-border, #E8DCC8); border-radius: 10px; padding: 6px; }
  .rdd-secnav.is-open a.rdd-secnav-link { padding: 12px 10px; border-bottom: 0; }
  .rdd-sec-target { scroll-margin-top: calc(var(--rdd-header-h, 70px) + 12px); }
}

/* 4) Phone date card: the PDF is a secondary button under "objednať zájazd" (it inherited the
   orange fill of the order button), and the departure stays on one line. */
@media (max-width: 980px) {
  .rdd-dates .date-card .card-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
  .rdd-dates .date-card .card-value { text-align: right; min-width: 0; overflow-wrap: anywhere; }
  .rdd-dates .date-card .card-row:nth-child(-n+3) .card-value { white-space: nowrap; } /* date, occupancy, price; the note wraps */
  .rdd-dates .date-card .card-actions { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 8px !important; }
  .rdd-dates .date-card .card-actions .single_add_to_cart_button { width: 100% !important; margin: 0 !important; }
  .rdd-dates .date-card .card-actions a.pdf { display: block !important; width: 100% !important; margin: 0 !important; padding: 10px !important;
    background: #fff !important; color: var(--rd-terra, #C4622D) !important; border: 1px solid var(--rd-terra, #C4622D) !important;
    border-radius: 8px !important; box-shadow: none !important; text-align: center; height: auto !important; }
  .rdd-dates .date-card .card-actions a.pdf .pdf-wrapper { font-size: 0; background: none !important; border: 0 !important; width: auto !important; height: auto !important; }
  .rdd-dates .date-card .card-actions a.pdf .pdf-wrapper::after { content: 'Program zájazdu (PDF)'; font-size: 14px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--rd-terra, #C4622D); }
}

/* ---- star rating (client mail 2026-10-05, point 11) ---- */
.rdd-rating { display: inline-flex; align-items: center; gap: 14px; margin: -8px 0 26px; text-decoration: none !important; color: var(--rd-sand) !important; font-family: 'DM Sans', sans-serif; }
.rdd-stars { position: relative; display: inline-block; line-height: 0; }
.rdd-stars svg { width: 22px; height: 22px; margin-right: 3px; fill: currentColor; }
.rdd-stars-base { color: rgba(245,237,216,0.28); white-space: nowrap; display: inline-block; }
.rdd-stars-fill { position: absolute; inset: 0 auto 0 0; overflow: hidden; white-space: nowrap; color: var(--rd-gold); }
.rdd-rating-value { font-family: 'Playfair Display', serif; font-size: 28px; line-height: 1; color: var(--rd-sand); }
.rdd-rating-count { font-size: 15px; padding-left: 14px; border-left: 1px solid rgba(245,237,216,0.35); color: rgba(245,237,216,0.9); }
a.rdd-rating:hover .rdd-rating-count { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) {
  .rdd-rating { gap: 10px; margin: -6px 0 20px; }
  .rdd-stars svg { width: 18px; height: 18px; margin-right: 2px; }
  .rdd-rating-value { font-size: 23px; }
  .rdd-rating-count { font-size: 14px; padding-left: 10px; }
}
.rdd-reviews .rdd-rating { margin: 0 0 22px; color: var(--rd-text) !important; }
.rdd-reviews .rdd-stars-base { color: var(--rd-border); }
.rdd-reviews .rdd-rating-value { color: var(--rd-night); }
.rdd-reviews .rdd-rating-count { color: var(--rd-muted); border-left-color: var(--rd-border); }

/* ---- podcast under the gallery (point 5) ---- */
.rdd-podcast {
  display: flex; align-items: center; gap: 20px; margin-top: 28px; padding: 22px 26px;
  background: var(--rd-forest); border-radius: 16px; color: var(--rd-sand); font-family: 'DM Sans', sans-serif;
}
.rdd-podcast-icon { flex: none; width: 56px; height: 56px; border-radius: 50%; background: rgba(212,168,71,0.16); color: var(--rd-gold); display: flex; align-items: center; justify-content: center; }
.rdd-podcast-icon svg { width: 28px; height: 28px; }
.rdd-podcast-body { flex: 1; min-width: 0; }
.rdd-podcast-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--rd-gold); margin-bottom: 4px; }
.rdd-podcast .rdd-podcast-title { font-family: 'Playfair Display', serif; font-size: 21px; line-height: 1.25; color: #fff; margin-bottom: 4px; }
.rdd-podcast .rdd-podcast-text { font-size: 14px !important; line-height: 1.55 !important; color: rgba(245,237,216,0.86) !important; margin: 0 !important; }
a.rdd-podcast-btn {
  flex: none; display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 22px;
  border-radius: 10px; background: var(--rd-gold); color: var(--rd-night) !important; font-weight: 700; font-size: 15px;
  text-decoration: none !important; white-space: nowrap; transition: background .2s, transform .2s;
}
a.rdd-podcast-btn:hover { background: #E2B957; transform: translateY(-1px); }
.rdd-podcast-spotify a.rdd-podcast-btn { background: #1DB954; color: #fff !important; }
.rdd-podcast-spotify a.rdd-podcast-btn:hover { background: #17a34a; }
@media (max-width: 767px) {
  .rdd-podcast { flex-wrap: wrap; gap: 14px 16px; padding: 18px; margin-top: 20px; }
  .rdd-podcast-icon { width: 46px; height: 46px; }
  .rdd-podcast-body { flex-basis: calc(100% - 62px); }
  .rdd-podcast-title { font-size: 18px; }
  a.rdd-podcast-btn { flex: 1 1 100%; }
}

/* ---- reviews at the bottom of the trip (point 10) ---- */
.rdd-reviews { margin-top: 56px; scroll-margin-top: calc(var(--rdd-header-h, 90px) + 70px); }
.rdd-reviews .rd-rev-car { margin-top: 4px; }
.rdd-reviews .rd-reviews-all { display: none; }
.rdd-reviews-more { margin: 22px 0 0 !important; }
.rdd-reviews-more a { color: var(--rd-terra) !important; font-weight: 700; text-decoration: none; font-family: 'DM Sans', sans-serif; }
.rdd-reviews-more a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) { .rdd-reviews { margin-top: 40px; } }

/* A trip without photos: no gallery heading; the block stays only for the podcast card. */
.rdd-gallery:has(.rdd-gallery-none) > .elementor-widget-heading { display: none !important; }
.rdd-main > .e-con.rdd-gallery:has(.rdd-gallery-none):not(:has(.rdd-podcast)) { display: none !important; }
