/* Tamanhos base (sem opacidade explícita - usar com rgba) */
.text-shadow-sm {
  text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.3); /* pequeno deslocamento + blur */
}
.text-shadow {
  text-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); /* padrão */
}
.text-shadow-lg {
  text-shadow: 4px 4px 8px rgba(0, 0, 0, 0.3); /* grande */
}

/* Opacidade variável - use combinando com as classes acima */
.text-shadow-opacity-10 { --text-shadow-opacity: 0.1; }
.text-shadow-opacity-20 { --text-shadow-opacity: 0.2; }
.text-shadow-opacity-30 { --text-shadow-opacity: 0.3; }
.text-shadow-opacity-40 { --text-shadow-opacity: 0.4; }
.text-shadow-opacity-50 { --text-shadow-opacity: 0.5; }
.text-shadow-opacity-60 { --text-shadow-opacity: 0.6; }
.text-shadow-opacity-70 { --text-shadow-opacity: 0.7; }
.text-shadow-opacity-80 { --text-shadow-opacity: 0.8; }
.text-shadow-opacity-90 { --text-shadow-opacity: 0.9; }
.text-shadow-opacity-100 { --text-shadow-opacity: 1; }


/* Aplica opacidade a todas as shadows */
[class*="text-shadow"]:not([class*="text-shadow-opacity"]) {
  --text-shadow-opacity: 0.3; /* valor padrão */
}

.text-shadow-sm {
  text-shadow: 2px 2px 3px rgba(0, 0, 0, var(--text-shadow-opacity, 0.3));
}
.text-shadow {
  text-shadow: 3px 3px 5px rgba(0, 0, 0, var(--text-shadow-opacity, 0.3));
}
.text-shadow-lg {
  text-shadow: 4px 4px 8px rgba(0, 0, 0, var(--text-shadow-opacity, 0.3));
}

.h-650px {
  height: 350px;
}

.mh-hero-400px {
  min-height: 230px;
}

.object-fit-cover {
  object-fit: cover !important;
}

.object-position-center {
  object-position: center !important;
}

.ratio-9x16 {
  --bs-aspect-ratio: 177.7777777778%; /* 16/9 * 100% = 177.777...% */
}

.ratio-3x4 {
  --bs-aspect-ratio: 133.3333333333%;
}


/* Breakpoints do Bootstrap */
@media (min-width: 576px) {
  .text-shadow-sm-sm { text-shadow: 2px 2px 3px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .text-shadow-sm { text-shadow: 3px 3px 5px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .text-shadow-lg-sm { text-shadow: 4px 4px 8px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
}

@media (min-width: 768px) {
  .text-shadow-sm-md { text-shadow: 2px 2px 3px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .text-shadow-md { text-shadow: 3px 3px 5px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .text-shadow-lg-md { text-shadow: 4px 4px 8px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .position-md-absolute { position: absolute !important; }
  .mh-hero-400px {
    min-height: 400px;
  }

  .start-md-50 {
    left: 50% !important;
  }
  .translate-md-middle {
    transform: translateX(-50%) !important;
  }
}

@media (min-width: 992px) {
  .text-shadow-sm-lg { text-shadow: 2px 2px 3px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .text-shadow-lg { text-shadow: 3px 3px 5px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .text-shadow-lg-lg { text-shadow: 4px 4px 8px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .w-md-50 { width: 50% !important; }
  .w-md-auto { width: auto !important; }
  .position-lg-absolute { position: absolute !important; }
}

@media (min-width: 1200px) {
  .text-shadow-sm-xl { text-shadow: 2px 2px 3px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .text-shadow-xl { text-shadow: 3px 3px 5px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .text-shadow-lg-xl { text-shadow: 4px 4px 8px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .position-xl-absolute { position: absolute !important; }
  .start-xl-50 { left: 50% !important; }
  .translate-middle-xl-x { transform: translateX(-50%) !important; }
  .w-xl-auto { width: auto !important; }
  .me-xl-0 { margin-right: 0 !important }
  .ms-xl-0 { margin-left: 0 !important }
}

@media (min-width: 1400px) {
  .text-shadow-sm-xxl { text-shadow: 2px 2px 3px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .text-shadow-xxl { text-shadow: 3px 3px 5px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
  .text-shadow-lg-xxl { text-shadow: 4px 4px 8px rgba(0,0,0, var(--text-shadow-opacity,0.3)); }
}