/*
Theme Name: UTM Theme
Theme URI: https://utm.ro
Description: Child theme for Universitatea Titu Maiorescu based on Estudiar
Author: UTM
Author URI: https://utm.ro
Template: estudiar
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: utm-theme
*/

/*
 * UTM Brand Colors
 * Primary: #250e62 (Deep Purple)
 */

:root {
  --utm-primary: #250e62;
  /* Main brand color - deep purple */
  --utm-primary-light: #3a1a8c;
  --utm-primary-dark: #1a0a47;
  --utm-accent: #CDD4FB;
  /* Complementary accent */
  --utm-text: #292929;
  --utm-white: #ffffff;

  /* Override Estudiar theme variables with UTM brand colors */
  --vamtam-accent-color-5: #f5f0eb;
  /* light warm background for product cards */
  --vamtam-body-link-hover: var(--utm-primary);
}

/* Apply UTM primary color to key elements */
.site-title a,
.main-navigation a:hover,
.button,
.btn-primary {
  color: var(--utm-primary);
}

.button-primary,
.btn-primary {
  background-color: var(--utm-primary);
  border-color: var(--utm-primary);
}

.button-primary:hover,
.btn-primary:hover {
  background-color: var(--utm-primary-dark);
  border-color: var(--utm-primary-dark);
}

/* Links */
a {
  color: var(--utm-primary);
}

a:hover {
  color: var(--utm-primary-dark);
}

