/**
 * Irmanha Global Utilities
 * 
 * Light utility classes and global styles that can be used
 * across all modules. Keep this minimal and focused.
 */

/* =============================================
   GLOBAL RESET - Prevent white background override
   ============================================= */

/* Reset body/html background to transparent - override any theme/plugin styles */
body,
html {
    background-color: transparent !important;
    background: transparent !important;
}

/* Reset dialog borders - prevent theme/plugin styles from adding borders */
[role="dialog"],
[aria-modal="true"] {
    border: none !important;
    border-width: 0 !important;
    border-style: none !important;
    border-color: transparent !important;
}

/* Container Utilities */
.irmanha-container {
  width: 100%;
  max-width: var(--irmanha-container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--irmanha-container-padding);
  padding-right: var(--irmanha-container-padding);
}

.irmanha-container--wide {
  max-width: var(--irmanha-container-wide);
}

.irmanha-container--narrow {
  max-width: var(--irmanha-container-narrow);
}

.irmanha-container--full {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

/* Aspect Ratio Utilities */
.irmanha-ratio {
  position: relative;
  width: 100%;
}

.irmanha-ratio::before {
  content: '';
  display: block;
  width: 100%;
}

.irmanha-ratio--16-9::before {
  padding-bottom: 56.25%; /* 9/16 * 100% */
}

.irmanha-ratio--4-3::before {
  padding-bottom: 75%; /* 3/4 * 100% */
}

.irmanha-ratio--3-2::before {
  padding-bottom: 66.666667%; /* 2/3 * 100% */
}

.irmanha-ratio--1-1::before {
  padding-bottom: 100%;
}

.irmanha-ratio--3-4::before {
  padding-bottom: 133.333333%; /* 4/3 * 100% */
}

.irmanha-ratio__content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Spacing Utilities - Shorthand versions for common patterns */
.irmanha-m-0 { margin: 0 !important; }
.irmanha-p-0 { padding: 0 !important; }

.irmanha-mb-0 { margin-bottom: 0 !important; }
.irmanha-mb-1 { margin-bottom: var(--irmanha-space-1) !important; }
.irmanha-mb-2 { margin-bottom: var(--irmanha-space-2) !important; }
.irmanha-mb-3 { margin-bottom: var(--irmanha-space-3) !important; }
.irmanha-mb-4 { margin-bottom: var(--irmanha-space-4) !important; }
.irmanha-mb-6 { margin-bottom: var(--irmanha-space-6) !important; }
.irmanha-mb-8 { margin-bottom: var(--irmanha-space-8) !important; }

.irmanha-mt-0 { margin-top: 0 !important; }
.irmanha-mt-1 { margin-top: var(--irmanha-space-1) !important; }
.irmanha-mt-2 { margin-top: var(--irmanha-space-2) !important; }
.irmanha-mt-3 { margin-top: var(--irmanha-space-3) !important; }
.irmanha-mt-4 { margin-top: var(--irmanha-space-4) !important; }
.irmanha-mt-6 { margin-top: var(--irmanha-space-6) !important; }
.irmanha-mt-8 { margin-top: var(--irmanha-space-8) !important; }

/* Text Utilities */
.irmanha-text-center { text-align: center !important; }
.irmanha-text-left { text-align: left !important; }
.irmanha-text-right { text-align: right !important; }

.irmanha-text-primary { color: var(--irmanha-text-primary) !important; }
.irmanha-text-secondary { color: var(--irmanha-text-secondary) !important; }
.irmanha-text-muted { color: var(--irmanha-text-muted) !important; }
.irmanha-text-inverse { color: var(--irmanha-text-inverse) !important; }

/* Brand Color Text Utilities */
.irmanha-text-black { color: var(--irmanha-black) !important; }
.irmanha-text-beige { color: var(--irmanha-beige) !important; }
.irmanha-text-grey { color: var(--irmanha-grey) !important; }
.irmanha-text-white { color: var(--irmanha-white) !important; }

.irmanha-font-normal { font-weight: var(--irmanha-font-weight-normal) !important; }
.irmanha-font-medium { font-weight: var(--irmanha-font-weight-medium) !important; }
.irmanha-font-semibold { font-weight: var(--irmanha-font-weight-semibold) !important; }
.irmanha-font-bold { font-weight: var(--irmanha-font-weight-bold) !important; }

/* Display Utilities */
.irmanha-hidden { display: none !important; }
.irmanha-block { display: block !important; }
.irmanha-inline-block { display: inline-block !important; }
.irmanha-flex { display: flex !important; }
.irmanha-inline-flex { display: inline-flex !important; }
.irmanha-grid { display: grid !important; }

/* Flex Utilities */
.irmanha-items-center { align-items: center !important; }
.irmanha-items-start { align-items: flex-start !important; }
.irmanha-items-end { align-items: flex-end !important; }
.irmanha-justify-center { justify-content: center !important; }
.irmanha-justify-between { justify-content: space-between !important; }
.irmanha-justify-start { justify-content: flex-start !important; }
.irmanha-justify-end { justify-content: flex-end !important; }

/* Gap Utilities */
.irmanha-gap-1 { gap: var(--irmanha-space-1) !important; }
.irmanha-gap-2 { gap: var(--irmanha-space-2) !important; }
.irmanha-gap-3 { gap: var(--irmanha-space-3) !important; }
.irmanha-gap-4 { gap: var(--irmanha-space-4) !important; }
.irmanha-gap-6 { gap: var(--irmanha-space-6) !important; }
.irmanha-gap-8 { gap: var(--irmanha-space-8) !important; }

/* Border Radius Utilities */
.irmanha-rounded-sm { border-radius: var(--irmanha-radius-sm) !important; }
.irmanha-rounded { border-radius: var(--irmanha-radius-md) !important; }
.irmanha-rounded-lg { border-radius: var(--irmanha-radius-lg) !important; }
.irmanha-rounded-xl { border-radius: var(--irmanha-radius-xl) !important; }
.irmanha-rounded-2xl { border-radius: var(--irmanha-radius-2xl) !important; }
.irmanha-rounded-full { border-radius: var(--irmanha-radius-full) !important; }

/* Shadow Utilities */
.irmanha-shadow-sm { box-shadow: var(--irmanha-shadow-sm) !important; }
.irmanha-shadow { box-shadow: var(--irmanha-shadow) !important; }
.irmanha-shadow-md { box-shadow: var(--irmanha-shadow-md) !important; }
.irmanha-shadow-lg { box-shadow: var(--irmanha-shadow-lg) !important; }
.irmanha-shadow-xl { box-shadow: var(--irmanha-shadow-xl) !important; }
.irmanha-shadow-none { box-shadow: none !important; }

/* Background Color Utilities */
.irmanha-bg-black { background-color: var(--irmanha-black) !important; }
.irmanha-bg-beige { background-color: var(--irmanha-beige) !important; }
.irmanha-bg-grey { background-color: var(--irmanha-grey) !important; }
.irmanha-bg-white { background-color: var(--irmanha-white) !important; }
.irmanha-bg-primary { background-color: var(--irmanha-bg-primary) !important; }
.irmanha-bg-secondary { background-color: var(--irmanha-bg-secondary) !important; }
.irmanha-bg-muted { background-color: var(--irmanha-bg-muted) !important; }

.irmanha-img-responsive { max-width: 100%; height: auto; }
.irmanha-img-cover { width: 100%; height: 100%; object-fit: cover; }
.irmanha-img-contain { width: 100%; height: 100%; object-fit: contain; }

/* Button Base Styles */
.irmanha-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--irmanha-space-2);
  padding: var(--irmanha-space-3) var(--irmanha-space-6);
  border: 1px solid transparent;
  border-radius: var(--irmanha-radius-md);
  font-family: var(--irmanha-font-family-base);
  font-size: var(--irmanha-text-base);
  font-weight: var(--irmanha-font-weight-medium);
  line-height: var(--irmanha-leading-tight);
  text-decoration: none;
  cursor: pointer;
  transition: all var(--irmanha-transition-fast);
  user-select: none;
}

