/**
 * single-vylet.css — styly detailu výletu v2.0
 * Načítá se pouze na is_singular('vylet') — viz pq_enqueue_single_vylet_assets().
 * BEM, mobile-first, výhradně tokeny z tokens.css [0.4].
 * Astra overrides na konci [A.4].
 *
 * @package pq
 * @since   2.0.0
 */

/* =========================================================================
 * BREADCRUMB PRUH
 * ===================================================================== */

.pq-vylet-breadcrumb-bar {
  background: var(--color-bg-alt);
  border-block-end: 1px solid var(--color-border);
}
.pq-vylet-breadcrumb-bar__inner {
  padding-block: var(--space-3);
}
.pq-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}
.pq-breadcrumb__list li + li::before {
  content: "›";
  margin-inline-end: var(--space-2);
  opacity: .5;
}
.pq-breadcrumb__link {
  color: var(--color-text-muted);
  text-decoration: none;
}
.pq-breadcrumb__link:hover { color: var(--color-secondary); }



#pq-vh2 {
  background: var(--color-bg);
  padding-block: var(--space-10) var(--space-12);
}

#pq-vh2-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
  align-items: center;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: var(--space-6);
  box-sizing: border-box;
}
@media (min-width: 900px) {
  #pq-vh2 {
    padding-block: 0;
    min-height: 580px;
  }
  #pq-vh2-inner {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12);
    align-items: stretch;
    min-height: 580px;
    max-width: 100%;
    padding-inline: 0;
  }
}

#pq-vh2-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  order: 1;
}
@media (min-width: 900px) {
  #pq-vh2-content {
    order: 0;
    align-self: center;
    padding-block: var(--space-14) var(--space-16);
    padding-inline: var(--space-6) var(--space-8);
    max-width: 600px;
    margin-inline-start: auto;
  }
}
@media (min-width: 1200px) {
  #pq-vh2-content {
    padding-inline: var(--space-8) 0;
  }
}

#pq-vh2-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

#pq-vh2-title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 5vw, 3rem);
  font-weight: var(--font-weight-black);
  line-height: var(--line-height-tight);
  color: var(--color-text);
}

#pq-vh2-perex {
  margin: 0;
  font-size: var(--text-lg);
  line-height: var(--line-height-base);
  color: var(--color-text-muted);
  max-width: 52ch;
}

#pq-vh2-cena {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.375rem, 3vw, 1.75rem);
  font-weight: var(--font-weight-black);
  color: var(--color-text);
  line-height: var(--line-height-tight);
}
#pq-vh2-cena strong { color: var(--color-secondary); }
#pq-vh2-cena-jednotka {
  display: inline-block;
  margin-inline-start: var(--space-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
  font-family: var(--font-body);
}

#pq-vh2-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

#pq-vh2-cta-primary {
  display: inline-flex;
  align-items: center;
  padding: var(--space-4) var(--space-8);
  background: var(--color-primary);
  color: #ffffff;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
  border-radius: var(--radius-full);
  border: 2px solid transparent;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}
#pq-vh2-cta-primary:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-brand);
}

#pq-vh2-cta-secondary {
  display: inline-flex;
  align-items: center;
  padding: var(--space-3) var(--space-6);
  background: transparent;
  color: var(--color-secondary);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
  border-radius: var(--radius-full);
  border: 2px solid var(--color-secondary);
  transition: background var(--transition-fast), color var(--transition-fast);
}
#pq-vh2-cta-secondary:hover {
  background: var(--color-secondary);
  color: var(--color-text-invert);
}

#pq-vh2-media {
  order: -1;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--color-bg-alt);
  line-height: 0;
  border-radius: var(--radius-xl);
  position: relative;
}
@media (min-width: 900px) {
  #pq-vh2-media {
    order: 0;
    aspect-ratio: unset;
    border-radius: 0;
    align-self: stretch;
  }
  /* Gradient přechod — foto plynule navazuje na bílý levý sloupec */
  #pq-vh2-media::before {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    width: 35%;
    background: linear-gradient(
      to right,
      var(--color-bg) 0%,
      rgb(var(--color-overlay-light-rgb) / .7) 50%,
      rgb(var(--color-overlay-light-rgb) / 0) 100%
    );
    z-index: 1;
    pointer-events: none;
  }
}

#pq-vh2-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  display: block;
}



/* =========================================================================
 * QUICK FACTS STRIP — světlý
 * ===================================================================== */

.pq-vylet-facts {
  background: var(--color-bg-alt);
  border-block-start: 1px solid var(--color-border);
  border-block-end: 1px solid var(--color-border);
}

.pq-vylet-facts__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.pq-vylet-facts__inner::-webkit-scrollbar { display: none; }

.pq-vylet-facts__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-5) var(--space-6);
  min-width: 120px;
  border-inline-end: 1px solid var(--color-border);
  text-align: center;
  flex: 1 1 120px;
}
.pq-vylet-facts__item:last-child { border-inline-end: none; }

.pq-vylet-facts__icon { color: var(--color-secondary); }

.pq-vylet-facts__label {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.pq-vylet-facts__value {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
}

/* Obtížnost barvy */
.pq-vylet-facts__difficulty--lehka,
.pq-vylet-facts__difficulty--easy   { color: var(--color-success); }
.pq-vylet-facts__difficulty--stredni,
.pq-vylet-facts__difficulty--medium { color: var(--color-secondary); }
.pq-vylet-facts__difficulty--hard   { color: var(--color-accent); }


#pq-main > div.pq-vylet-facts > div{
  max-width: none;
}


