.mt-ticket-block {
  border-radius: 12px;
  border: 1px solid rgba(17, 24, 39, 0.12);
  padding: 14px;
  margin: 0;
}

.mt-ticket-block__inner strong {
  display: inline-block;
  font-size: 14px;
  letter-spacing: 0.06em;
}

.mt-ticket-seatmap-block {
  background: linear-gradient(
    135deg,
    var(--mt-seatmap-bg-start, #e0f2fe),
    var(--mt-seatmap-bg-end, #ecfdf5)
  );
  border-color: rgba(2, 132, 199, 0.25);
}

.mt-ticket-summary-block {
  background: linear-gradient(
    135deg,
    var(--mt-summary-bg-start, #f5f3ff),
    var(--mt-summary-bg-end, #fff7ed)
  );
  border-color: rgba(91, 33, 182, 0.25);
}

/* Block theme approach:
   Wrap the default top UI (gallery/summary) with a Group having class "mt-standard-product-ui".
   When the product is ticket, we add body class "mt-is-ticket-product" and hide that wrapper. */
body.mt-is-ticket-product .mt-standard-product-ui {
  display: none !important;
}

/* Layout: Fixed max widths for container and blocks */
body.mt-is-ticket-product .woocommerce div.product {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 1rem;
  align-items: flex-start;
  max-width: 1140px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

/* Container for both blocks (nv-single-product-top) */
body.mt-is-ticket-product .nv-single-product-top {
  max-width: 1140px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 1rem;
  align-items: flex-start !important;
}

/* Ensure summary block in nv-single-product-top starts from top */
body.mt-is-ticket-product .nv-single-product-top .mt-ticket-summary-block {
  align-self: flex-start !important;
  margin-top: 0 !important;
  top: 0 !important;
}

/* Remove any margin-top and padding-top from nv-single-product-top children that might push content down */
body.mt-is-ticket-product .nv-single-product-top > * {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.mt-is-ticket-product .nv-single-product-top > *:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Left block (seatmap) - fixed max width 520px */
body.mt-is-ticket-product .woocommerce div.product .images,
body.mt-is-ticket-product .nv-single-product-top .mt-ticket-seatmap-block {
  flex: 0 0 auto !important;
  min-width: 0 !important;
  max-width: 520px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* Right block (summary) - takes remaining space, no max width */
body.mt-is-ticket-product .woocommerce div.product .summary {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  align-self: flex-start !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Ensure blocks themselves use flex and don't expand */
body.mt-is-ticket-product .mt-ticket-seatmap-block,
body.mt-is-ticket-product .mt-ticket-summary-block {
  flex: 0 0 auto !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Force summary block to start from top - override theme styles */
body.mt-is-ticket-product
  .woocommerce
  div.product
  .summary
  .mt-ticket-summary-block,
body.mt-is-ticket-product .nv-single-product-top .mt-ticket-summary-block,
body.mt-is-ticket-product .mt-ticket-summary-block {
  align-self: flex-start !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  top: 0 !important;
  position: relative !important;
}

/* Remove any margin-top and padding-top from summary container that might push content down */
body.mt-is-ticket-product .woocommerce div.product .summary {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Ensure summary block wrapper doesn't have margin-top or padding-top */
body.mt-is-ticket-product .woocommerce div.product .summary > *:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Direct max-width for seatmap block in nv-single-product-top */
body.mt-is-ticket-product .nv-single-product-top .mt-ticket-seatmap-block {
  max-width: 520px !important;
  width: auto !important;
  flex: 0 0 auto !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* Force max-width on seatmap block regardless of content - highest specificity */
body.mt-is-ticket-product .nv-single-product-top .mt-ticket-seatmap-block,
body.mt-is-ticket-product .woocommerce div.product .mt-ticket-seatmap-block,
body.mt-is-ticket-product .mt-ticket-seatmap-block {
  max-width: 500px !important;
  width: auto !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  flex: 0 0 auto !important;
}

/* Ensure seatmap block inner doesn't expand beyond parent */
body.mt-is-ticket-product .mt-ticket-seatmap-block .mt-ticket-block__inner {
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  width: 100% !important;
}

/* Prevent any child elements from expanding the container */
body.mt-is-ticket-product .woocommerce div.product .images > *,
body.mt-is-ticket-product .woocommerce div.product .summary > *,
body.mt-is-ticket-product .nv-single-product-top .mt-ticket-seatmap-block > *,
body.mt-is-ticket-product
  .nv-single-product-top
  .mt-ticket-seatmap-block
  .mt-ticket-block__inner
  > * {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Prevent inner content from affecting block width */
body.mt-is-ticket-product .mt-ticket-seatmap-block .mt-ticket-block__inner,
body.mt-is-ticket-product .mt-ticket-summary-block .mt-ticket-block__inner {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/* Responsive: stack on smaller screens */
@media (max-width: 768px) {
  body.mt-is-ticket-product .woocommerce div.product {
    flex-wrap: wrap;
  }

  body.mt-is-ticket-product .woocommerce div.product .images,
  body.mt-is-ticket-product .woocommerce div.product .summary {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
  }
}

/* ============================================
   SEATMAP BLOCK STYLES
   ============================================ */

/* Date Picker / Calendar */
.mt-seatmap-date-picker {
  margin-bottom: 2rem;
}

.mt-seatmap-date-picker h3 {
  margin-bottom: 1rem;
  font-size: 1.25rem;
  font-weight: 600;
}

.mt-calendar-container {
  background: var(--mt-bg, #fff);
  border-radius: 8px;
  padding: 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.mt-calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.mt-calendar-month-year {
  font-size: 1.125rem;
  font-weight: 600;
  text-transform: capitalize;
}

.mt-calendar-prev,
.mt-calendar-next {
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  padding: 0.25rem 0.75rem;
  color: var(--mt-text, #374151);
  transition: color 0.2s;
}

.mt-calendar-prev:hover,
.mt-calendar-next:hover {
  color: var(--mt-text, #1f2937);
}

.mt-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.5rem;
}

.mt-calendar-weekday {
  text-align: center;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--mt-text-muted, #6b7280);
  padding: 0.5rem;
}

.mt-calendar-day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--mt-border, #e5e7eb);
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.875rem;
  transition: all 0.2s;
  position: relative;
}

.mt-calendar-day-empty {
  border: none;
  cursor: default;
}

.mt-calendar-day-disabled {
  background: #f3f4f6;
  color: var(--mt-text-muted, #9ca3af);
  cursor: not-allowed;
  border-color: var(--mt-border, #e5e7eb);
}

.mt-calendar-day-available {
  background: var(--mt-success-light, #d1fae5);
  color: #065f46;
  border-color: var(--mt-success, #10b981);
  cursor: pointer;
}

.mt-calendar-day-available:hover {
  background: #a7f3d0;
  border-color: #059669;
}

.mt-calendar-day-unavailable {
  background: var(--mt-error-light, #fee2e2);
  color: #991b1b;
  border-color: var(--mt-error, #ef4444);
  cursor: not-allowed;
}

.mt-calendar-day-selected {
  background: var(--mt-primary, #3b82f6);
  color: #fff;
  border-color: var(--mt-primary-hover, #2563eb);
  font-weight: 600;
}

.mt-date-selected {
  margin-top: 1rem;
  padding: 0.75rem;
  background: var(--mt-primary-light, #eff6ff);
  border-radius: 6px;
  font-size: 0.9375rem;
}

.mt-selected-date-label {
  font-weight: 600;
  color: var(--mt-primary, #1e40af);
}

.mt-selected-date-value {
  color: var(--mt-primary-hover, #1e3a8a);
}

/* Time Picker */
.mt-seatmap-time-picker {
  margin-bottom: 2rem;
}

.mt-seatmap-time-picker h3 {
  margin-bottom: 1rem;
  font-size: 1.25rem;
  font-weight: 600;
}

.mt-time-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 1rem;
  max-width: 100%;
  box-sizing: border-box;
}

.mt-time-option {
  padding: 0.15rem 0.75rem;
  background: var(--mt-bg, #fff);
  border: 2px solid var(--mt-border, #e5e7eb);
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.9375rem;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 0.15rem;
  position: relative;
  color: var(--mt-text, #1f2937);
}

.mt-time-option:hover:not(:disabled) {
  border-color: var(--mt-primary, #3b82f6);
  background: var(--mt-primary-light, #eff6ff);
}

.mt-time-option:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.mt-time-option.mt-loading {
  opacity: 0.7;
  pointer-events: none;
}

.mt-time-option-selected {
  background: var(--mt-primary, #3b82f6);
  color: #fff;
  border-color: var(--mt-primary-hover, #2563eb);
}

.mt-time-option-selected .mt-time-departure,
.mt-time-option-selected .mt-time-arrival {
  color: #fff;
}

.mt-time-option-selected .mt-time-separator {
  color: rgba(255, 255, 255, 0.9);
}

.mt-time-option-selected:hover {
  background: var(--mt-primary-light, #eff6ff);
  color: var(--mt-text, #1f2937);
  border-color: var(--mt-primary, #3b82f6);
}

.mt-time-option-selected:hover .mt-time-departure,
.mt-time-option-selected:hover .mt-time-arrival {
  color: var(--mt-text, #1f2937);
}

.mt-time-option-selected:hover .mt-time-separator {
  color: var(--mt-text-muted, #6b7280);
}

.mt-course-available {
  border-color: #059669;
}

.mt-course-unavailable {
  border-color: var(--mt-error, #dc2626);
  background: var(--mt-error-light, #fef2f2);
}

.mt-course-time-passed {
  opacity: 0.5;
  background-color: var(--mt-border, #e5e7eb) !important;
  border-color: var(--mt-text-muted, #9ca3af) !important;
  color: var(--mt-text-muted, #6b7280) !important;
  cursor: not-allowed;
  pointer-events: none;
}

.mt-course-time-passed .mt-time-departure,
.mt-course-time-passed .mt-time-arrival,
.mt-course-time-passed .mt-time-separator {
  color: var(--mt-text-muted, #6b7280) !important;
}

.mt-time-option-selected.mt-course-unavailable {
  background: var(--mt-error, #dc2626);
  border-color: #b91c1c;
}

.mt-time-departure,
.mt-time-arrival {
  color: var(--mt-text, #1f2937);
  font-weight: 500;
}

.mt-time-separator {
  color: var(--mt-text-muted, #6b7280);
}

.mt-time-option-selected .mt-time-separator {
  color: rgba(255, 255, 255, 0.8);
}

.mt-time-selected {
  padding: 0.75rem;
  background: var(--mt-primary-light, #eff6ff);
  border-radius: 6px;
  font-size: 0.9375rem;
}

.mt-selected-time-label {
  font-weight: 600;
  color: var(--mt-primary, #1e40af);
}

.mt-selected-time-value {
  color: var(--mt-primary-hover, #1e3a8a);
}

/* Seat Map */
.mt-seatmap-container {
  margin-bottom: 2rem;
}

.mt-seatmap-container h3 {
  margin-bottom: 1rem;
  font-size: 1.25rem;
  font-weight: 600;
}

.mt-seat-map-wrapper {
  background: var(--mt-bg, #fff);
  border-radius: 8px;
  padding: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.mt-seat-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--mt-border, #e5e7eb);
}

.mt-legend-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
}

.mt-legend-seat {
  width: 24px;
  height: 24px;
  border-radius: 4px;
  border: 1px solid #d1d5db;
}

.mt-seat-map {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-width: 100%;
  overflow-x: auto;
}

.mt-seat-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.mt-seat-row-number {
  min-width: 30px;
  text-align: center;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--mt-text-muted, #6b7280);
}

.mt-seat {
  min-width: 40px;
  height: 40px;
  padding: 0;
  border: 2px solid #d1d5db;
  border-radius: 6px;
  background: var(--mt-bg, #fff);
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 600;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mt-seat-available {
  background: var(--mt-success-light, #d1fae5);
  border-color: var(--mt-success, #10b981);
  color: #065f46;
}

.mt-seat-available:hover {
  background: #a7f3d0;
  border-color: #059669;
  transform: scale(1.05);
}

.mt-seat-reserved {
  background: var(--mt-error-light, #fee2e2);
  border-color: var(--mt-error, #ef4444);
  color: #991b1b;
  cursor: not-allowed;
}

.mt-seat-selected {
  background: var(--mt-primary, #3b82f6);
  border-color: var(--mt-primary-hover, #2563eb);
  color: #fff;
  transform: scale(1.05);
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.3);
}

.mt-seat-selected:hover {
  background: var(--mt-primary-hover, #2563eb);
  transform: scale(1.1);
}

.mt-seat-disabled {
  background: #f3f4f6;
  border-color: #d1d5db;
  color: #9ca3af;
  cursor: not-allowed;
}

.mt-seat-aisle {
  width: 20px;
  height: 40px;
}

.mt-seat-map-aisle-left,
.mt-seat-map-aisle-right {
  height: 40px;
  display: flex;
  align-items: center;
  font-size: 0.75rem;
  color: #9ca3af;
}

.mt-seat-layout-loading,
.mt-seat-layout-error {
  text-align: center;
  padding: 2rem;
  color: var(--mt-text-muted, #6b7280);
}

.mt-seat-layout-error {
  color: var(--mt-error, #dc2626);
}

.mt-loading {
  opacity: 0.6;
  pointer-events: none;
}

/* ============================================
   TICKET SUMMARY BLOCK STYLES
   ============================================ */

.mt-ticket-summary-block {
  padding: 1.5rem;
}

.mt-summary-row {
  margin-bottom: 1.5rem;
}

.mt-summary-row:last-child {
  margin-bottom: 0;
}

/* Row 1: Category | Rating */
.mt-summary-row-1 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--mt-border, #e5e7eb);
}

.mt-summary-categories {
  font-size: 0.875rem;
}

.mt-product-category-link {
  color: var(--mt-primary, #3b82f6);
  text-decoration: none;
  transition: color 0.2s;
}

.mt-product-category-link:hover {
  color: var(--mt-primary-hover, #2563eb);
  text-decoration: underline;
}

.mt-summary-rating {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.mt-rating-stars {
  display: inline-flex;
  gap: 2px;
}

.mt-star {
  font-size: 1rem;
  color: #d1d5db;
  line-height: 1;
}

.mt-star-filled {
  color: #fbbf24;
}

.mt-reviews-link {
  font-size: 0.875rem;
  color: var(--mt-primary, #3b82f6);
  text-decoration: none;
  transition: color 0.2s;
}

.mt-reviews-link:hover {
  color: var(--mt-primary-hover, #2563eb);
  text-decoration: underline;
}

.mt-no-reviews {
  font-size: 0.875rem;
  color: var(--mt-text-muted, #6b7280);
}

/* Row 2: Product Title */
.mt-product-title {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
  color: #111827;
}

/* Row 3: Price */
.mt-product-price {
  font-size: 1.875rem;
  font-weight: 700;
  color: #059669;
}

.mt-product-price del {
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--mt-text-muted, #6b7280);
  margin-right: 0.5rem;
}

.mt-product-price ins {
  text-decoration: none;
}

/* Row 4: Short Description */
.mt-product-short-description {
  font-size: 0.5rem;
  line-height: 1.6;
  color: var(--mt-text, #4b5563);
  text-transform: none;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
}

.mt-product-short-description * {
  text-transform: none !important;
  font-style: normal !important;
  letter-spacing: normal !important;
}

.mt-product-short-description p {
  margin: 0 0 0.75rem 0;
}

.mt-product-short-description p:last-child {
  margin-bottom: 0;
}

.mt-product-short-description h2,
.mt-product-short-description h3,
.mt-product-short-description h4,
.mt-product-short-description h5,
.mt-product-short-description h6 {
  margin-bottom: 0 !important;
  margin-top: 0;
}

/* Row 4: Reduce bottom margin when separator follows */
.mt-summary-row-4 {
  margin-bottom: 0 !important;
}

/* Row 4.4: Segment (Starting / Final bus stop) */
.mt-route-segment-wrapper {
  margin-top: 0.5rem;
  margin-bottom: 0;
}

.mt-route-segment {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  font-size: 0.875rem;
}

.mt-segment-label {
  font-weight: 600;
  color: var(--mt-text, #374151);
  margin: 0;
}

.mt-segment-select {
  min-width: 140px;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--mt-border, #e5e7eb);
  border-radius: 6px;
  font-size: 0.875rem;
  color: var(--mt-text, #374151);
  background: #fff;
}

.mt-segment-select:disabled {
  opacity: 0.85;
  cursor: default;
}

/* Separator (between description and bus name) */
.mt-summary-separator {
  margin: 0.25rem 0 0.25rem 0;
  border: 0;
  border-top: 1px solid var(--mt-border, #e5e7eb);
  background: none;
  height: 0;
}

/* Row 4.5: Bus Name */
.mt-bus-name {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--mt-text, #4b5563);
  margin-top: 0;
}

.mt-bus-name-label {
  font-weight: 600;
  color: var(--mt-text, #374151);
}

.mt-bus-name-value {
  color: var(--mt-text, #4b5563);
}

/* Reduce margin between bus name and route info to standard line spacing */
.mt-summary-row-4-5 + .mt-summary-row-4-6 {
  margin-top: 0;
}

.mt-summary-row-4-5 {
  margin-bottom: 0;
}

/* Row 4.6: Route Info */
.mt-route-info {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--mt-text, #4b5563);
  margin-top: 0;
}

.mt-route-info-label {
  font-weight: 600;
  color: var(--mt-text, #374151);
}

.mt-route-start,
.mt-route-intermediate,
.mt-route-end {
  color: var(--mt-text, #4b5563);
}

.mt-station-time {
  color: #059669;
  font-weight: 600;
  font-size: 0.9em;
}

/* Reduce margin between route info and route distance to standard line spacing */
.mt-summary-row-4-6 + .mt-summary-row-4-7 {
  margin-top: 0;
}

.mt-summary-row-4-6 {
  margin-bottom: 0;
}

/* Row 4.7: Route Distance */
.mt-route-distance {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--mt-text, #4b5563);
  margin-top: 0;
}

.mt-route-distance-label {
  font-weight: 600;
  color: var(--mt-text, #374151);
}

.mt-route-distance-value {
  color: var(--mt-text, #4b5563);
}

/* Reduce margin between route distance and route duration to standard line spacing */
.mt-summary-row-4-7 + .mt-summary-row-4-8 {
  margin-top: 0;
}

.mt-summary-row-4-7 {
  margin-bottom: 0;
}

/* Row 4.8: Route Duration */
.mt-route-duration {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--mt-text, #4b5563);
  margin-top: 0;
}

.mt-route-duration-label {
  font-weight: 600;
  color: var(--mt-text, #374151);
}

.mt-route-duration-value {
  color: var(--mt-text, #4b5563);
}

/* Reduce margin between route duration and bus extras to standard line spacing */
.mt-summary-row-4-8 + .mt-summary-row-4-9 {
  margin-top: 0;
}

.mt-summary-row-4-8 {
  margin-bottom: 0;
}

/* Row 4.9: Bus Extras */
.mt-bus-extras {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--mt-text, #4b5563);
  margin-top: 0;
}

.mt-bus-extras-label {
  font-weight: 600;
  color: var(--mt-text, #374151);
}

.mt-bus-extras-value {
  color: var(--mt-text, #4b5563);
}

/* Selected Seats Summary */
.mt-selected-seats-summary {
  background: var(--mt-primary-light, #eff6ff);
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 1.5rem;
}

.mt-selected-seats-title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.75rem 0;
  color: #1e40af;
}

.mt-selected-seats-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mt-selected-seat-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0;
  border-bottom: 1px solid #bfdbfe;
  font-size: 0.9375rem;
  color: #1e3a8a;
}

.mt-selected-seat-item:last-child {
  border-bottom: none;
}

.mt-seat-info {
  flex: 1;
}

.mt-seat-info strong {
  color: #1e40af;
  font-weight: 600;
}

.mt-seat-info .price,
.mt-seat-info .woocommerce-Price-amount {
  color: #059669;
  font-weight: 600;
  margin-left: 0.25rem;
}

.mt-remove-seat-btn {
  background: var(--mt-error, #ef4444);
  color: #fff;
  border: none;
  border-radius: 4px;
  width: 22px;
  height: 22px;
  padding: 0;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  flex-shrink: 0;
  margin-left: 0.75rem;
}

.mt-remove-seat-btn:hover {
  background: var(--mt-error, #dc2626);
  transform: scale(1.1);
}

.mt-remove-seat-btn:active {
  transform: scale(0.95);
}

/* Row 5: Action Buttons */
/* Paid extras (optional) - checkboxes below bus extras */
.mt-ticket-paid-extras-wrapper {
  margin-bottom: 1rem;
}

.mt-paid-extras-title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.5rem 0;
}

.mt-paid-extras-description {
  font-size: 0.875rem;
  color: var(--mt-text-muted, #6b7280);
  margin: 0 0 0.75rem 0;
}

.mt-paid-extras-options {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.mt-paid-extras-option {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.9375rem;
}

.mt-paid-extras-option input {
  margin: 0;
}

.mt-paid-extras-option-label {
  user-select: none;
}

.mt-product-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.mt-btn {
  padding: 0.875rem 2rem;
  font-size: 1rem;
  font-weight: 600;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
  text-decoration: none;
  display: inline-block;
  text-align: center;
}

.mt-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.mt-btn-add-to-cart {
  background: var(--mt-primary, #3b82f6);
  color: #fff;
  flex: 1;
  min-width: 150px;
}

.mt-btn-add-to-cart:hover:not(:disabled) {
  background: var(--mt-primary-hover, #2563eb);
  transform: translateY(-1px);
  box-shadow: 0 4px 6px rgba(59, 130, 246, 0.3);
}

.mt-btn-buy-now {
  background: #059669;
  color: #fff;
  flex: 1;
  min-width: 150px;
}

.mt-btn-buy-now:hover:not(:disabled) {
  background: #047857;
  transform: translateY(-1px);
  box-shadow: 0 4px 6px rgba(5, 150, 105, 0.3);
}

/* Row 6: Meta Information */
.mt-product-meta {
  padding-top: 1rem;
  border-top: 1px solid var(--mt-border, #e5e7eb);
  font-size: 0.875rem;
}

.mt-meta-item {
  margin-bottom: 0.5rem;
  color: var(--mt-text-muted, #6b7280);
}

.mt-meta-item:last-child {
  margin-bottom: 0;
}

.mt-meta-label {
  font-weight: 600;
  color: var(--mt-text, #374151);
}

.mt-meta-value {
  color: var(--mt-text, #4b5563);
}

.mt-product-tag-link {
  color: var(--mt-primary, #3b82f6);
  text-decoration: none;
  transition: color 0.2s;
}

.mt-product-tag-link:hover {
  color: var(--mt-primary-hover, #2563eb);
  text-decoration: underline;
}

/* Station address and coordinates styles */
.mt-summary-row-4-6-1,
.mt-summary-row-4-6-2 {
  margin-top: 0;
  margin-bottom: 0;
}

.mt-station-address {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--mt-text, #4b5563);
  margin-top: 0;
}

.mt-station-address-label {
  font-weight: 600;
  color: var(--mt-text, #374151);
  margin-right: 0.5em;
}

.mt-station-address-value {
  color: var(--mt-text, #4b5563);
}

.mt-show-coordinates-link {
  display: inline-flex;
  align-items: center;
  margin-left: 0.5em;
  vertical-align: middle;
  cursor: pointer;
  text-decoration: none;
  line-height: 1;
}

.mt-show-coordinates-link:hover {
  text-decoration: none;
}

.mt-coordinates-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  color: var(--mt-primary, #3b82f6);
  transition: color 0.2s;
  vertical-align: middle;
  flex-shrink: 0;
}

.mt-show-coordinates-link:hover .mt-coordinates-icon {
  color: var(--mt-primary-hover, #2563eb);
}

/* Скриваме заглавието на темата вътре в summary при билетни продукти.
   Ползваме descendant селектор, защото темата може да добавя допълнителни wrapper-и/класове. */
body.mt-is-ticket-product div.product .summary .product_title,
body.mt-is-ticket-product .summary.entry-summary .product_title {
  display: none !important;
}

/* Скриваме горния page header на темата на страниците с билетни продукти,
   за да няма второ голямо заглавие и излишно празно място над продукта. */
body.mt-is-ticket-product .theme-page-header-bottom {
  display: none !important;
}

/* При билетни продукти махаме clear/разделителя преди табовете */
body.mt-is-ticket-product .product .theme-clear-fix.theme-margin-bottom-5 {
  display: none !important;
}

/* Правим summary нормална дясна колона във flex контейнера на продукта */
body.mt-is-ticket-product .product .summary.entry-summary {
  float: none !important;
  clear: none !important;
  width: auto !important;
  max-width: none !important;
  flex: 1 1 0 !important;
  align-self: flex-start !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Правим продукта flex-контейнер, ако съдържа нашия seatmap блок */
.single-product div.product:has(.mt-ticket-seatmap-block) {
  display: flex !important;
  flex-wrap: wrap !important;
  /* позволяваме пренасяне на нов ред */
  gap: 1rem;
  align-items: flex-start;
  max-width: 1140px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* На първия ред: seatmap (ляво) + summary (дясно) */
.single-product
  div.product:has(.mt-ticket-seatmap-block)
  > .mt-ticket-seatmap-block {
  flex: 0 0 500px !important;
  /* фиксирана ширина за лявата колона */
  max-width: 520px !important;
}

.single-product
  div.product:has(.mt-ticket-seatmap-block)
  > .summary.entry-summary {
  flex: 1 1 0 !important;
  /* взема останалото място на реда */
}

/* Всички следващи секции (clear + табовете) да минават на нов ред на 100% ширина */
.single-product
  div.product:has(.mt-ticket-seatmap-block)
  > .theme-clear-fix.theme-margin-bottom-5,
.single-product
  div.product:has(.mt-ticket-seatmap-block)
  > .theme-component-tab {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}