.irmanha-btn:hover {
  text-decoration: none;
  transform: translateY(-1px);
}

.irmanha-btn:focus {
  outline: 2px solid var(--irmanha-brand-primary);
  outline-offset: 2px;
}

.irmanha-btn--primary {
  background-color: var(--irmanha-brand-primary);
  color: var(--irmanha-white);
}

.irmanha-btn--primary:hover {
  background-color: color-mix(in srgb, var(--irmanha-brand-primary) 90%, black);
  color: var(--irmanha-white);
}

.irmanha-btn--secondary {
  background-color: var(--irmanha-brand-secondary);
  color: var(--irmanha-white);
}

.irmanha-btn--secondary:hover {
  background-color: color-mix(in srgb, var(--irmanha-brand-secondary) 90%, black);
  color: var(--irmanha-white);
}

.irmanha-btn--outline {
  background-color: transparent;
  border-color: var(--irmanha-brand-primary);
  color: var(--irmanha-brand-primary);
}

.irmanha-btn--outline:hover {
  background-color: var(--irmanha-brand-primary);
  color: var(--irmanha-white);
}

/* Screen Reader Only */
.irmanha-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Focus Utilities */
.irmanha-focus-visible:focus-visible {
  outline: 2px solid var(--irmanha-brand-primary);
  outline-offset: 2px;
}

/* Responsive Utilities */
@media (max-width: 767px) {
  .irmanha-hidden-mobile {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .irmanha-hidden-desktop {
    display: none !important;
  }
  
  .irmanha-md-flex {
    display: flex !important;
  }
  
  .irmanha-md-grid {
    display: grid !important;
  }
}

/* ===== WOOCOMMERCE CART PAGE ===== */
/* Hide "Proceed to checkout" button, keep only "View cart" */
.woocommerce .wc-proceed-to-checkout,
.woocommerce .cart-collaterals .wc-proceed-to-checkout,
.woocommerce a.checkout-button,
.woocommerce .checkout-button,
.woocommerce .button.checkout {
  display: none !important;
}

/* Keep "Return to shop" or "Continue shopping" buttons visible */
.woocommerce .return-to-shop,
.woocommerce .continue-shopping {
  display: inline-block !important;
}

/* ===== HERO SECTION FIXES ===== */
/* Remove any spacing from Beaver Builder wrappers around hero */
.fl-module .irmanha-hero,
.fl-col .irmanha-hero,
.fl-row .irmanha-hero {
  margin: 0 !important;
  padding: 0 !important;
}

/* Remove bottom margin/padding from Beaver Builder module wrapper containing hero */
.fl-module:has(.irmanha-hero),
.fl-col:has(.irmanha-hero),
.fl-row:has(.irmanha-hero) {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Fallback for browsers without :has() support */
.fl-module .irmanha-hero ~ * {
  margin-top: 0;
}