/* =========================================================================
 * HLAVNÍ LAYOUT — grid obsah + sidebar
 * ===================================================================== */

.pq-vylet-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-10);
  padding-block: var(--space-10) var(--space-16);
  align-items: start;
}
@media (min-width: 980px) {
  .pq-vylet-layout {
    grid-template-columns: 1fr 340px;
    gap: var(--space-12);
  }
}

/* Sdílené H2 */
.pq-vylet-h2 {
  margin: 0 0 var(--space-6);
  font-family: var(--font-heading);
  font-size: clamp(1.375rem, 3vw, 1.875rem);
  font-weight: var(--font-weight-black);
  line-height: var(--line-height-tight);
  color: var(--color-text);
}

/* Perex */
.pq-vylet-perex {
  font-size: var(--text-lg);
  line-height: var(--line-height-base);
  color: var(--color-text-muted);
  margin-block-end: var(--space-8);
  max-width: 68ch;
}

/* =========================================================================
 * CO JE ZAHRNUTO
 * ===================================================================== */

.pq-vylet-included {
  margin-block-end: var(--space-10);
  padding: var(--space-6);
  background: var(--color-bg-alt);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
}

.pq-vylet-included__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}
@media (min-width: 580px) {
  .pq-vylet-included__grid { grid-template-columns: 1fr 1fr; }
}

.pq-vylet-included__heading {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0 0 var(--space-4);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.pq-vylet-included__heading--yes { color: var(--color-success); }
.pq-vylet-included__heading--no  { color: var(--color-accent); }

.pq-vylet-included__list {
  display: grid;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.pq-vylet-included__item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  font-size: var(--text-sm);
  line-height: var(--line-height-base);
}
.pq-vylet-included__item--yes .pq-vylet-included__check { color: var(--color-success); flex: none; margin-block-start: .15em; }

.pq-icon--xs { width: .9em; height: .9em; flex: none; }

/* =========================================================================
 * ITINERÁŘ / TIMELINE
 * ===================================================================== */

.pq-vylet-itinerary { margin-block-end: var(--space-10); }

.pq-vylet-itinerary__list {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pq-vylet-itinerary__list::before {
  content: "";
  position: absolute;
  inset-block: var(--space-6) 0;
  inset-inline-start: 21px;
  width: 2px;
  background: linear-gradient(to bottom, var(--color-secondary), var(--color-border));
  z-index: 0;
}

.pq-vylet-itinerary__stop {
  position: relative;
  display: flex;
  gap: var(--space-5);
  padding-block-end: var(--space-6);
}
.pq-vylet-itinerary__stop:last-child { padding-block-end: 0; }
.pq-vylet-itinerary__stop:last-child ~ .pq-vylet-itinerary__list::before { display: none; }

.pq-vylet-itinerary__icon {
  flex: none;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  background: var(--color-primary);
  border-radius: var(--radius-full);
  color: var(--color-text);
  z-index: 1;
  box-shadow: 0 0 0 4px var(--color-bg);
}

.pq-vylet-itinerary__body { flex: 1; padding-block-start: var(--space-2); }

.pq-vylet-itinerary__title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-2);
  margin: 0 0 var(--space-2);
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
}

.pq-vylet-itinerary__time {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-secondary);
  background: var(--color-bg-alt);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
}

.pq-vylet-itinerary__desc {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: var(--line-height-base);
}

/* =========================================================================
 * HLAVNÍ TEXT (WP editor)
 * ===================================================================== */

.pq-vylet-text { margin-block-end: var(--space-10); }
.pq-vylet-text__body > * + * { margin-block-start: var(--space-4); }
.pq-vylet-text__body p { line-height: var(--line-height-base); font-size: var(--text-base); }

/* =========================================================================
 * PRAKTICKÉ INFORMACE
 * ===================================================================== */

.pq-vylet-practical {
  margin-block-end: var(--space-10);
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}

.pq-vylet-practical__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  margin: 0;
}
@media (min-width: 580px) {
  .pq-vylet-practical__list { grid-template-columns: repeat(2, 1fr); }
}

.pq-vylet-practical__item { display: contents; }

/* Položka přes celou šířku (doporučení) */
.pq-vylet-practical__item--wide {
  display: block;
  grid-column: 1 / -1;
}

/* Zvýrazněná položka (výška) */
.pq-vylet-practical__item--highlight dt { color: var(--color-accent); }

.pq-vylet-practical__list dt {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-secondary);
  margin-block-end: var(--space-1);
}

.pq-vylet-practical__list dd {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-text);
  line-height: var(--line-height-base);
}

/* Tagy pro "s sebou" */
.pq-vylet-practical__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}
.pq-vylet-practical__tags li {
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  padding: var(--space-1) var(--space-3);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
}

/* =========================================================================
 * FAQ ACCORDION (CSS-only <details>)
 * ===================================================================== */

.pq-vylet-faq { margin-block-end: var(--space-10); }

.pq-vylet-faq__item {
  border-block-end: 1px solid var(--color-border);
}
.pq-vylet-faq__item:first-of-type {
  border-block-start: 1px solid var(--color-border);
}

