/*
Theme Name: Travel Baseball World Theme
Theme URI: https://onpurposeprojects.com
Author: On Purpose Projects - Luiz Gustavo Filgueiras & Carlos Tutiya
Author URI: https://onpurposeprojects.com
Description: Travel Baseball World Theme
Version: 1.3.4
Requires PHP: >7.0
License: GNU General Public License v2 or later
Text Domain: travel-baseball-world-theme
*/

/*--------------------------------------------------------------
# 0. ALPINE.JS UTILITIES
--------------------------------------------------------------*/
[x-cloak] {
  display: none !important;
}

/*--------------------------------------------------------------
# 1. FORM REQUIRED INDICATORS
--------------------------------------------------------------*/
label:has(+ input[required])::after,
label:has(+ select[required])::after,
label:has(+ textarea[required])::after,
label:has(+ div input[data-required="true"])::after {
  content: " *";
  color: #dc2626;
}

/*--------------------------------------------------------------
# 2. LOGO STYLES
--------------------------------------------------------------*/
.website__logo * {
  fill: var(--color-base-green);
}

.website__logo--mobile * {
  fill: white;
}

@media only screen and (max-width: 768px) {
  .website__logo {
    max-width: 250px;
    margin-right: 20px;
    display: flex;
  }
}

/*--------------------------------------------------------------
# 3. NAVIGATION - DESKTOP
--------------------------------------------------------------*/
/* 3.1 Menu Items - General */
header .menu-item {
  display: flex;
  /* flex: 1; */
  text-align: center;
  justify-content: center;
  align-items: center;
  height: 100%;
  position: relative;
  padding: 0px 1.75rem;
}

header #menu-main .menu-signin {
  display: none !important;
}

/* 3.2 Menu Links */
header .menu-item a {
  color: #222;
  text-decoration: none;
  font-size: var(--size--md);
  justify-content: center;
  align-items: center;
  font-weight: 700;
  line-height: 100%;
  text-decoration: none;
  display: flex;
  height: 100%;
  border-bottom: 2px solid transparent;
  transition: border-color 0.2s;
}

header .menu-item:hover>a {
  border-bottom: 2px solid var(--color-base-green);
}

/* 3.3 Submenu - Desktop */
.sub-menu {
  padding: 1.5rem;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 10;
  background-color: white;
  border-radius: 0.25rem;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2),
    0 2px 4px -1px rgba(0, 0, 0, 0.15);
  opacity: 0;
  transition-property: opacity;
  transition-duration: 300ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  width: 100%;
  min-width: 200px;
  margin-top: 10px;
  text-align: left;
  min-width: max-content;
  z-index: -1;
}

header .sub-menu::before {
  content: "";
  position: absolute;
  top: -10px;
  left: 20%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid white;
  z-index: 100;
}

header .sub-menu .menu-item {
  display: flex;
  flex: 1;
  text-align: left;
  justify-content: left;
  align-items: center;
  height: 100%;
  position: relative;
  padding: 0.25rem 0;
}

/*--------------------------------------------------------------
# 4. NAVIGATION - MOBILE
--------------------------------------------------------------*/
@media only screen and (max-width: 1024px) {
  #mobile-menu {
    background-color: var(--color-base-green);
    width: 100%;
    left: 100% !important;
    transition: all 0.3s ease-in-out !important;
    display: flex !important;
    opacity: 1 !important;
  }

  #mobile-menu.menu-open {
    left: 0% !important;
  }

  /* 4.1 Menu Items - Mobile */
  .menu-item {
    flex-flow: column;
    align-items: flex-start !important;
    width: 100%;
    padding: 0px !important;
  }

  .menu-item>a {
    width: 100%;
    justify-content: space-between !important;
    padding: 6px;
    color: white !important;
    font-size: var(--size--lg) !important;
  }

  /* 4.2 Accordion Menu Indicators */
  .menu-item-has-children>a::after {
    content: "\f107";
    /* Font Awesome down arrow */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5rem;
    transition: transform 0.3s ease;
    color: white;
  }

  .menu-item-has-children.submenu-open>a::after {
    transform: rotate(180deg);
  }

  /* 4.3 Submenu - Mobile Accordion */
  .sub-menu {
    padding: 0px !important;
    position: relative;
    top: unset;
    left: unset;
    width: 100%;
    background-color: transparent;
    border-radius: 0;
    box-shadow: none;
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    display: none;
    transition: max-height 0.3s ease-in-out, opacity 0.3s ease-in-out;
    z-index: 15 !important;
  }

  .menu-item-has-children.submenu-open .sub-menu {
    padding: 0.5rem 0 0.5rem 1rem;
    opacity: 1;
    display: block;
  }

  .sub-menu .menu-item {
    margin-left: 1rem;
  }

  .sub-menu .menu-item a {
    font-size: var(--size--lg);
    color: white;
  }

  #mobile-menu-close {
    color: white;
  }
}

