/* CART PAGE ONLY */
.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-cart .wp-block-woocommerce-cart * {
  font-family: "Montserrat", sans-serif !important;
}

/* Main button */
.woocommerce-cart .wc-block-components-button,
.woocommerce-cart .wp-element-button,
.woocommerce-cart .wc-block-cart__submit-button {
  background: #CC1D1D !important;
  color: #ffffff !important;
  border-color: #CC1D1D !important;
  font-family: "Montserrat", sans-serif !important;
}

/* Button hover */
.woocommerce-cart .wc-block-components-button:hover,
.woocommerce-cart .wp-element-button:hover,
.woocommerce-cart .wc-block-cart__submit-button:hover {
  background: #CC1D1D !important;
  color: #ffffff !important;
  border-color: #CC1D1D !important;
}

/* Product name red */
.woocommerce-cart .wc-block-components-product-name {
  color: #CC1D1D !important;
  font-family: "Montserrat", sans-serif !important;
}

/* Product name hover */
.woocommerce-cart .wc-block-components-product-name:hover {
  color: #CC1D1D !important;
}

/* Cart totals heading and labels */
.woocommerce-cart .wc-block-cart__totals-title,
.woocommerce-cart .wc-block-components-totals-item__label,
.woocommerce-cart .wc-block-components-panel__button,
.woocommerce-cart .wc-block-components-product-details,
.woocommerce-cart .wc-block-components-product-price,
.woocommerce-cart .wc-block-formatted-money-amount,
.woocommerce-cart .wc-block-cart-item__remove-link,
.woocommerce-cart .wc-block-components-quantity-selector__input,
.woocommerce-cart .wc-block-components-quantity-selector__button {
  font-family: "Montserrat", sans-serif !important;
}

.woocommerce-cart .wc-block-components-quantity-selector__input {
  font-size: 16px !important;
  line-height: normal !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 0 !important;
  margin: 0 !important;
  text-align: center !important;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box !important;
  appearance: textfield;
  -moz-appearance: textfield;
}

.woocommerce-cart .wc-block-components-quantity-selector {
  height: 48px !important;
  min-height: 48px !important;
  align-items: stretch !important;
}