.pq-vylet-faq__question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5) 0;
  font-size: var(--text-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.pq-vylet-faq__question::-webkit-details-marker { display: none; }
.pq-vylet-faq__question:hover { color: var(--color-secondary); }

.pq-vylet-faq__icon {
  flex: none;
  width: 20px;
  height: 20px;
  position: relative;
  color: var(--color-secondary);
}
.pq-vylet-faq__icon::before,
.pq-vylet-faq__icon::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  transform: translate(-50%, -50%);
  background: currentColor;
  border-radius: 2px;
}
.pq-vylet-faq__icon::before { width: 12px; height: 2px; }
.pq-vylet-faq__icon::after  { width: 2px; height: 12px; transition: transform var(--transition-fast); }
details[open] .pq-vylet-faq__icon::after { transform: translate(-50%, -50%) scaleY(0); }

.pq-vylet-faq__answer {
  padding-block-end: var(--space-5);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: var(--line-height-base);
}

/* =========================================================================
 * INLINE CTA — konec obsahu
 * ===================================================================== */

.pq-vylet-cta-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-5);
  padding: var(--space-8);
  background: var(--color-bg-alt);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  margin-block-end: var(--space-8);
}

.pq-vylet-cta-inline__text {
  flex: 1 1 220px;
}
.pq-vylet-cta-inline__text strong {
  display: block;
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin-block-end: var(--space-1);
}
.pq-vylet-cta-inline__text p {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* =========================================================================
 * STICKY BOOKING CARD (sidebar)
 * ===================================================================== */

.pq-vylet-sidebar {
  order: -1; /* Mobil: booking nahoře */
}
@media (min-width: 980px) {
  .pq-vylet-sidebar {
    order: 0;
    align-self: start;
    position: sticky;
    top: calc(var(--space-16) + var(--space-4));
  }
}

.pq-vylet-booking {
  padding: var(--space-4);
  background: var(--color-bg-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}
@media (min-width: 980px) {
  .pq-vylet-booking { padding: var(--space-5); }
}

/* Badge */
.pq-vylet-booking__badge {
  display: inline-block;
  margin-block-end: var(--space-4);
  padding: var(--space-1) var(--space-3);
  background: var(--color-primary);
  border-radius: var(--radius-full);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: .05em;
}

/* Tabulka cen */
.pq-vylet-booking__ceny {
  width: 100%;
  border-collapse: collapse;
  margin-block-end: var(--space-2);
}
.pq-vylet-booking__ceny th,
.pq-vylet-booking__ceny td {
  padding: var(--space-1) 0;
  border-block-end: 1px solid var(--color-border);
  font-size: var(--text-sm);
  text-align: left;
}
.pq-vylet-booking__ceny th {
  color: var(--color-text-muted);
  font-weight: 400;
  padding-inline-end: var(--space-4);
}
.pq-vylet-booking__ceny td {
  text-align: right;
  font-family: var(--font-heading);
}
.pq-vylet-booking__ceny td strong {
  font-size: var(--text-base);
  color: var(--color-secondary);
}
.pq-vylet-booking__ceny tr:last-child th,
.pq-vylet-booking__ceny tr:last-child td {
  border-block-end: none;
}

/* Jednoduchá cena */
.pq-vylet-booking__price {
  margin: 0 0 var(--space-2);
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: var(--font-weight-black);
  color: var(--color-text);
}
.pq-vylet-booking__price strong { color: var(--color-secondary); }
.pq-vylet-booking__price small {
  display: block;
  font-size: var(--text-sm);
  font-weight: 400;
  color: var(--color-text-muted);
}

.pq-vylet-booking__note {
  margin: 0 0 var(--space-4);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  font-style: italic;
}

/* Výběr varianty (ranní / odpolední) */
.pq-varianta-wrap {
  border: none;
  padding: 0;
  margin: 0 0 var(--space-3);
}

.pq-varianta-wrap__legend {
  display: flex !important; /* Astra override */
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: var(--space-2);
  width: 100%;
}

/* Dva sloupce vedle sebe */
.pq-varianta-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2);
}