@media only screen and (min-width: 1024px) {
  .sub-menu .menu-item a:hover {
    color: var(--color-base-green) !important;
    text-decoration: none !important;
  }

  .sub-menu {
    min-width: 200px;
    display: none !important;
    flex-direction: column;
    gap: 0.6rem;
    padding: var(--size--base) !important;
    border: 1px solid var(--color--neutral--gray-200) !important;
    border-radius: var(--size--xs) !important;
    box-shadow: 0 0 #0000, 0 0 #00000003, 0 0 #00000004,
      0.1px 0.2px 0.1px #00000005, 0.4px 0.4px 0.2px #00000005,
      23.2px 27.9px 15.6px #00000007, 35.8px 43.1px 24px #00000007,
      100.5px 121px 67.4px #00000008 !important;
  }

  .current-menu-item>a {
    color: var(--color-base-green) !important;
    border-bottom: 2px solid var(--color-base-green) !important;
  }

  .menu-item.active .sub-menu {
    opacity: 1;
    z-index: 1;
    display: flex !important;
  }
}

.fa-solid.fa-spinner {
  animation: spinner-rotate 1s linear infinite;
}

@keyframes spinner-rotate {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

/* HEADING LOGO */

.heading-logo-letter {
  position: relative;
}

.heading-logo-letter::after {
  content: "";
  position: absolute;
  top: 55%;
  left: 50%;
  width: 3.938rem;
  height: 3.938rem;
  background-color: var(--color--neutral--gray-50);
  border-radius: 4px;
  transform: translate(-50%, -50%) rotate(45deg);
}

@media only screen and (min-width: 768px) and (max-width: 1280px) {
  .heading-logo-letter::after {
    width: 1.5rem;
    height: 1.5rem;
  }
}

@media only screen and (max-width: 768px) {
  .heading-logo-letter::after {
    width: 24px;
    height: 24px;
  }
}

/* GENERAL SEARCH FORM */

#searchform {
  display: flex;
  align-items: center;
  justify-content: center;
}

.search-form-container {
  position: relative;
}

#searchform>div {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

#searchsubmit {
  padding: 24px;
  background-color: transparent;
  color: var(--color-base-green);
  border: none;
  border: 1px solid transparent;
  font-size: 16px;
  cursor: pointer;
  margin-left: 0px;
  position: absolute;
  top: 0;
  right: 0;
  transition: 0.2s all ease-in-out;
}

#searchform input[type="text"] {
  padding: 24px;
  border: 1px solid #ccc;
  border-radius: 8px;
  font-size: 16px;
  width: 100%;
  background-color: var(--color--neutral--gray-50);
  transition: 0.2s all ease-in-out;
}

#searchform input[type="text"]:active,
#searchform input[type="text"]:focus {
  background-color: white;
  outline: none;
  border: 1px solid var(--color-base-green);
}

#searchform input[type="text"]:hover {
  border: 1px solid var(--color-base-green);
}

body div.container .woocommerce-Button,
body div.container .woocommerce-button,
.woocommerce a.button.wc-forward {
  background-color: var(--color-base-green);
  color: white;
  transition: 0.2s all ease-in-out;
}

body div.container .woocommerce-Button:hover,
body div.container .woocommerce-button:hover,
.woocommerce a.button.wc-forward:hover {
  color: white;
  background-color: var(--color-base-green--dark);
}

/* Woocommerce */
.woocommerce-info {
  border-top-color: var(--color-base-green);
}

.woocommerce-info::before {
  color: var(--color-base-green);
}

@media only screen and (max-width: 1024px) {
  header #mobile-menu .menu-item .sub-menu a {
    color: white !important;
  }
}

.about__content * {
  line-height: 1.2;
}

.about__content h6 {
  font-size: var(--size--lg);
  font-family: var(--font-playfair);
  font-weight: 500;
  line-height: 110%;
  margin-top: var(--size--base);
  margin-bottom: var(--size--base);
}

