/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */
:root {
    --gold: var( --e-global-color-d80f412 );
    --accent: #A8DADC;
    --text-dark: #333333;
    --bg-bright: var( --e-global-color-2419718 );
    --bg-light: var( --e-global-color-b2b21f7 );
    --shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    --shadow-hover: 0 10px 30px rgba(0, 0, 0, 0.1);
    --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
/* Menu */
.jet-mobile-menu.jet-mobile-menu-trigger-active .jet-nav-link-text{color: var( --e-global-color-2419718 ); text-transform: uppercase; }
.jet-mobile-menu.jet-mobile-menu-trigger-active .menu-item-link-top .jet-nav-arrow{color: var( --e-global-color-2419718 );}
.jet-mobile-menu .jet-nav__sub{background-color: var( --e-global-color-de436c4 );}
.jet-mobile-menu.jet-mobile-menu-trigger-active .jet-nav__sub{background-color: var( --e-global-color-07edbc3 );}

.glass_blur{
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.3);
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}
.check-list-small {
    list-style: none;
    margin: 10px 0;
}

.check-list-small li {
    margin-bottom: 8px;
    font-size: 0.95rem;
    display: flex;
    align-items: flex-start;
}

.check-list-small li::before {
    content: "•";
    color: var( --e-global-color-d80f412 );
    font-weight: bold;
    display: inline-block;
    width: 1em;
    margin-right: 10px;
}
/* Membership */
.membership {
    padding: 4rem 0;
}

.membership-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 30px;
}

.membership-card {
    padding: 3.6rem;
    border-radius: 12px;
    box-shadow: var(--shadow);
    transition: var(--transition);
    position: relative;
}

.membership-card:hover {
    transform: translateY(-10px);
}

.membership-card.primary {
    background-color: var( --e-global-color-2419718 );
    border-top: 5px solid var( --e-global-color-d80f412 );
}

.membership-card.accent {
    background-color: var(--e-global-color-de436c4);
    color: var( --e-global-color-2419718 );
}

.membership-card h3 {
    font-size: 1.8rem;
    margin-bottom: 10px;
}

.membership-card .price {
    font-size: 3rem;
    font-weight: 800;
    color: var( --e-global-color-d80f412 );
    margin-bottom: 30px;
}

.membership-card ul {
    list-style: none;
    margin-bottom: 40px;
}

.membership-card ul li {
    padding: 12px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
}

.membership-card.accent ul li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.membership-card ul li::before {
    content: "✓";
    margin-right: 15px;
    color: var( --e-global-color-d80f412 );
    font-weight: bold;
}
.membership-card .checkbox_green ul li::before {
  color: var( --e-global-color-d80f412 );
  background-color: var(--e-global-color-de436c4);
  padding: 4px;
  border-radius: 12px;
}
.membership-card .checkbox_green ul li{border:none; margin-bottom: 4px;}
.badge {
    display: inline-block;
    padding: 6px 16px;
    background: var( --e-global-color-d80f412 );
    color: var( --e-global-color-2419718 );
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 50px;
}
/* Program card */
.elementor-widget.program-card li {
    background: var( --e-global-color-2419718 );
    padding: 25px;
    margin-bottom: 20px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
    transition: var(--transition);
}

.elementor-widget.program-card li:hover {
    transform: translateX(10px);
    border-left: 4px solid var( --e-global-color-d80f412 );
}

.elementor-widget.program-card li.highlighted {
    background: var(--accent);
    color: var(--primary);
}

.elementor-widget.program-card li span {
  display: block;
  margin-bottom: 10px;
  font-size: 1.1rem;
}
.box_card .card_content{height: 100%;}
/* Venues */
.venues {
    padding: 100px 0;
    background: var( --e-global-color-2419718 );
}

.venue-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
    gap: 40px;
}

.venue-card {
    background: var( --e-global-color-2419718 );
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--shadow);
}
.venue-card:hover {
    box-shadow: var(--shadow-hover);
}
.venue-image {
    height: 300px;
    background: #eee;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    color: #999;
    border-bottom: 1px solid #ddd;
}