/* Fixed header — stays at top on scroll */
.elementor-location-header {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

/* Prevent info bar from hiding on scroll (parent theme vamtam sticky) */
.elementor-location-header .vamtam-sticky-header--fixed-hidden {
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  margin-bottom: 0 !important;
}

/* Ascunde sagetile dezactivate din Elementor carousel/loop */
.elementor-swiper-button.swiper-button-disabled,
.elementor-swiper-button.swiper-button-lock {
  display: none !important;
}



:root {
  --utm-header-h: 85px;
  /* inaltimea totala a headerului (info bar + header) */
}

@media (min-width: 1025px) {

  /* ascunde implicit dropdown-ul doar pentru mega-full */
  .elementor-location-header .elementor-nav-menu .mega-full>.sub-menu {
    /* GARANTAT full width (viewport) - chiar si cand e ascuns */
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: 100vw !important;
    max-width: 100vw !important;
    top: var(--utm-header-h) !important;

    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: min-content;
    gap: 40px 60px;
    align-items: start;

    margin: 0 auto !important;
    padding: 40px max(20px, calc((100vw - 1250px) / 2)) 60px !important;
    box-sizing: border-box !important;

    max-height: calc(100vh - var(--utm-header-h)) !important;
    overflow-y: auto !important;
    scrollbar-width: auto !important;
    scrollbar-color: var(--utm-primary, #250e62) transparent !important;

    background: #ffffff !important;
    box-shadow: 0 14px 40px rgba(0, 0, 0, .12) !important;
    border: 0 !important;
    border-bottom: 3px solid #CDD4FB !important;

    z-index: 999999 !important;

    /* animatie - incepe de sub header */
    opacity: 0;
    clip-path: inset(0 0 100% 0);
    transition: opacity 0.3s ease, clip-path 0.3s ease, visibility 0s 0.3s;
    pointer-events: none;
    visibility: hidden;
  }

  /* Scrollbar styling — WebKit (Chrome, Safari, Edge) */
  .elementor-location-header .elementor-nav-menu .mega-full>.sub-menu::-webkit-scrollbar {
    width: 14px;
  }
  .elementor-location-header .elementor-nav-menu .mega-full>.sub-menu::-webkit-scrollbar-track {
    background: transparent;
  }
  .elementor-location-header .elementor-nav-menu .mega-full>.sub-menu::-webkit-scrollbar-thumb {
    background-color: var(--utm-primary, #250e62);
    border-radius: 4px;
  }
  .elementor-location-header .elementor-nav-menu .mega-full>.sub-menu::-webkit-scrollbar-thumb:hover {
    background-color: var(--utm-primary-light, #3a1a8c);
  }

  /* arata la hover / focus, si ramane cand hover e pe panel */
  .elementor-location-header .elementor-nav-menu .mega-full:hover>.sub-menu,
  .elementor-location-header .elementor-nav-menu .mega-full:focus-within>.sub-menu {
    opacity: 1 !important;
    clip-path: inset(0 0 0 0) !important;
    pointer-events: auto !important;
    visibility: visible !important;
    transition: opacity 0.3s ease, clip-path 0.3s ease, visibility 0s 0s !important;
  }

  /* coloreaza butonul cu culoarea popup-ului */
  .elementor-location-header .elementor-nav-menu>li.mega-full:hover>a,
  .elementor-location-header .elementor-nav-menu>li.mega-full:focus-within>a,
  /* top-level parent colored when on a child/descendant page */
  .elementor-location-header .elementor-nav-menu>li.mega-full.current-menu-ancestor>a,
  .elementor-location-header .elementor-nav-menu>li.mega-full.current-menu-parent>a,
  .elementor-location-header .elementor-nav-menu>li.mega-full.current_page_ancestor>a {
    background-color: #CDD4FB !important;
    background-image: none !important;
    position: relative !important;
    z-index: 100000 !important;
  }

  /* Prevent Elementor pointer-background flash on mega-full items */
  .elementor-location-header .elementor-nav-menu>li.mega-full,
  .elementor-location-header .elementor-nav-menu>li.mega-full:hover {
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
  }

  /* Disable Elementor e--pointer-background ::before on mega-full links (the flickering box) */
  .elementor-location-header .elementor-nav-menu>li.mega-full>a::before,
  .elementor-location-header .e--pointer-background .elementor-nav-menu>li.mega-full>a::before {
    display: none !important;
    content: none !important;
  }

  /* Keep ::after as invisible hover bridge (but override Elementor's pointer styling on it) */
  .elementor-location-header .e--pointer-background .elementor-nav-menu>li.mega-full>a::after {
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    box-shadow: none !important;
  }

  /* layer transparent sub buton pentru continuitate hover */
  .elementor-location-header .elementor-nav-menu>li.mega-full:hover>a::after,
  .elementor-location-header .elementor-nav-menu>li.mega-full:focus-within>a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 20px;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    opacity: 0 !important;
    pointer-events: auto;
  }

  /* overlay transparent peste header pentru a mentine hover */
  .elementor-location-header .elementor-nav-menu .mega-full>.sub-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: var(--utm-header-h);
    background: transparent;
    pointer-events: auto;
  }

  /* nivel 2 = coloana */
  .elementor-location-header .elementor-nav-menu .mega-full:hover>.sub-menu>li,
  .elementor-location-header .elementor-nav-menu .mega-full:focus-within>.sub-menu>li {
    position: static !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
  }

  /* nivel 3 sub titlu (nu flyout) */
  .elementor-location-header .elementor-nav-menu .mega-full:hover>.sub-menu>li>.sub-menu,
  .elementor-location-header .elementor-nav-menu .mega-full:focus-within>.sub-menu>li>.sub-menu {
    position: static !important;
    display: block !important;
    width: auto !important;

    margin: 10px 0 0 0 !important;
    padding: 0 !important;

    box-shadow: none !important;
    background: transparent !important;
  }

  /* elimina background de pe itemii listei */
  .elementor-location-header .elementor-nav-menu .mega-full:hover>.sub-menu>li>.sub-menu>li,
  .elementor-location-header .elementor-nav-menu .mega-full:focus-within>.sub-menu>li>.sub-menu>li {
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
  }

  /* titlu coloana */
  .elementor-location-header .elementor-nav-menu .mega-full:hover>.sub-menu>li>a,
  .elementor-location-header .elementor-nav-menu .mega-full:focus-within>.sub-menu>li>a {
    font-weight: 700 !important;
    font-size: 20px !important;
    padding: 0 0 20px 0 !important;
    margin-bottom: 10px !important;
    white-space: normal !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    line-height: 1.3 !important;
    color: #292929 !important;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
  }

  /* titlu coloana nivel 2 active/selected - doar culoare diferita */
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu>li.current-menu-item>a,
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu>li.current_page_item>a,
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu>li.current-menu-ancestor>a,
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu>li.current-menu-parent>a,
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu>li>a.elementor-item-active,
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu>li>a.highlighted {
    color: #250e62 !important;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
  }

  /* titlu coloana nivel 2 hover - doar pentru linkuri clickabile (nu #) */
  .elementor-location-header .elementor-nav-menu .mega-full:hover>.sub-menu>li>a:not([href="#"]):hover,
  .elementor-location-header .elementor-nav-menu .mega-full:focus-within>.sub-menu>li>a:not([href="#"]):hover {
    color: #CDD4FB !important;
  }

  /* linkuri cu # nu sunt clickable */
  .elementor-location-header .elementor-nav-menu a[href="#"] {
    pointer-events: none !important;
    cursor: default !important;
  }

  /* linkuri nivel 3 */
  .elementor-location-header .elementor-nav-menu .mega-full:hover>.sub-menu>li>.sub-menu>li>a,
  .elementor-location-header .elementor-nav-menu .mega-full:focus-within>.sub-menu>li>.sub-menu>li>a {
    display: block;
    padding: 6px 0 !important;
    font-size: 16px !important;
    color: #292929 !important;
    line-height: 1.6 !important;
    transition: color 0.2s ease !important;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    white-space: normal !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* linkuri nivel 3 la hover */
  .elementor-location-header .elementor-nav-menu .mega-full:hover>.sub-menu>li>.sub-menu>li>a:hover,
  .elementor-location-header .elementor-nav-menu .mega-full:focus-within>.sub-menu>li>.sub-menu>li>a:hover {
    color: #CDD4FB !important;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
  }

  /* linkuri nivel 3 active/selected - doar culoare mov */
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu>li>.sub-menu>li.current-menu-item>a,
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu>li>.sub-menu>li.current_page_item>a,
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu>li>.sub-menu>li>a.elementor-item-active,
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu>li>.sub-menu>li>a.highlighted {
    color: #250e62 !important;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
  }

  /* elimina background si pseudo-elements la hover pentru toate linkurile din mega menu */
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu a::before,
  .elementor-location-header .elementor-nav-menu .mega-full .sub-menu a::after {
    display: none !important;
  }

  /* suprascriere stil Elementor dropdown hover background - FORTAT GALBEN */
  .elementor-location-header .elementor-nav-menu--dropdown .mega-full .sub-menu a:hover,
  .elementor-location-header .elementor-nav-menu--dropdown .mega-full .sub-menu a:focus,
  .elementor-location-header .elementor-nav-menu--dropdown .mega-full .sub-menu a.elementor-item-active,
  .elementor-location-header .elementor-nav-menu--dropdown .mega-full .sub-menu a.highlighted,
  .elementor-location-header .mega-full .sub-menu a:hover,
  .elementor-location-header .mega-full .sub-menu a:focus,
  .elementor-location-header .mega-full .sub-menu .elementor-item:hover,
  .elementor-location-header .mega-full .sub-menu .elementor-sub-item:hover {
    background-color: transparent !important;
    background: none !important;
    background-image: none !important;
    color: #CDD4FB !important;
  }

  /* responsive */
  @media (max-width: 1200px) {
    .elementor-location-header .elementor-nav-menu .mega-full>.sub-menu {
      grid-template-columns: repeat(2, 1fr);
      padding: 30px 40px !important;
      gap: 30px 40px;
    }
  }

  @media (max-width: 768px) {
    .elementor-location-header .elementor-nav-menu .mega-full>.sub-menu {
      grid-template-columns: 1fr;
      padding: 20px 30px !important;
      gap: 20px;
    }
  }
}





/* Container buton — full width, flex, cele două butoane împart spațiul egal
   Scoped la cardul de produs via CSS ID #product-card-com */
#product-card-com .elementor-button-wrapper {
  display: flex !important;
  width: 100% !important;
}

#product-card-com .elementor-button-wrapper>a {
  flex: 1 !important;
  width: 50% !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

#product-card-com .elementor-button-wrapper>a+a {
  margin-left: 8px !important;
}

#product-card-com .elementor-button-wrapper>a.add_to_cart_button,
#product-card-com .elementor-button-wrapper>a.elementor-button {
  justify-content: center !important;
  text-align: center !important;
}