.about__content p:not(:last-child) {
  margin-bottom: 1rem;
}

@media only screen and (max-width: 1024px) {
  .custom-pagination {
    width: 100vw !important;
    overflow: scroll !important;
    padding-left: 90px !important;
  }
}

.variations_form.cart {
  display: flex !important;
  width: 100% !important;
  gap: 4rem;
}

.variations td label {
  font-weight: bold;
}

.variations td,
.variations tr {
  display: flex !important;
  gap: 2rem;
  align-items: center !important;
}

.reset_variations {
  padding: 1rem 4rem;
  line-height: 1;
  font-size: var(--size--md);
  border: 1px solid var(--color-base-green);
  color: var(--color-base-green);
  background-color: white;
  transition: 0.2s all ease-in-out;
  text-align: center;
}

table.variations {
  display: flex;
  justify-content: center;
  align-items: center;
}

.single_variation_wrap,
.woocommerce-variation-add-to-cart {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2rem;
}

.single_add_to_cart_button.button {
  padding: 1rem 4rem !important;
  line-height: 1 !important;
  font-size: var(--size--md) !important;
  border: 1px solid var(--color-base-green) !important;
  color: white !important;
  background-color: var(--color-base-green) !important;
  transition: 0.2s all ease-in-out !important;
  border-radius: 4px;
}

.wp-block-woocommerce-cart,
.wc-block-checkout {
  margin: auto !important;
  max-width: 1440px !important;
  padding: 0rem 2rem !important;
  width: 100% !important;
}

.equipment_card-corner {
  color: rgb(255, 255, 255);
  color: white;
  width: 7rem;
  height: 7rem;
  position: absolute;
  inset: -1px -1px auto auto;
  transition: 0.2s all ease;
}

.card--item:hover .equipment_card-corner {
  color: rgb(0, 0, 0) !important;
}

.card--item:hover button {
  color: white;
}

.wp-block-woocommerce-cart {
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}

h2.wp-block-heading.has-text-align-center {
  font-size: var(--size--xl) !important;
  font-family: var(--font-playfair) !important;
  font-weight: 500 !important;
  line-height: 110% !important;
  margin-top: var(--size--base) !important;
  margin-bottom: var(--size--base) !important;
}

.limited-subscription-notice.notice {
  color: var(--color-gray-600);
  font-size: var(--size--sm);
  padding: 6px;
  text-align: left;
  background-color: white;
  border: 1px solid rgb(0, 0, 0, 0.2);
  justify-items: center;
  display: flex;
  align-items: center;
  position: fixed;
  right: 2rem;
  top: 8rem;
  height: fit-content;
}

@media only screen and (max-width: 1024px) {
  .variations_form.cart {
    flex-flow: column;
    justify-content: center;
    justify-items: center;
    align-items: center;
    gap: 1rem;
    padding: 1rem 0px;
  }

  .single_variation_wrap {
    width: 100% !important;
    justify-content: space-between !important;
  }

  #video-block- img,
  #video-block- img {
    height: inherit !important;
  }

  .reset_variations {
    display: none !important;
  }
}

form.cart {
  display: flex !important;
  width: 100% !important;
  gap: 4rem;
  align-items: center;
}

/*  */
@media (max-width: 1670px) {
  /* Wordmark tiny */
  .website__logo svg {
    max-width: 140px !important;
  }
  
  /* Nav items way closer */
  header nav.hidden.lg\:\!flex a {
    padding-left: 0.25rem !important;
    padding-right: 0.25rem !important;
  }
	header .menu-item{
		padding: 10px !important;
	}
}



@media (max-width: 1250px) {
  /* Smaller text, tighter spacing */
  header nav.hidden.lg\:\!flex a {
    padding-left: 0.1rem !important;
    padding-right: 0.1rem !important;
    font-size: 0.8rem !important;
  }
	header .menu-item{
		padding: 10px !important;
	}
  
  /* Shrink logo icon too */
  .website__logo img {
    height: 28px !important;
  }
}

/* Header account avatar */
.header-avatar,
.header-avatar-placeholder {
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--color-base-green);
  border-radius: 9999px;
  flex-shrink: 0;
}

.header-avatar {
  object-fit: cover;
  display: block;
}

.header-avatar-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #d1d5db;
}

.header-avatar--mobile {
  border-color: #000;
  background-color: #fff;
}

.header-avatar-placeholder--mobile {
  border-color: #000;
}