/* Každá karta */
.pq-varianta-option {
  display: grid !important; /* Astra override pro label */
  grid-template-columns: 16px 1fr;
  grid-template-rows: auto auto;
  column-gap: var(--space-2);
  row-gap: 2px;
  align-items: start;
  padding: var(--space-3);
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: border-color var(--transition-fast), background var(--transition-fast);
  margin: 0;
}
.pq-varianta-option:hover {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 5%, transparent);
}
.pq-varianta-option:has(input:checked) {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.pq-varianta-radio {
  grid-column: 1;
  grid-row: 1;
  margin-top: 3px; /* vizuální zarovnání s textem */
  width: 15px;
  height: 15px;
  accent-color: var(--color-primary);
  cursor: pointer;
  flex-shrink: 0;
}

.pq-varianta-option__title {
  grid-column: 2;
  grid-row: 1;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  line-height: 1.3;
}

.pq-varianta-option__cas {
  grid-column: 2;
  grid-row: 2;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  font-family: var(--font-heading);
  font-weight: var(--font-weight-semibold);
}

/* Zvýraznění textu u vybrané varianty */
.pq-varianta-option:has(input:checked) .pq-varianta-option__title {
  color: var(--color-primary);
}
.pq-varianta-option:has(input:checked) .pq-varianta-option__cas {
  color: var(--color-primary);
  opacity: .8;
}

/* Mini meta-seznam v kartě */
.pq-vylet-booking__meta {
  display: grid;
  gap: var(--space-2);
  margin: var(--space-4) 0;
  padding: var(--space-4);
  list-style: none;
  background: var(--color-bg-alt);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}
.pq-vylet-booking__meta li {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

/* CTA tlačítka */
.pq-btn--full {
  width: 100%;
  justify-content: center;
  margin-block-end: var(--space-3);
}

/* Garanční řádek */
.pq-vylet-booking__guarantee {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: var(--space-3) 0 0;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

/* Odkaz na osu výletů („Kdy kam") pod CTA v rezervační kartě. */
.pq-vylet-booking__osa {
  margin: var(--space-3) 0 0;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

/* =========================================================================
 * PRŮVODCE SEKCE
 * ===================================================================== */

.pq-vylet-guide {
  background: var(--color-bg-alt);
  padding-block: var(--space-12);
  border-block-start: 1px solid var(--color-border);
}

.pq-vylet-guide__title {
  margin: 0 0 var(--space-4);
  font-family: var(--font-heading);
  font-size: clamp(1.375rem, 3vw, 1.875rem);
  font-weight: var(--font-weight-black);
  color: var(--color-text);
}

.pq-vylet-guide__license {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin-block-start: var(--space-4);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-secondary);
}

/* =========================================================================
 * PŘÍBUZNÉ VÝLETY
 * ===================================================================== */

/* Zdvojená třída kvůli specificitě — pravidlo s jednou třídou se na stránce
   neprosadilo (změřený padding byl 0). Fyzické longhandy místo padding-block. */
.pq-vylet-related.pq-vylet-related {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.pq-vylet-related__heading {
  margin-block-end: var(--space-8);
  text-align: center;
}

/* =========================================================================
 * STICKY MOBILE BAR [CP-12]
 * ===================================================================== */

[hidden] { display: none !important; }

.pq-stickybar {
  position: fixed;
  inset-block-end: 0;
  inset-inline: 0;
  z-index: var(--z-sticky);
  background: var(--color-bg-card);
  border-block-start: 1px solid var(--color-border);
  box-shadow: 0 -4px 20px rgba(17, 52, 59, .12);
  padding: var(--space-3) var(--container-pad);
}

.pq-stickybar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

.pq-stickybar__price {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pq-stickybar__price small {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
}
.pq-stickybar__price strong {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: var(--font-weight-black);
  color: var(--color-secondary);
}

/* Desktop: stickybar skrytý, booking card v sidebaru */
@media (min-width: 980px) {
  .pq-stickybar { display: none !important; }
}

@media (max-width: 979px) {
  /* Safe-area pro iPhony s home bar */
  .pq-stickybar {
    padding-block-end: calc(var(--space-3) + env(safe-area-inset-bottom));
  }
  /* Obsah se neschovává za lištou */
  body { padding-block-end: 72px; }
}

/* =========================================================================
 * ACCESSIBILITY
 * ===================================================================== */

.pq-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* =========================================================================
 * ASTRA OVERRIDE — ID-scope + !important + granulární border-* [A.4]
 * ===================================================================== */

/* Obecný reset fontů na tlačítka a FAQ v kontextu Astry */
#pq-main .pq-vylet-booking .pq-btn,
#pq-main .pq-vylet-cta-inline .pq-btn {
  font-family: var(--font-body) !important;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

/* Astra přepisuje <details> summary cursor */
#pq-main details.pq-vylet-faq__item > summary {
  cursor: pointer !important;
}

/* Astra typography v editor oblasti */
#pq-main .pq-vylet-text__body h2,
#pq-main .pq-vylet-text__body h3,
#pq-main .pq-vylet-text__body p,
#pq-main .pq-vylet-text__body ul,
#pq-main .pq-vylet-text__body ol {
  font-family: var(--font-body) !important;
}

/* Astra nastavuje h1 jinou barvu — přebití */
#pq-main .pq-vylet-hero__title {
  color: var(--color-text) !important;
}

/* Astra img { height: auto } vs. hero foto */
#pq-main .pq-vylet-hero__img {
  height: 100% !important;
}

/* Booking tabulka — reset Astra table stylů */
#pq-main .pq-vylet-booking__ceny,
#pq-main .pq-vylet-booking__ceny th,
#pq-main .pq-vylet-booking__ceny td {
  border-top: none !important;
  border-right: none !important;
  border-left: none !important;
  background: none !important;
}

/* CF7 / jt-wa-wrapper — primární CTA na mobilu i desktopu */
.pq-vylet-booking .jt-wa-wrapper { display: block; }
.pq-vylet-booking .jt-wa-open {
  background: var(--color-secondary-dark) !important;
  box-shadow: none !important;
  font-size: var(--text-base) !important;
  font-weight: var(--font-weight-bold) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  padding: var(--space-3) var(--space-6) !important;
  border-radius: var(--radius-full) !important;
  margin-block-end: var(--space-3) !important;
  width: 100% !important;
  display: block !important;
  text-align: center !important;
}
/* WhatsApp = sekundární odkaz */
.pq-vylet-booking .pq-btn--primary {
  display: inline-flex;
  background: transparent !important;
  color: var(--color-secondary) !important;
  font-size: var(--text-sm) !important;
  font-weight: var(--font-weight-semibold) !important;
  padding: var(--space-2) 0 !important;
  box-shadow: none !important;
  text-decoration: underline !important;
  justify-content: center;
}

@media (min-width: 980px) {
  .pq-vylet-booking .jt-wa-open:hover {
    background: var(--color-secondary) !important;
    box-shadow: var(--shadow-brand) !important;
  }
  .pq-vylet-booking .pq-btn--primary:hover {
    color: var(--color-secondary-dark) !important;
    transform: none !important;
  }
}