/* "Vezi Coșul" — stilizat identic cu butonul "Adaugă în Coș" din Loop Item, dar negru */
a.added_to_cart.wc-forward {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: #1a1a1a !important;
  color: #ffffff !important;
  fill: #ffffff !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 13px 13px !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.7px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  line-height: 2.1em !important;
  transition: background-color 0.2s ease !important;
  white-space: nowrap !important;
}

a.added_to_cart.wc-forward:hover {
  background-color: #333333 !important;
  color: #ffffff !important;
}

/* Dezactivează link-ul de pe imaginea/titlul produsului în pagina de coș */
/* Cart clasic */
.woocommerce-cart .woocommerce-cart-form .product-thumbnail a,
.woocommerce-cart .woocommerce-cart-form .product-name a,
/* Cart block */
.wc-block-cart-item__image a,
.wc-block-components-product-name {
  pointer-events: none !important;
  cursor: default !important;
  text-decoration: none !important;
  color: inherit !important;
}

/* Hide VamTam sub-header (page title bar) on WooCommerce archive pages
   when Elementor Pro handles the layout */
body.utm-no-subheader #sub-header {
  display: none !important;
}

/* Ascunde checkout breadcrumb stepper */
.checkout-breadcrumb {
  display: none !important;
}

/* Ascunde sageata expand din select-urile WooCommerce blocks */
.wc-blocks-components-select__expand {
  display: none !important;
}