.venue-info {
    padding: 30px;
}

.venue-info h3 {
    font-size: 1.5rem;
    margin-bottom: 15px;
    color: var(--primary);
}

.venue-info p {
    margin-bottom: 20px;
    color: #666;
}
/* Coaching */
.coaching {
    padding: 100px 0;
    background: var( --e-global-color-2419718 );
}

.coaching-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 60px;
}

.program-column h3 {
    font-size: 1.8rem;
    margin-bottom: 30px;
    color: var(--primary);
    border-bottom: 3px solid var( --e-global-color-d80f412 );
    display: inline-block;
}

.program-card {
    background: var( --e-global-color-2419718 );
    padding: 25px;
    margin-bottom: 20px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
    transition: var(--transition);
}

.program-card:hover {
    transform: translateX(10px);
    border-left: 4px solid var( --e-global-color-d80f412 );
}

.program-card.highlighted {
    background: var(--accent);
    color: var(--primary);
}

.program-card h4 {
    margin-bottom: 10px;
    font-size: 1.1rem;
}
/* Product listing */
/* --container-max-width is 1190px */
.product_box_s1{
  --product-container-width: calc(var(--container-max-width) * 0.75); /* 75% of content width */
  --product-box-width: calc( min(75vw, var(--product-container-width)) / 3.2); /* 3 boxes per row */
  background: var( --e-global-color-2419718 );
  border-radius: 12px;
  box-shadow: var(--shadow);
}
.product_box_s1:hover{ box-shadow: var(--shadow-hover);}
.product_box_s1 .product_image{
  width: 100%;
  height: calc( var(--product-box-width) * 0.66 ); /* 3:2 aspect ratio */
}
/* Product page */
.woocommerce div.product div.images{margin-bottom: 0;}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{border-bottom: none;}
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel.panel{ margin-bottom: 0;}
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel.panel p{ margin-bottom: 1em;}
.woocommerce div.product form.cart .variations tr td{padding-bottom: 0.5em;}
.woocommerce div.product form.cart .single_variation_wrap .woocommerce-variation-price .price{display: inline-block;}
.woocommerce .products ul{margin-bottom: 0;}
.jet-woo-builder .related .product_content{ gap:0; }

.woocommerce-MyAccount-navigation ul{
  list-style-type: none;
}
/* Equal height for related products boxes */
.related.products ul.products {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch; /* Force all items to equal height */
    gap: 2.992em 3.8%; /* Row gap and column gap to match spacing */
    margin-bottom: 0;
}

/* Disable clearfix pseudo-elements that interfere with flexbox */
.related.products ul.products::before,
.related.products ul.products::after {
    display: none !important;
}

.related.products ul.products > li {
    display: flex;
    flex: 0 0 calc((100% - (3.8% * 3)) / 4); /* 4 columns with 3 gaps */
    margin: 0; /* Remove old float margins */
}

.related.products .product_box_s1 {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%; /* Stretch to full height of parent li */
}

/* Tablet: 3 columns */
@media (max-width: 992px) {
    .related.products ul.products > li {
        flex: 0 0 calc((100% - (3.8% * 2)) / 3); /* 3 columns with 2 gaps */
    }
}

/* Mobile: 1 column */
@media (max-width: 768px) {
    .related.products ul.products {
        gap: 2em 0; /* Reduce gap on mobile */
    }

    .related.products ul.products > li {
        flex: 0 0 100%; /* Full width - 1 column */
    }
}

.related.products .product_content {
    flex: 1; /* Allows content to grow and push button to bottom */
}

/* Responsive */
@media (max-width: 992px) {
    .membership-card {
        padding: 2.4rem;
    }
}
@media (max-width: 768px) {
  .membership-grid,
  .venue-grid {
      grid-template-columns: 1fr;
  }
  .product_box_s1{
    --product-box-width: calc( min(75vw, var(--product-container-width)) / 2); /* 2 boxes per row */
  }
}
@media (max-width: 480px) {
  .box_card .card_content{height: auto;}
  .product_box_s1{ --product-box-width:  100vw; /* 1 box per row */  }
}