/* Skryté pluginové elementy */
#pq-main > div.pq-container.pq-vylet-layout > div > section > div > div.wp-block-buttons,
body > div.qlwapp > div {
  display: none !important;
}

/* =========================================================================
 * REDUCED MOTION
 * ===================================================================== */

@media (prefers-reduced-motion: reduce) {
  .pq-vylet-faq__icon::after { transition-duration: .01ms !important; }
}


/* Více měn v jedné buňce */
.pq-vylet-booking__ceny td {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-3);
  align-items: baseline;
  justify-content: flex-end;
}
.pq-vylet-booking__ceny td span {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

/* Poznámka pod labelem (sleva, podmínka) */
.pq-vylet-booking__ceny-pozn {
  display: block;
  font-size: var(--text-xs);
  font-weight: 400;
  color: var(--color-text-muted);
  font-style: italic;
}

/* Hero — CZK pod EUR */
.pq-vylet-hero__price-czk {
  display: block;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  font-weight: 400;
}
.pq-vylet-hero__price-pozn {
  display: block;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  font-style: italic;
}


/*  sssssssssssssssss */
/* FORCE HERO FIX */
#pq-main .pq-vylet-hero {
    position: relative !important;
    min-height: 620px !important;
    display: flex !important;
    align-items: center !important;
    overflow: hidden !important;
    background: #062f3a !important;
}

#pq-main .pq-vylet-hero__gradient {
    display: none !important;
    background: none !important;
}

#pq-main .pq-vylet-hero__img-wrap {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
}

#pq-main .pq-vylet-hero__img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 35% !important;
    opacity: 1 !important;
    filter: none !important;
}

#pq-main .pq-vylet-hero__inner {
    position: relative !important;
    z-index: 5 !important;
    max-width: 760px !important;
    margin: 80px auto 80px 0 !important;
    padding: 34px 38px !important;
    background: rgba(250, 248, 238, 0.52) !important;
    border-radius: 24px !important;
    box-shadow: 0 24px 70px rgba(0, 40, 50, 0.28) !important;
    backdrop-filter: blur(10px) !important;
}

#pq-main .pq-vylet-hero__title {
    color: #062f3a !important;
    text-shadow: none !important;
}

#pq-main .pq-breadcrumb,
#pq-main .pq-breadcrumb a,
#pq-main .pq-vylet-hero__meta {
    color: #315f68 !important;
}

#pq-main .pq-vylet-hero__price-wrap {
    background: rgba(255, 255, 255, 0.78) !important;
    box-shadow: none !important;
}

@media (max-width: 768px) {
    #pq-main .pq-vylet-hero {
        min-height: auto !important;
        align-items: flex-end !important;
    }

    #pq-main .pq-vylet-hero__inner {
        max-width: none !important;
        margin: 180px 16px 32px !important;
        padding: 24px 20px !important;
        border-radius: 18px !important;
    }
}


/* FORCE HERO DESKTOP FIX */
@media (min-width: 1200px) {
    #pq-main .pq-vylet-hero {
        min-height: 540px !important;
        align-items: center !important;
    }

    #pq-main .pq-vylet-hero__img {
        object-position: center 38% !important;
    }

    #pq-main .pq-vylet-hero__inner {
        width: min(620px, calc(100% - 48px)) !important;
        max-width: 620px !important;

        margin-left: max(24px, calc((100vw - 1180px) / 2)) !important;
        margin-right: auto !important;
        margin-top: 56px !important;
        margin-bottom: 56px !important;

        padding: 28px 32px !important;
        border-radius: 18px !important;
    }

    #pq-main .pq-vylet-hero__title {
        font-size: clamp(34px, 2.6vw, 50px) !important;
        line-height: 1.08 !important;
        max-width: 560px !important;
    }
}

@media (min-width: 1600px) {
    #pq-main .pq-vylet-hero {
        min-height: 520px !important;
    }

    #pq-main .pq-vylet-hero__inner {
        max-width: 600px !important;
        padding: 26px 30px !important;
    }

    #pq-main .pq-vylet-hero__title {
        font-size: 46px !important;
    }
}


/* ==========================================================================
   TERMÍNY VÝLETU — booking card (single-vylet.css)
   Přidej za existující pravidla v single-vylet.css
   ========================================================================== */

/* Fieldset reset */
.pq-vylet-terminy {
  border: none;
  padding: 0;
  margin: 0 0 var(--space-4);
}

/* Legenda — ikona + text */
.pq-vylet-terminy__legend {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: var(--space-3);
  width: 100%;
}

/* [CP-12] legend má display:flex — hidden guard */
.pq-vylet-terminy__legend[hidden] { display: none !important; }

/* Jeden radio option — celý řádek je klikatelný */
.pq-vylet-terminy__option {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-2);
  border: 2px solid var(--color-border, #e5e7eb);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: border-color var(--transition-fast), background var(--transition-fast);
  line-height: 1.3;
}

.pq-vylet-terminy__option:last-child {
  margin-bottom: 0;
}

.pq-vylet-terminy__option:hover {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 6%, transparent);
}

/* Vybraný termín */
.pq-vylet-terminy__option:has(input:checked) {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
}

/* Nativní radio — skrytý, ale přístupný */
.pq-termin-radio {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  accent-color: var(--color-primary);
  cursor: pointer;
}

/* Datum */
.pq-vylet-terminy__date {
  flex: 1;
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  font-size: var(--text-base);
}