.woocommerce-cart .wc-block-components-quantity-selector__button {
  height: 48px !important;
  min-height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
/* Quantity + and - hover color */
.woocommerce-cart .wc-block-components-quantity-selector__button:hover {
  background-color: #CC1D1D !important;
  color: #ffffff !important;
  border-color: #CC1D1D !important;
}

/* Also apply when focused/active */
.woocommerce-cart .wc-block-components-quantity-selector__button:focus,
.woocommerce-cart .wc-block-components-quantity-selector__button:active {
  background-color: #CC1D1D !important;
  color: #ffffff !important;
  border-color: #CC1D1D !important;
}
/* Product name styling */
.woocommerce-cart .wc-block-components-product-name {
  font-size: 18px !important;
  font-weight: 600 !important;
}
/* Hide cart page title */
.woocommerce-cart .entry-title {
  display: none !important;
}
/* Push cart page content below fixed header */
.woocommerce-cart .site-main {
  padding-top: 160px !important;
}
/* Mobile cart page overflow fix */
@media (max-width: 767px) {
  .woocommerce-cart,
  .woocommerce-cart .site-main,
  .woocommerce-cart .entry-content,
  .woocommerce-cart .wp-block-woocommerce-cart,
  .woocommerce-cart .wc-block-cart {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  .woocommerce-cart .wp-block-woocommerce-cart {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  .woocommerce-cart .wc-block-components-sidebar-layout {
    display: block !important;
  }

  .woocommerce-cart .wc-block-cart__main,
  .woocommerce-cart .wc-block-cart__sidebar {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
}
/* =========================
   CHECKOUT PAGE STYLING
   ========================= */

/* Hide checkout page title */
.woocommerce-checkout h1.entry-title {
  display: none !important;
}

/* Montserrat everywhere on checkout */
.woocommerce-checkout .wp-block-woocommerce-checkout,
.woocommerce-checkout .wp-block-woocommerce-checkout *,
.woocommerce-checkout .wc-block-checkout,
.woocommerce-checkout .wc-block-checkout * {
  font-family: "Montserrat", sans-serif !important;
}

/* Push checkout content below fixed header */
.woocommerce-checkout .wp-block-woocommerce-checkout {
  margin-top: 80px !important;
}

/* Main buttons */
.woocommerce-checkout .wc-block-components-button,
.woocommerce-checkout .wp-element-button,
.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  background: #CC1D1D !important;
  color: #ffffff !important;
  border-color: #CC1D1D !important;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 700 !important;
}

/* Button hover/focus */
.woocommerce-checkout .wc-block-components-button:hover,
.woocommerce-checkout .wc-block-components-button:focus,
.woocommerce-checkout .wp-element-button:hover,
.woocommerce-checkout .wp-element-button:focus,
.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
.woocommerce-checkout .wc-block-components-checkout-place-order-button:focus {
  background: #CC1D1D !important;
  color: #ffffff !important;
  border-color: #CC1D1D !important;
}

/* Return to cart link */
.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button {
  color: #CC1D1D !important;
  font-family: "Montserrat", sans-serif !important;
}

/* Section headings */
.woocommerce-checkout .wc-block-components-checkout-step__title,
.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text,
.woocommerce-checkout .wc-block-components-totals-item__label,
.woocommerce-checkout .wc-block-components-product-name {
  font-family: "Montserrat", sans-serif !important;
}

/* Product name in summary */
.woocommerce-checkout .wc-block-components-product-name {
  color: #CC1D1D !important;
  font-size: 18px !important;
  font-weight: 600 !important;
}

/* Inputs and selects */
.woocommerce-checkout input,
.woocommerce-checkout select,
.woocommerce-checkout textarea {
  font-family: "Montserrat", sans-serif !important;
}

/* Checkbox labels and misc text */
.woocommerce-checkout .wc-block-components-checkbox__label,
.woocommerce-checkout .wc-block-components-text-input label,
.woocommerce-checkout .wc-blocks-components-select__label,
.woocommerce-checkout .wc-block-components-panel__button,
.woocommerce-checkout .wc-block-components-product-details,
.woocommerce-checkout .wc-block-formatted-money-amount {
  font-family: "Montserrat", sans-serif !important;
}

/* Mobile overflow fix */
@media (max-width: 767px) {
  .woocommerce-checkout,
  .woocommerce-checkout .site-main,
  .woocommerce-checkout .entry-content,
  .woocommerce-checkout .wp-block-woocommerce-checkout,
  .woocommerce-checkout .wc-block-checkout {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  .woocommerce-checkout .wp-block-woocommerce-checkout {
    padding-left: 20px !important;
    padding-right: 20px !important;
    margin-top: 160px !important;
  }

  .woocommerce-checkout .wc-block-components-sidebar-layout {
    display: block !important;
  }

  .woocommerce-checkout .wc-block-checkout__main,
  .woocommerce-checkout .wc-block-checkout__sidebar {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  .woocommerce-checkout,
  .woocommerce-checkout *:not(svg):not(path) {
    font-family: "Montserrat", sans-serif !important;
  }
}
@media (max-width: 767px) {
  .woocommerce-checkout .wc-block-checkout__sidebar {
    display: none !important;
  }
}
/* =========================
   FooEvents Calendar Styling
   Applies to ALL FooEvents calendars
   ========================= */

.fooevents_calendar,
.fooevents_calendar * {
  font-family: "Montserrat", sans-serif !important;
}

/* Toolbar layout */
.fooevents_calendar .fc-toolbar {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 18px !important;
  flex-wrap: wrap !important;
}

.fooevents_calendar .fc-left,
.fooevents_calendar .fc-right {
  float: none !important;
  display: flex !important;
  align-items: center !important;
  width: auto !important;
  margin: 0 !important;
}

.fooevents_calendar .fc-center {
  display: none !important;
}

/* Month title */
.fooevents_calendar .fc-toolbar h2 {
  color: #CC1D1D !important;
  font-weight: 700 !important;
  margin: 0 !important;
  line-height: 1.1 !important;
}

/* General toolbar buttons */
.fooevents_calendar .fc-button {
  background: #CC1D1D !important;
  border-color: #CC1D1D !important;
  color: #ffffff !important;
  text-shadow: none !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  border-radius: 4px !important;
}

/* Button hover */
.fooevents_calendar .fc-button:hover,
.fooevents_calendar .fc-button:focus,
.fooevents_calendar .fc-button:active {
  background: #a61616 !important;
  border-color: #a61616 !important;
  color: #ffffff !important;
}

/* Hide Today button */
.fooevents_calendar .fc-today-button {
  display: none !important;
}

/* Arrow button group */
.fooevents_calendar .fc-button-group {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  overflow: visible !important;
}

/* Arrow buttons */
.fooevents_calendar .fc-prev-button,
.fooevents_calendar .fc-next-button {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  padding: 0 !important;
  line-height: 1 !important;
}

/* Hide FullCalendar default arrow icons */
.fooevents_calendar .fc-prev-button .fc-icon,
.fooevents_calendar .fc-next-button .fc-icon {
  display: none !important;
}

/* Custom chevrons */
.fooevents_calendar .fc-prev-button::before,
.fooevents_calendar .fc-next-button::before {
  font-family: "Montserrat", sans-serif !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  line-height: 1 !important;
}

.fooevents_calendar .fc-prev-button::before {
  content: "‹";
}

.fooevents_calendar .fc-next-button::before {
  content: "›";
}

/* Day headers */
.fooevents_calendar .fc-day-header {
  font-weight: 600 !important;
  color: #000000 !important;
}

/* Calendar grid borders */
.fooevents_calendar .fc-widget-header,
.fooevents_calendar .fc-widget-content,
.fooevents_calendar td,
.fooevents_calendar th {
  border-color: #d9d9d9 !important;
}

/* Day numbers */
.fooevents_calendar .fc-day-number {
  font-weight: 500 !important;
  color: #000000 !important;
}

/* Today cell highlight */
.fooevents_calendar .fc-today {
  background: rgba(204, 29, 29, 0.08) !important;
}

/* Other month dates faded */
.fooevents_calendar .fc-other-month .fc-day-number {
  opacity: 0.35;
}

/* Allow event titles to wrap */
.fooevents_calendar .fc-day-grid-event .fc-content {
  white-space: normal !important;
}

.fooevents_calendar .fc-title {
  white-space: normal !important;
  word-break: break-word !important;
}

.fooevents_calendar .fc-day-grid-event {
  white-space: normal !important;
  line-height: 1.2 !important;
}

/* Mobile improvements */
@media (max-width: 768px) {
  .fooevents_calendar .fc-toolbar {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
  }

  .fooevents_calendar .fc-toolbar h2 {
    font-size: 20px !important;
  }

  .fooevents_calendar .fc-button {
    font-size: 14px !important;
  }

  .fooevents_calendar .fc-prev-button,
  .fooevents_calendar .fc-next-button {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
  }

  .fooevents_calendar .fc-prev-button::before,
  .fooevents_calendar .fc-next-button::before {
    font-size: 24px !important;
  }
}
.fooevents_calendar .fc-prev-button::before,
.fooevents_calendar .fc-next-button::before {
  transform: translateY(-2px);
}
.fooevents_calendar,
.fooevents_calendar .fc-view-container,
.fooevents_calendar .fc-view,
.fooevents_calendar table {
  width: 100% !important;
  max-width: 100% !important;
}
/* Only affect the calendar day rows, not the header row */
.fooevents_calendar .fc-day-grid .fc-row.fc-week {
  min-height: 140px !important;
}
/* Let mobile use natural height */
@media (max-width: 768px) {
  .fooevents_calendar .fc-day-grid .fc-row.fc-week {
    min-height: 0 !important;
  }
}

/* Ensure the grid expands properly */
.fooevents_calendar .fc-day-grid-container {
  height: auto !important;
}

/* Prevent table compression */
.fooevents_calendar table {
  table-layout: fixed !important;
}
/* Hide colored dot in list view */
.fooevents_calendar .fc-list-item-marker {
  display: none !important;
}
.fooevents_calendar .fc-day-grid-event {
    padding-left: 4px;
}

/* Push checkout page content below fixed header */
.woocommerce-checkout .site-main {
  padding-top: 160px !important;
}

/* Remove old checkout offset */
.woocommerce-checkout .wp-block-woocommerce-checkout {
  margin-top: 0 !important;
}

@media (max-width: 767px) {
  .woocommerce-checkout .wp-block-woocommerce-checkout {
    padding-left: 20px !important;
    padding-right: 20px !important;
    margin-top: 0 !important;
  }
}
/* Checkout payment method radio buttons overlapping text fix */
.woocommerce-checkout .wc-block-components-radio-control__option {
  position: relative !important;
  padding-left: 68px !important;
  min-height: 54px !important;
  display: flex !important;
  align-items: center !important;
}

.woocommerce-checkout .wc-block-components-radio-control__input {
  position: absolute !important;
  left: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
}

.woocommerce-checkout .wc-block-components-radio-control__label-group {
  width: 100% !important;
}

.woocommerce-checkout .wc-block-components-payment-method-label {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}
/* Hide WooPay express checkout globally */
.wcpay-express-checkout-wrapper {
  display: none !important;
}