/* Nume produs în order summary — forțează 15px */
.wc-block-components-order-summary-item .wc-block-components-product-name {
  font-size: 15px !important;
}

/* Block cart — elimină border-uri duble */
.wc-block-cart-items thead tr,
.wc-block-cart-items thead th,
.wc-block-cart-items tbody tr,
.wc-block-cart-items tbody td,
.wc-block-cart-items tfoot tr,
.wc-block-cart-items tfoot td {
  border-top: none !important;
}

/* Buton "Continuă cu finalizarea comenzii" — outlined blue */
.wc-block-cart__submit-container .wc-block-cart__submit-button {
  background-color: transparent !important;
  background-image: none !important;
  color: #250e62 !important;
  border: 2px solid #250e62 !important;
  box-shadow: none !important;
}

.wc-block-cart__submit-container .wc-block-cart__submit-button:hover,
.wc-block-cart__submit-container .wc-block-cart__submit-button:focus {
  background-color: #250e62 !important;
  color: #ffffff !important;
}

/* Ascunde starea de coș gol (redirect se face în background) */
.wc-block-cart--is-loading,
.wp-block-woocommerce-cart-empty-block,
.wp-block-woocommerce-empty-cart-block,
.wc-block-checkout-empty {
  display: none !important;
}

/* =============================================================
   FLOATING CART BUTTON
   ============================================================= */

.utm-floating-cart {
  position: fixed;
  bottom: 32px;
  right: 32px;
  z-index: 99999;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 56px;
  height: 56px;
  border-radius: 50%;

  background-color: #fff;
  color: #250e62;
  border: 3px solid #250e62;
  text-decoration: none;
  box-shadow: 0 4px 20px rgba(37, 14, 98, 0.18);

  transition: background-color .2s ease, color .2s ease, border-color .2s ease,
    transform .2s ease, box-shadow .2s ease,
    opacity .3s ease, visibility .3s ease;

  opacity: 1;
  visibility: visible;
  transform: scale(1);
}

/* Hidden when cart is empty */
.utm-floating-cart.utm-cart-hidden {
  opacity: 0;
  visibility: hidden;
  transform: scale(0.7);
  pointer-events: none;
}

.utm-floating-cart:hover {
  background-color: #250e62;
  color: #fff;
  border-color: #250e62;
  transform: scale(1.08);
  box-shadow: 0 6px 28px rgba(37, 14, 98, 0.32);
}

.utm-floating-cart:hover svg {
  stroke: #fff !important;
  color: #fff !important;
}

/* Cart icon */
.utm-floating-cart svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

/* Count badge */
.utm-floating-cart__count {
  position: absolute;
  top: -6px;
  right: -6px;

  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 10px;

  background-color: #250e62;
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  line-height: 20px;
  text-align: center;
  white-space: nowrap;
  border: 1px solid #fff;

  animation: utm-badge-pop .25s ease;
}

.utm-floating-cart:hover .utm-floating-cart__count {
  background-color: #fff;
  color: #250e62;
  border-color: #250e62;
}

@keyframes utm-badge-pop {
  0% {
    transform: scale(0.6);
  }

  60% {
    transform: scale(1.2);
  }

  100% {
    transform: scale(1);
  }
}

/* Responsive */
@media (max-width: 600px) {
  .utm-floating-cart {
    bottom: 20px;
    right: 20px;
    width: 50px;
    height: 50px;
  }

  .utm-floating-cart svg {
    width: 20px;
    height: 20px;
  }
}

/* =============================================================
   LANGUAGE-CONDITIONAL ELEMENTS
   Show/hide Elementor sections based on TranslatePress language
   Usage: add CSS class "utm-show-ro" or "utm-show-en" in Elementor
   ============================================================= */

/* Hide EN content on RO pages, hide RO content on EN pages */
body.translatepress-en_US .utm-show-ro,
body.translatepress-en_US .utm-show-ro.elementor-element {
  display: none !important;
}