/* Poznámka (volitelná) */
.pq-vylet-terminy__note {
  font-size: var(--text-sm);
  color: var(--color-primary-dark, #b8960a);
  font-weight: var(--font-weight-bold);
  white-space: nowrap;
}

/* Fallback text (když žádné konkrétní termíny) */
.pq-vylet-terminy__fallback {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin: 0 0 var(--space-4);
}

/* [CP-12] fallback má display:flex — hidden guard */
.pq-vylet-terminy__fallback[hidden] { display: none !important; }

/* =========================================================================
 * MINI KALENDÁŘ TERMÍNŮ
 * ===================================================================== */

.pq-termin-kal {
  margin-block-end: var(--space-3);
}

.pq-termin-kal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-block-end: var(--space-2);
}

.pq-termin-kal__mesic-label {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
}

.pq-termin-kal__nav {
  background: none;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  line-height: 1;
  color: var(--color-text);
  cursor: pointer;
  transition: background var(--transition-fast), border-color var(--transition-fast);
  padding: 0;
}
.pq-termin-kal__nav:hover:not(:disabled) {
  background: var(--color-bg-alt);
  border-color: var(--color-primary);
}
.pq-termin-kal__nav:disabled {
  opacity: .3;
  cursor: default;
}

/* Mřížka 7 sloupců */
.pq-termin-kal__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
}

.pq-termin-kal__dow {
  font-size: 0.6875rem;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
  text-align: center;
  padding-block-end: var(--space-1);
}

.pq-termin-kal__day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-xs);
  border-radius: var(--radius-sm);
  color: var(--color-text-muted);
  background: none;
  border: none;
  padding: 0;
  line-height: 1;
  cursor: default;
}

.pq-termin-kal__day--has {
  background: color-mix(in srgb, var(--color-primary) 12%, transparent);
  color: var(--color-primary);
  font-weight: var(--font-weight-bold);
  cursor: pointer;
  transition: background var(--transition-fast);
}
.pq-termin-kal__day--has:hover {
  background: color-mix(in srgb, var(--color-primary) 22%, transparent);
}

.pq-termin-kal__day--plny {
  background: color-mix(in srgb, var(--color-error) 16%, transparent);
  color: var(--color-error);
  font-weight: var(--font-weight-bold);
  text-decoration: line-through;
  text-decoration-thickness: 1.5px;
  opacity: .85;
}
.pq-termin-kal__day--plny:hover {
  background: color-mix(in srgb, var(--color-error) 26%, transparent);
}

.pq-termin-kal__day--sel {
  background: var(--color-primary) !important;
  color: #fff !important;
  text-decoration: none !important;
}

.pq-termin-kal__day--dnes:not(.pq-termin-kal__day--has):not(.pq-termin-kal__day--sel) {
  outline: 1px solid var(--color-border);
  color: var(--color-text);
}

/* Vybraný termín — info řádek pod kalendářem */
.pq-termin-kal__info {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  padding: var(--space-2) var(--space-3);
  background: color-mix(in srgb, var(--color-primary) 8%, transparent);
  border-radius: var(--radius-md);
  margin-block-end: var(--space-3);
}
.pq-termin-kal__info[hidden] { display: none !important; }

.pq-termin-kal__info-date {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
}

.pq-termin-kal__info-note {
  font-size: var(--text-xs);
  color: var(--color-primary);
  font-weight: var(--font-weight-bold);
}

.pq-termin-kal__info-volno {
  padding: 2px 8px;
  border-radius: var(--radius-sm);
}
.pq-termin-kal__info-volno--plny {
  color: var(--color-error) !important;
  background: color-mix(in srgb, var(--color-error) 14%, transparent);
}

.vylet section{
  padding-block: 0;
}

/* =========================================================================
 * FOTOGALERIE — sekce v detailu výletu
 * ===================================================================== */

.pq-vylet-gallery {
  margin-block-end: var(--space-10);
}

/* Nadpis — shodný rytmus jako ostatní H2 v šabloně (.pq-vylet-h2) */
.pq-vylet-gallery .pq-vylet-h2 {
  margin-block-end: var(--space-5);
}

/*
 * Galerie track — přebírá .pq-gallery__track z pluginu gallery.css.
 * Zde pouze kontextové úpravy pro single-vylet layout.
 */

/* Na desktopu — galerie se vejde do levého sloupce (pq-vylet-content),
   track může přesahovat přes scroll bez ovlivnění layoutu */
.pq-vylet-gallery .pq-gallery__track {
  /* Zarovnání s okrajem levého sloupce */
  margin-inline: 0;
}

/* Vizuální oddělovač od sekce nad (itinerář) */
.pq-vylet-itinerary + .pq-vylet-gallery {
  padding-block-start: var(--space-2);
}

.single-vylet section{
  padding: 0;
}




/* =========================================================================
 * QUANTITY STEPPER + KALKULACE
 * ===================================================================== */

.pq-cenik__price-wrap {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);
}

.pq-cenik__prices {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-2);
  align-items: baseline;
  justify-content: flex-end;
  min-width: 0;
}

/* Stepper */
.pq-qty {
  display: inline-flex;
  align-items: center;
  gap: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  overflow: hidden;
  flex-shrink: 0;
}

