.txt.short.has-txt {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    display: block !important;
    white-space: normal !important; /* Ensures text wraps instead of staying on one line */
}

/* Optional: Add some padding if the text touches the borders after expanding */
.txt.short.has-txt p {
    margin-bottom: 10px;
}

/*
	Custom CSS
	Please make sure your CSS rules are 
	more particular / have higher priority
	then other page styles
*/
 #events h3   {
	/* add your css rule here */
}


 #events p.duration, #events div.duration   {
	/* add your css rule here */
}


 #events p.description, #events div.description   {
	/* add your css rule here */
}


 #events .selectedEvent   {
	/* add your css rule here */
}


 #events input.reserve_time_btn   {
	/* add your css rule here */
}


 #events input.select_another_btn   {
	/* add your css rule here */
}


 #eventForm #start_date-block-container h3, #eventForm #timeline-container h3   {
	/* add your css rule here */
}


 #eventForm #save_button   {
	/* add your css rule here */
}


 div.ui-widget-content   {
	/* add your css rule here */
}


 div.ui-widget-header   {
	/* add your css rule here */
}


 #timeline-container table.timeline   {
	/* add your css rule here */
}


 .timeline td.not_worked_time   {
	/* add your css rule here */
}


 .timeline td.free_time   {
	/* add your css rule here */
}


 .timeline td.selected_time   {
	/* add your css rule here */
}


 .timeline td.reserved_time   {
	/* add your css rule here */
}


 div#loading   {
	/* add your css rule here */
}


 #start_date-block-container .zend_form dt, start_date-block-container .zend_form dt b, start_date-block-container .zend_form dd label   {
	/* add your css rule here */
}

/* =========================================================
   MEMBERSHIP ONLY — align cards + buttons (does NOT touch Hourly)
   
   ========================================================= */

/* Desktop: make membership cards equal height + pin button to bottom */
@media (min-width: 992px) {
  .sb-membership .sb-card,
  .sb-memberships .sb-card,
  .sb-subscription .sb-card,
  .sb-subscriptions .sb-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
  }

  /* Let the main content take space; button/footer sits at bottom */
  .sb-membership .sb-card__body,
  .sb-memberships .sb-card__body,
  .sb-subscription .sb-card__body,
  .sb-subscriptions .sb-card__body {
    flex: 1 1 auto !important;
  }

  .sb-membership .sb-btn,
  .sb-memberships .sb-btn,
  .sb-subscription .sb-btn,
  .sb-subscriptions .sb-btn {
    margin-top: auto !important;
  }

  /* If descriptions differ, this helps alignment without stretching everything */
  .sb-membership .txt.short.has-txt,
  .sb-memberships .txt.short.has-txt,
  .sb-subscription .txt.short.has-txt,
  .sb-subscriptions .txt.short.has-txt {
    min-height: 110px !important;
    height: auto !important;
  }
}

/* Mobile: NO equal-height (prevents the “stretched” look) */
@media (max-width: 991px) {
  .sb-membership .sb-card,
  .sb-memberships .sb-card,
  .sb-subscription .sb-card,
  .sb-subscriptions .sb-card {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .sb-membership .txt.short.has-txt,
  .sb-memberships .txt.short.has-txt,
  .sb-subscription .txt.short.has-txt,
  .sb-subscriptions .txt.short.has-txt {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
  }
}

/* =========================================================
   MEMBERSHIP ONLY — force equal card heights (no Hourly impact)
   Desktop + mobile safe
   ========================================================= */

@media (min-width: 992px) {

  /* Cover all membership wrappers SimplyBook uses */
  .sb-membership .sb-card,
  .sb-memberships .sb-card,
  .sb-subscription .sb-card,
  .sb-subscriptions .sb-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
  }

  /* Make the inner body stretch */
  .sb-membership .sb-card .sb-card__body,
  .sb-memberships .sb-card .sb-card__body,
  .sb-subscription .sb-card .sb-card__body,
  .sb-subscriptions .sb-card .sb-card__body,
  .sb-membership .sb-card .sb-service__body,
  .sb-memberships .sb-card .sb-service__body,
  .sb-subscription .sb-card .sb-service__body,
  .sb-subscriptions .sb-card .sb-service__body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
  }

  /* Normalize TITLE height (this is usually what causes the remaining unevenness) */
  .sb-membership .sb-card h3,
  .sb-memberships .sb-card h3,
  .sb-subscription .sb-card h3,
  .sb-subscriptions .sb-card h3 {
    min-height: 56px !important;
  }

  /* Normalize DESCRIPTION height (increase if still uneven) */
  .sb-membership .sb-card .txt,
  .sb-memberships .sb-card .txt,
  .sb-subscription .sb-card .txt,
  .sb-subscriptions .sb-card .txt {
    min-height: 130px !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
  }

  /* Keep Subscribe button pinned to bottom */
  .sb-membership .sb-btn,
  .sb-memberships .sb-btn,
  .sb-subscription .sb-btn,
  .sb-subscriptions .sb-btn,
  .sb-membership .sb-card button,
  .sb-memberships .sb-card button,
  .sb-subscription .sb-card button,
  .sb-subscriptions .sb-card button {
    margin-top: auto !important;
  }
}