body.translatepress-ro_RO .utm-show-en,
body.translatepress-ro_RO .utm-show-en.elementor-element {
  display: none !important;
}

/* =============================================================
   FOOTER LANGUAGE SWITCHER
   ============================================================= */

.utm-footer-lang {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  line-height: 1 !important;
}

.utm-footer-lang a {
  color: rgba(255,255,255,.4) !important;
  text-decoration: none !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  transition: color .2s ease !important;
}

.utm-footer-lang a:hover {
  color: #fff !important;
}

.utm-footer-lang a.utm-lang-active {
  color: rgba(255,255,255,1) !important;
  font-weight: 700 !important;
}

.utm-footer-lang__sep {
  color: rgba(255,255,255,.2) !important;
  font-size: 11px !important;
}

.utm-footer-lang__label {
  color: rgba(255,255,255,.75) !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  margin-right: 2px !important;
}

/* =============================================================
   ADD TO CART TOAST NOTIFICATION
   ============================================================= */

.utm-toast {
  position: fixed;
  bottom: 100px;
  right: 32px;
  z-index: 999999;
  background-color: var(--utm-primary, #250e62);
  color: #fff;
  padding: 14px 24px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  box-shadow: 0 6px 24px rgba(37, 14, 98, 0.25);
  transform: translateY(20px);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  pointer-events: none;
}

.utm-toast--visible {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

@media (max-width: 600px) {
  .utm-toast {
    right: 16px;
    bottom: 80px;
    left: 16px;
    text-align: center;
  }
}

/* Elementor Toggle Title - Support for h3 heading */
h3.elementor-tab-title .elementor-toggle-title {
  font-family: var(--e-global-typography-vamtam_h3-font-family), Sans-serif !important;
  font-size: var(--e-global-typography-vamtam_h3-font-size) !important;
  font-weight: var(--e-global-typography-vamtam_h3-font-weight) !important;
  line-height: var(--e-global-typography-vamtam_h3-line-height) !important;
}

/* Forțează textul butoanelor să nu se rupă pe mai multe linii */
.elementor-button-text {
  text-align: left;
}

.elementor-kit-4 .utm-topbar a {
  font-size: 12px !important;
  line-height: 1 !important;
}

/* Fix heading links to inherit heading typography instead of link styles */
.elementor-kit-4 h1 a,
.elementor-kit-4 h2 a,
.elementor-kit-4 h3 a,
.elementor-kit-4 h4 a,
.elementor-kit-4 h5 a,
.elementor-kit-4 h6 a {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

.elementor-testimonial__footer {
  display: none !important;
}

.emerit-content {
  text-align: justify !important;
}

.elementor-tab-content {
  text-align: justify !important;
}

/* Justify text in Elementor text editor widgets */
.elementor-widget-text-editor {
  text-align: justify !important;
}

/* =============================================================
   CUSTOM IN-PAGE NAVIGATION MENU
   ============================================================= */

.custom-inpage-menu {
  background-color: #CDD4FB;
  border: none !important;
  padding: 30px;
  margin: 0;
}

/* Menu list container */
.custom-inpage-menu ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 12px;
}

/* Menu items */
.custom-inpage-menu li {
  margin: 0;
  padding: 0;
}

/* Menu links */
.custom-inpage-menu a {
  display: inline-block;
  padding: 8px 0;
  color: #292929 !important;
  text-decoration: none;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.4;
  transition: border-bottom 0.2s ease;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  white-space: nowrap;
}

/* Hover state */
.custom-inpage-menu a:hover {
  color: #292929 !important;
  border-bottom: 2px solid #292929 !important;
}

/* Active/current menu item */
.custom-inpage-menu .current-menu-item>a,
.custom-inpage-menu .current_page_item>a {
  color: #292929 !important;
  font-weight: 600;
  border-bottom: 2px solid #292929 !important;
}

/* Responsive - tablet */
@media (max-width: 1024px) {
  .custom-inpage-menu {
    padding: 25px 20px;
  }

  .custom-inpage-menu ul {
    gap: 12px;
  }

  .custom-inpage-menu a {
    font-size: 16px;
  }
}

/* Responsive - mobile */
@media (max-width: 768px) {
  .custom-inpage-menu {
    padding: 20px 15px;
  }

  .custom-inpage-menu ul {
    gap: 10px 15px;
    justify-content: flex-start;
  }

  .custom-inpage-menu a {
    font-size: 15px;
    padding: 6px 0;
  }
}

/* Fix body scroll lock when mobile nav is open */
@media (max-width: 1024px) {

  body.elementor-device-mobile.elementor-mobile-menu-active,
  body.elementor-mobile-menu-active {
    overflow: auto !important;
    position: static !important;
  }

  body.elementor-device-mobile.elementor-mobile-menu-active .custom-inpage-menu,
  body.elementor-mobile-menu-active .custom-inpage-menu {
    position: relative !important;
    overflow: visible !important;
  }

  /* Mobile nav dropdown scrollable */
  .elementor-nav-menu--dropdown,
  .elementor-nav-menu__container {
    max-height: 80vh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
}

/* =============================================================
   LIGHTBOX CLOSE BUTTON VISIBILITY FIX
   ============================================================= */

/* Ensure lightbox close button appears above header */
.dialog-lightbox-widget .dialog-close-button {
  z-index: 999999 !important;
  position: fixed !important;
}

.dialog-widget.dialog-lightbox-widget {
  z-index: 999998 !important;
}

/* Elementor lightbox close button */
.elementor-lightbox .dialog-close-button {
  z-index: 999999 !important;
  position: fixed !important;
}

/* Make lightbox navigation buttons more visible */
.elementor-slideshow__header .elementor-lightbox-prevent-close,
.elementor-slideshow__header .eicon-share-arrow,
.elementor-slideshow__header .eicon-zoom-in-bold,
.elementor-slideshow__header .eicon-frame-expand,
.elementor-slideshow__header .eicon-close {
  color: #250e62 !important;
  background-color: rgba(255, 255, 255, 0.95) !important;
  border-radius: 4px !important;
  padding: 8px !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
}

.elementor-slideshow__header .elementor-lightbox-prevent-close:hover,
.elementor-slideshow__header .eicon-share-arrow:hover,
.elementor-slideshow__header .eicon-zoom-in-bold:hover,
.elementor-slideshow__header .eicon-frame-expand:hover,
.elementor-slideshow__header .eicon-close:hover {
  background-color: #250e62 !important;
  color: #ffffff !important;
}

/* Lightbox swiper prev/next arrows */
.elementor-lightbox .elementor-swiper-button .eicon-chevron-right,
.elementor-lightbox .elementor-swiper-button .eicon-chevron-left {
  color: #250e62 !important;
  background-color: rgba(255, 255, 255, 0.95) !important;
  border-radius: 4px !important;
  padding: 8px !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
}

.elementor-lightbox .elementor-swiper-button:hover .eicon-chevron-right,
.elementor-lightbox .elementor-swiper-button:hover .eicon-chevron-left {
  background-color: #250e62 !important;
  color: #ffffff !important;
}

/* Slideshow counter text */
/* =============================================================
   SINGLE PRODUCT PAGE
   ============================================================= */

/* Hide bottom section (tabs, related, upsells) */
.utm-single-product .utm-product-bottom {
  display: none !important;
}

/* Hide breadcrumb on product page */
.single-product .woocommerce-breadcrumb {
  display: none !important;
}

/* Full-width layout — no sidebar */
.single-product .page-wrapper > .closed-sidebar,
.single-product .page-wrapper > [class*="sidebar"] {
  display: none !important;
}

.single-product .page-wrapper > article {
  width: 100% !important;
  max-width: 100% !important;
}

/* Top section: gallery left, summary right */
.utm-single-product .utm-product-top {
  display: grid;
  grid-template-columns: 55% 1fr;
  gap: 50px;
  align-items: start;
  max-width: 1200px;
  margin: 40px auto 60px;
  padding: 0 20px;
}

/* ── Gallery ── */
.utm-single-product .utm-product-gallery {
  position: sticky;
  top: calc(var(--utm-header-h, 85px) + 20px);
}

.utm-single-product .utm-product-gallery .woocommerce-product-gallery {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

/* Main image — rounded corners, subtle shadow */
.utm-single-product .woocommerce-product-gallery__image img {
  border-radius: 8px;
}

/* Thumbnails row */
.utm-single-product .flex-control-thumbs {
  display: flex !important;
  gap: 10px;
  margin-top: 12px !important;
  padding: 0;
}

.utm-single-product .flex-control-thumbs li {
  flex: 0 0 auto;
  width: 72px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.utm-single-product .flex-control-thumbs li img {
  border-radius: 6px;
  border: 2px solid transparent;
  transition: border-color 0.2s ease;
  cursor: pointer;
}

.utm-single-product .flex-control-thumbs li img:hover,
.utm-single-product .flex-control-thumbs li img.flex-active {
  border-color: var(--utm-primary, #250e62);
}

/* Sale badge */
.utm-single-product .onsale {
  background-color: var(--utm-primary, #250e62) !important;
  color: #fff !important;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 18px;
  border-radius: 4px;
  min-width: auto;
  min-height: auto;
  line-height: 1.4;
  top: 16px !important;
  left: 16px !important;
  right: auto !important;
}

/* ── Summary ── */
.utm-single-product .utm-product-summary {
  width: 100% !important;
  float: none !important;
  padding: 10px 0 0 0 !important;
}

/* Product title */
.utm-single-product .utm-product-summary .product_title {
  font-size: 28px;
  font-weight: 700;
  color: var(--utm-text, #292929);
  margin: 0 0 12px;
  line-height: 1.25;
}

/* Price */
.utm-single-product .utm-product-summary .price {
  font-size: 26px;
  font-weight: 700;
  color: var(--utm-primary, #250e62);
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #eee;
}

.utm-single-product .utm-product-summary .price del {
  opacity: 0.45;
  font-size: 18px;
  font-weight: 400;
}

.utm-single-product .utm-product-summary .price ins {
  text-decoration: none;
}

/* Short description */
.utm-single-product .utm-product-summary .woocommerce-product-details__short-description {
  font-size: 15px;
  line-height: 1.7;
  color: #666;
  margin-bottom: 28px;
}

/* ── Variations form — force vertical stacking ── */
.utm-single-product .variations_form.cart {
  display: flex !important;
  flex-direction: column !important;
}

/* Variations table — full width, stacked rows */
.utm-single-product .variations {
  width: 100% !important;
  border: none !important;
  border-collapse: collapse !important;
  margin-bottom: 0 !important;
}

.utm-single-product .variations tr {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid #f0f0f0;
}

.utm-single-product .variations th,
.utm-single-product .variations td {
  padding: 0 !important;
  border: none !important;
  vertical-align: middle;
}

.utm-single-product .variations th.label {
  flex: 0 0 90px;
}

.utm-single-product .variations th.label label {
  font-size: 14px;
  font-weight: 600;
  color: var(--utm-text, #292929);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.utm-single-product .variations td.value {
  flex: 1;
  position: relative;
}

.utm-single-product .variations td.value select {
  flex: 1;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 10px 14px;
  font-size: 14px;
  color: #333;
  background-color: #fafafa;
  appearance: auto;
  transition: border-color 0.2s ease;
}

.utm-single-product .variations td.value select:focus {
  border-color: var(--utm-primary, #250e62);
  outline: none;
}

/* Reset variations link — absolute so it doesn't affect layout */
.utm-single-product .reset_variations {
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  font-size: 12px;
  color: #999 !important;
  white-space: nowrap;
}

/* ── Quantity + Add to cart — below variations ── */
.utm-single-product .single_variation_wrap {
  width: 100%;
  margin-top: 20px;
}

.utm-single-product .woocommerce-variation-add-to-cart {
  display: flex !important;
  align-items: stretch;
  gap: 12px;
}

/* Quantity */
.utm-single-product .woocommerce-variation-add-to-cart .quantity,
.utm-single-product .utm-product-summary .quantity {
  display: flex;
  align-items: center;
  border: 1px solid #ddd;
  border-radius: 4px;
  overflow: hidden;
  background: #fafafa;
  flex-shrink: 0;
}

.utm-single-product .woocommerce-variation-add-to-cart .quantity .qty,
.utm-single-product .utm-product-summary .quantity .qty {
  border: none !important;
  padding: 14px 10px;
  font-size: 18px;
  width: 80px;
  text-align: center;
  background: transparent;
  -moz-appearance: textfield;
}

.utm-single-product .quantity .qty::-webkit-inner-spin-button,
.utm-single-product .quantity .qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Add to cart button */
.utm-single-product .single_add_to_cart_button {
  flex: 0 1 auto !important;
  background-color: var(--utm-primary, #250e62) !important;
  color: #fff !important;
  border: 2px solid var(--utm-primary, #250e62) !important;
  padding: 14px 28px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 1px;
  text-transform: uppercase !important;
  border-radius: 4px !important;
  transition: all 0.25s ease !important;
  cursor: pointer;
  text-align: center;
  white-space: nowrap;
}

.utm-single-product .single_add_to_cart_button:hover {
  background-color: var(--utm-primary-dark, #1a0a47) !important;
  border-color: var(--utm-primary-dark, #1a0a47) !important;
  color: #fff !important;
}

/* Disabled state */
.utm-single-product .single_add_to_cart_button.disabled,
.utm-single-product .single_add_to_cart_button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Variation description & price (shown after selecting options) */
.utm-single-product .woocommerce-variation {
  margin-bottom: 12px;
}

.utm-single-product .woocommerce-variation-price {
  margin-bottom: 8px;
}

/* ── Product meta ── */
.utm-single-product .utm-product-summary .product_meta {
  margin-top: 0;
  padding-top: 24px;
  border-top: 1px solid #eee;
  font-size: 13px;
  color: #999;
}

.utm-single-product .utm-product-summary .product_meta > span {
  display: block;
  margin-bottom: 6px;
}

.utm-single-product .utm-product-summary .product_meta a {
  color: var(--utm-primary, #250e62);
  text-decoration: none;
}

.utm-single-product .utm-product-summary .product_meta a:hover {
  text-decoration: underline;
}

/* Hide category & tags in product meta */
.utm-single-product .utm-product-summary .product_meta .posted_in,
.utm-single-product .utm-product-summary .product_meta .tagged_as {
  display: none !important;
}

/* ── Responsive — tablet ── */
@media (max-width: 1024px) {
  .utm-single-product .utm-product-top {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin: 30px auto 40px;
  }

  .utm-single-product .utm-product-gallery {
    position: static;
  }

  .utm-single-product .utm-product-summary .product_title {
    font-size: 24px;
  }

  .utm-single-product .utm-product-summary .price {
    font-size: 22px;
  }
}

/* ── Responsive — mobile ── */
@media (max-width: 768px) {
  .utm-single-product .utm-product-top {
    grid-template-columns: 1fr;
    gap: 24px;
    margin: 20px auto 30px;
  }

  .utm-single-product .utm-product-summary .product_title {
    font-size: 22px;
  }

  .utm-single-product .utm-product-summary .price {
    font-size: 20px;
  }

  .utm-single-product .utm-product-summary .cart {
    flex-direction: column;
  }

  .utm-single-product .utm-product-summary .single_add_to_cart_button {
    width: 100%;
  }
}

.elementor-slideshow__counter {
  color: #250e62 !important;
  background-color: rgba(255, 255, 255, 0.95) !important;
  padding: 8px 12px !important;
  border-radius: 4px !important;
  font-weight: 500 !important;
}

/* Make close button icon (X) more visible */
.dialog-lightbox-widget .dialog-close-button .eicon-close,
.dialog-close-button i {
  color: #250e62 !important;
  background-color: rgba(255, 255, 255, 0.95) !important;
  border-radius: 4px !important;
  padding: 8px !important;
  font-size: 18px !important;
}

.dialog-close-button:hover .eicon-close,
.dialog-close-button:hover i {
  background-color: #250e62 !important;
  color: #ffffff !important;
}

/* UTM Slider */
.utm-slider {
  position: relative;
  overflow: hidden;
  max-width: 1280px;
  margin: 0 auto;
  height: 600px;
  background: #fafafa;
}

.utm-slider-track {
  display: flex;
  transition: transform 0.5s ease;
  height: 100%;
}

.utm-slide {
  min-width: 100%;
  width: 100%;
  flex: 0 0 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fafafa;
}

.utm-slide img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

.utm-slider-prev,
.utm-slider-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.9);
  border: none;
  font-size: 24px;
  cursor: pointer;
  padding: 8px 14px;
  border-radius: 4px;
  color: #250e62;
  z-index: 2;
  text-decoration: none !important;
}

.utm-slider-prev {
  left: 10px;
}

.utm-slider-next {
  right: 10px;
}

.utm-slider-counter {
  position: absolute;
  bottom: 10px;
  right: 10px;
  background: rgba(255, 255, 255, 0.95);
  color: #250e62;
  padding: 8px 12px;
  border-radius: 4px;
  font-size: 14px;
  z-index: 2;
}

/* UserWay accessibility widget - move up and enlarge on mobile */
@media (max-width: 767px) {
  .uwy,
  .uwy.umb,
  .uwy.umb.userway_p5,
  div[data-uw-feature-ignore="true"],
  iframe.uwif,
  iframe[name="userway"] {
    bottom: 70px !important;
    top: auto !important;
  }

  .uai.userway_dark,
  #userwayAccessibilityIcon {
    width: 60px !important;
    height: 60px !important;
  }
}