.pq-qty__btn {
  background: none;
  border: none;
  cursor: pointer;
  width: 28px;
  height: 28px;
  font-size: 1rem;
  line-height: 1;
  color: var(--color-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
  padding: 0;
}
.pq-qty__btn:hover {
  background: var(--color-bg-alt);
}
.pq-qty__btn:disabled {
  color: var(--color-border);
  cursor: default;
}

.pq-qty__val {
  min-width: 24px;
  text-align: center;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  font-family: var(--font-heading);
  color: var(--color-text);
  user-select: none;
}

/* Celková cena */
.pq-cenik__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: var(--space-3) 0 var(--space-2);
  border-top: 2px solid var(--color-secondary);
  margin-block-start: var(--space-1);
}

.pq-cenik__total-label {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.pq-cenik__total-val {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-3);
  align-items: baseline;
  justify-content: flex-end;
}

.pq-cenik__total-eur {
  font-size: var(--text-xl);
  font-family: var(--font-heading);
  font-weight: var(--font-weight-black);
  color: var(--color-secondary);
}

.pq-cenik__total-czk {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  font-family: var(--font-heading);
}

/* Astra reset pro nové prvky v tabulce */
#pq-main .pq-qty__btn {
  background: none !important;
  border: none !important;
}
#pq-main .pq-vylet-booking__ceny td {
  display: table-cell !important;
}
/* Astra reset pro kalendářová tlačítka */
#pq-main .pq-termin-kal__nav,
#pq-main .pq-termin-kal__day--has {
  font-family: var(--font-body) !important;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent !important;
}
#pq-main .pq-termin-kal__day--has {
  background: color-mix(in srgb, var(--color-primary) 12%, transparent) !important;
  border: none !important;
}
#pq-main .pq-termin-kal__day--has:hover {
  background: color-mix(in srgb, var(--color-primary) 22%, transparent) !important;
}
#pq-main .pq-termin-kal__day--plny {
  background: color-mix(in srgb, var(--color-error) 16%, transparent) !important;
  color: var(--color-error) !important;
  text-decoration: line-through !important;
}
#pq-main .pq-termin-kal__day--plny:hover {
  background: color-mix(in srgb, var(--color-error) 26%, transparent) !important;
}
#pq-main .pq-termin-kal__day--sel {
  background: var(--color-primary) !important;
  color: #fff !important;
  border: none !important;
  text-decoration: none !important;
}



/* Skupinový stepper */
.pq-skupinovy-stepper {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) 0 var(--space-2);
  border-top: 1px solid var(--color-border);
  margin-block-start: var(--space-1);
}
.pq-skupinovy-stepper__label {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  flex: 1;
}
.pq-skupinovy-stepper__cena {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  font-family: var(--font-heading);
  white-space: nowrap;
}

/* Džípový režim — steppery, hint, rozpis */
.pq-jeep-ovladani .pq-skupinovy-stepper {
  flex-wrap: wrap;
}
.pq-jeep-hint {
  flex-basis: 100%;
  font-size: var(--text-xs);
  color: var(--color-secondary);
}
.pq-jeep-rozpis {
  padding: var(--space-2) var(--space-3);
  margin-block-start: var(--space-2);
  background: var(--color-surface, #f6f7f7);
  border: 1px solid var(--color-border);
  border-radius: 6px;
  font-size: var(--text-sm);
}
.pq-jeep-rozpis__titulek {
  font-weight: var(--font-weight-semibold);
  margin-block-end: var(--space-1);
}
.pq-jeep-rozpis__radek--plny {
  color: var(--color-secondary);
}

/* Aktivní řádek ceníku (skupinový režim) */
.pq-vylet-booking__ceny--skupinovy .pq-ceny-row--aktivni th,
.pq-vylet-booking__ceny--skupinovy .pq-ceny-row--aktivni td {
  color: var(--color-secondary) !important;
  font-weight: var(--font-weight-semibold);
}
.pq-vylet-booking__ceny--skupinovy .pq-ceny-row--aktivni td strong {
  color: var(--color-secondary) !important;
}

.pq-vylet-booking__ceny td strong {
  display: block !important;
}



#pq-itinerary-heading,
#pq-cenik-kalkulace {
    scroll-margin-top: 80px;
}

@media (max-width: 768px) {
    #pq-itinerary-heading,
    #pq-cenik-kalkulace {
        scroll-margin-top: 90px;
    }
}

.hide{
  display: none!important;
}










/*  CF7 výlet form  */




/* výlet form */

/* ── JT CF7 Form – reset všeho ──────────────────────────────── */

.jt-form-wrap * {
    box-sizing: border-box;
    font-family: Arial, Helvetica, sans-serif;
}

.jt-form-wrap .wpcf7-form p {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
}

.jt-form-wrap .wpcf7-form br {
    display: none !important;
}

.jt-form-wrap .wpcf7-form-control-wrap {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}


div.jt-form-wrap p,
.jt-field p,
.jt-section-label p {
    margin: 0 !important;
    padding: 0 !important;
}

/* ── Layout ─────────────────────────────────────────────────── */

.jt-form-wrap {
    width: 100%;
    max-width: 560px;
    margin: 0 auto;
    box-sizing: border-box;
}

.jt-form-title {
    font-size: 11px;
    font-weight: 700;
    color: #9ca3af;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin: 0 0 10px;
}

.jt-form-wrap .jt-section {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 10px 12px;
    margin-bottom: 6px;
}

.jt-section-label {
    font-size: 10px;
    font-weight: 700;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin: 0 0 8px;
    line-height: 1;
}

.jt-row-half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.jt-row-thirds {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
}

.jt-row-guests {
    display: grid;
    grid-template-columns: 1fr 3fr;
    gap: 8px;
}

.jt-field {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.jt-field-mt {
    margin-top: 8px;
}

.jt-label {
    font-size: 11px;
    font-weight: 600;
    color: #374151;
    margin: 0 0 4px;
    line-height: 1;
    display: block;
}

.jt-req {
    color: #dc2626;
}

/* ── Jednotné inputy – přebijeme vše !important ─────────────── */

.jt-form-wrap input[type="text"],
.jt-form-wrap input[type="tel"],
.jt-form-wrap input[type="email"],
.jt-form-wrap input[type="number"],
.jt-form-wrap input[type="date"],
.jt-form-wrap select,
.jt-form-wrap textarea {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    height: 38px !important;
/*     min-height: 0 !important; */
    padding: 0 10px !important;
    margin: 0 !important;
    font-size: 13px !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-weight: 400 !important;
    line-height: 38px !important;
    color: #111827 !important;
    background: #f9fafb !important;
    border: 1px solid #d1d5db !important;
    border-radius: 7px !important;
    outline: none !important;
    box-shadow: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    transition: border-color .12s, background .12s !important;
}

.jt-form-wrap input[type="text"]:focus,
.jt-form-wrap input[type="tel"]:focus,
.jt-form-wrap input[type="email"]:focus,
.jt-form-wrap input[type="number"]:focus,
.jt-form-wrap input[type="date"]:focus,
.jt-form-wrap select:focus,
.jt-form-wrap textarea:focus {
    border-color: #6b7280 !important;
    background: #ffffff !important;
}

/* textarea výška jiná */
.jt-form-wrap textarea {
    min-height: 50px !important;
    padding: 8px 10px !important;
    line-height: 1.5 !important;
    resize: vertical !important;
}

/* select šipka */
.jt-form-wrap select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
    padding-right: 28px !important;
    cursor: pointer !important;
}

/* date – ikona kalendáře */
.jt-form-wrap input[type="date"]::-webkit-calendar-picker-indicator {
    opacity: 0.5;
    cursor: pointer;
}

/* number – skrýt šipky */
.jt-form-wrap input[type="number"]::-webkit-inner-spin-button,
.jt-form-wrap input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.jt-form-wrap input[type="number"] {
    -moz-appearance: textfield !important;
}

/* placeholder barva */
.jt-form-wrap input::placeholder,
.jt-form-wrap textarea::placeholder {
    color: #9ca3af !important;
    opacity: 1 !important;
}

/* ── Submit ─────────────────────────────────────────────────── */

.jt-form-wrap input[type="submit"],
.jt-form-wrap .wpcf7-submit {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    padding: 13px !important;
    margin: 4px 0 0 !important;
    background-color: var(--logo-turq) !important;
    
    color: #ffffff !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    letter-spacing: .04em !important;
    line-height: 1 !important;
    cursor: pointer !important;
   /*  box-shadow: 0 5px 0 #9f0000, 0 8px 20px rgba(214,0,0,.2) !important; */
    transition: background .12s, transform .08s, box-shadow .08s !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

.jt-form-wrap input[type="submit"]:hover,
.jt-form-wrap .wpcf7-submit:hover {
    
    background-color: var(--logo-blue) !important;
}

.jt-form-wrap input[type="submit"]:active,
.jt-form-wrap .wpcf7-submit:active {
    transform: translateY(3px) !important;
    box-shadow: 0 2px 0 #9f0000 !important;
}

/* ── GDPR ───────────────────────────────────────────────────── */

.jt-gdpr {
    display: block !important;
    font-size: 11px !important;
    color: #9ca3af !important;
    line-height: 1.6 !important;
    margin: 8px 0 10px !important;
    padding: 0 !important;
}

.jt-gdpr a {
    color: #6b7280 !important;
}

/* ── Validace ───────────────────────────────────────────────── */

.jt-form-wrap .wpcf7-not-valid {
    border-color: #dc2626 !important;
    background: #fff5f5 !important;
}

.jt-form-wrap .wpcf7-not-valid-tip {
    font-size: 11px !important;
    color: #dc2626 !important;
    margin-top: 3px !important;
    display: block !important;
}

.jt-form-wrap .wpcf7-response-output {
    border-radius: 8px !important;
    padding: 8px 12px !important;
    font-size: 12px !important;
    margin-top: 8px !important;
}


.wpcf7-form-control.wpcf7-submit.has-spinner{
  margin-top: 1em!important;
}

/* ── Checkbox / radio seznamy uvnitř formuláře ─────────────────────── */
.jt-form-wrap .wpcf7-checkbox,
.jt-form-wrap .wpcf7-radio {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.jt-form-wrap .wpcf7-list-item {
    margin: 0 !important;
    display: block !important;
}

.jt-form-wrap .wpcf7-list-item label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 12px 14px !important;
    border: 1px solid #d7dbe0 !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    transition: border-color .15s ease, background .15s ease !important;
}

.jt-form-wrap .wpcf7-list-item label:hover {
    border-color: #0b1220 !important;
    background: #f7f8fb !important;
}

.jt-form-wrap .wpcf7-list-item input[type="checkbox"],
.jt-form-wrap .wpcf7-list-item input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    margin: 1px 0 0 !important;
    flex: 0 0 auto !important;
    accent-color: #d60000 !important;
}

.jt-form-wrap .wpcf7-list-item-label {
    flex: 1 1 auto !important;
}

/* ── Mobil ──────────────────────────────────────────────────── */

@media (max-width: 480px) {
    .jt-row-half,
      .jt-row-thirds ,
    .jt-row-guests {
        grid-template-columns: 1fr !important;
    }
}