.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-161 .elementor-element.elementor-element-625b5689{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;}.elementor-161 .elementor-element.elementor-element-625b5689 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-widget-divider{--divider-color:var( --e-global-color-secondary );}.elementor-widget-divider .elementor-divider__text{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-divider.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon{color:var( --e-global-color-secondary );border-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-secondary );}.elementor-161 .elementor-element.elementor-element-512e2e59{--divider-border-style:solid;--divider-color:#000;--divider-border-width:1px;}.elementor-161 .elementor-element.elementor-element-512e2e59 .elementor-divider-separator{width:100%;}.elementor-161 .elementor-element.elementor-element-512e2e59 .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-161 .elementor-element.elementor-element-6812c396{--divider-border-style:solid;--divider-color:#000;--divider-border-width:1px;}.elementor-161 .elementor-element.elementor-element-6812c396 .elementor-divider-separator{width:100%;}.elementor-161 .elementor-element.elementor-element-6812c396 .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-widget-icon-box.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon-box.elementor-view-framed .elementor-icon, .elementor-widget-icon-box.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-title, .elementor-widget-icon-box .elementor-icon-box-title a{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-icon-box .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box:has(:hover) .elementor-icon-box-title,
					 .elementor-widget-icon-box:has(:focus) .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-description{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-161 .elementor-element.elementor-element-23783ace .elementor-icon-box-wrapper{gap:15px;}.elementor-161 .elementor-element.elementor-element-3475bd3d .elementor-icon-box-wrapper{gap:15px;}.elementor-161 .elementor-element.elementor-element-111dbc91 .elementor-icon-box-wrapper{gap:15px;}.elementor-161 .elementor-element.elementor-element-96b8416 .elementor-icon-box-wrapper{gap:15px;}.elementor-161 .elementor-element.elementor-element-6fda08ff .elementor-icon-box-wrapper{gap:15px;}.elementor-161 .elementor-element.elementor-element-72bd27 .elementor-icon-box-wrapper{gap:15px;}.elementor-widget-testimonial .elementor-testimonial-content{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-testimonial .elementor-testimonial-name{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-testimonial .elementor-testimonial-job{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-161 .elementor-element.elementor-element-51fee1b4 .elementor-testimonial-wrapper{text-align:center;}.elementor-161 .elementor-element.elementor-element-648c49dc .elementor-testimonial-wrapper{text-align:center;}.elementor-161 .elementor-element.elementor-element-65300f4 .elementor-testimonial-wrapper{text-align:center;}.elementor-widget-accordion .elementor-accordion-icon, .elementor-widget-accordion .elementor-accordion-title{color:var( --e-global-color-primary );}.elementor-widget-accordion .elementor-accordion-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-accordion .elementor-active .elementor-accordion-icon, .elementor-widget-accordion .elementor-active .elementor-accordion-title{color:var( --e-global-color-accent );}.elementor-widget-accordion .elementor-active .elementor-accordion-icon svg{fill:var( --e-global-color-accent );}.elementor-widget-accordion .elementor-accordion-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-accordion .elementor-tab-content{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-161 .elementor-element.elementor-element-667a0c9e:not(.elementor-motion-effects-element-type-background), .elementor-161 .elementor-element.elementor-element-667a0c9e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://grupobellapasion.weavedezine.com/wp-content/plugins/elementor/assets/images/placeholder.png");}.elementor-161 .elementor-element.elementor-element-667a0c9e{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;}.elementor-161 .elementor-element.elementor-element-667a0c9e > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}/* Start custom CSS for section, class: .elementor-element-317e6ab1 *//* ==========================================================================
   BELLA PASIÓN — styles.css (Elementor supplement)
   ----------------------------------------------------------------------
   This file contains ONLY what Elementor's native controls cannot do:
   hover animations, scroll-reveal, keyframes, glassmorphism/blur, image
   zoom, gradient overlays that need pseudo-elements, and the infinite
   marquee scroll. Colors, typography, spacing, backgrounds, container
   layout, button states and icon styling are already set natively on
   each element inside bella-pasion-elementor.json — do not duplicate
   them here.

   HOW TO APPLY IN WORDPRESS
   Appearance → Customize → Additional CSS → paste this file's contents.
   (Or, if using Elementor Pro: Site Settings → Custom CSS.)
   ========================================================================== */

/* ----------------------------- 1. TOKENS -------------------------------- */
:root{
  --color-black:      #0a0708;
  --color-charcoal:   #150f11;
  --color-wine:       #4a0e22;
  --color-purple:     #241129;
  --color-gold:       #c9a24c;
  --color-gold-soft:  #e8ce8c;
  --color-cream:      #f3ecdd;
  --ease-luxury: cubic-bezier(.16,1,.3,1);
  --transition-fast: 0.3s var(--ease-luxury);
  --transition-base: 0.5s var(--ease-luxury);
  --transition-slow: 1.1s var(--ease-luxury);
}

/* ----------------------------- 2. STICKY HEADER BLUR ---------------------- */
/* Elementor's "sticky" effect handles position; this adds the frosted-glass
   transition that only appears after scrolling starts. */
.site-header{
  transition: background var(--transition-base), box-shadow var(--transition-base), backdrop-filter var(--transition-base);
}
.site-header.elementor-sticky--effects{
  background: rgba(10,7,8,0.92) !important;
  backdrop-filter: blur(10px);
  box-shadow: 0 1px 0 rgba(201,162,76,0.15);
}

/* ----------------------------- 3. NAV / LINK HOVER ------------------------ */
.nav__item a{ transition: color var(--transition-fast); }
.nav__item a:hover{ color: var(--color-cream) !important; }

.lang-btn{ transition: color var(--transition-fast); cursor: pointer; }
.lang-btn:hover{ color: var(--color-cream) !important; }

.link-underline{ position: relative; padding-bottom: 4px; display: inline-block; }
.link-underline::after{
  content: "";
  position: absolute; left: 0; right: 100%; bottom: 0; height: 1px;
  background: var(--color-gold);
  transition: right var(--transition-base);
}
.link-underline:hover::after{ right: 0; }

.footer__social a{ transition: background var(--transition-fast); }
.footer__social a:hover{ background: rgba(201,162,76,0.1); }

/* ----------------------------- 4. GRAIN + VIGNETTE OVERLAYS --------------- */
/* Subtle film-grain texture over media-backed sections — a repeating noise
   SVG blended with mix-blend-mode, which Elementor has no control for. */
.hero::before,
.vignette::before{
  content: "";
  position: absolute; inset: 0; opacity: 0.05; mix-blend-mode: overlay; pointer-events: none; z-index: 1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* Radial vignette darkening the edges of full-bleed media sections */
.vignette{ position: relative; }
.vignette::after{
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: radial-gradient(120% 90% at 50% 30%, rgba(0,0,0,0) 0%, rgba(10,7,8,0.4) 55%, rgba(10,7,8,0.85) 100%);
}

/* ----------------------------- 5. BEAM DIVIDER GLOW ------------------------ */
.beam-divider{ box-shadow: 0 0 24px 1px rgba(201,162,76,0.45); }

/* ----------------------------- 6. IMAGE / MEDIA ZOOM ON HOVER ------------- */
.media-frame{ overflow: hidden; position: relative; }
.media-frame img, .media-frame video{ transition: transform var(--transition-slow); }
.media-frame:hover img, .media-frame:hover video{ transform: scale(1.055); }

/* ----------------------------- 7. VIDEO PLAY-BUTTON HOVER ------------------ */
.video-block{ cursor: pointer; }
.video-block .elementor-custom-embed-image-overlay{ transition: background var(--transition-fast); }
.video-block:hover .elementor-custom-embed-image-overlay{ background: rgba(10,7,8,0.15) !important; }
.video-block .elementor-custom-embed-play i{ transition: transform var(--transition-fast); }
.video-block:hover .elementor-custom-embed-play i{ transform: scale(1.06); }

/* ----------------------------- 8. ICON BOX / CARD HOVER -------------------- */
.icon-box-cell{ transition: background var(--transition-fast); }
.icon-box-cell:hover{ background: var(--color-black) !important; }

.stat-box .elementor-icon-box-icon{ transition: transform var(--transition-fast); }
.stat-box:hover .elementor-icon-box-icon{ transform: translateY(-3px); }

/* ----------------------------- 9. BUTTON HOVER SHINE ----------------------- */
.btn{ position: relative; overflow: hidden; }
.btn::before{
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.25), transparent);
  transform: translateX(-120%);
  transition: transform var(--transition-slow);
  pointer-events: none;
}
.btn:hover::before{ transform: translateX(120%); }
.btn--solid:hover{ transform: translateY(-1px); }

/* ----------------------------- 10. INSTAGRAM TILE HOVER OVERLAY ------------ */
.ig-tile .elementor-gallery-item{ position: relative; overflow: hidden; }
.ig-tile .elementor-gallery-item::after{
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(74,14,34,0.55), rgba(36,17,41,0.7));
  opacity: 0; transition: opacity var(--transition-base);
}
.ig-tile .elementor-gallery-item:hover::after{ opacity: 1; }

/* ----------------------------- 11. MARQUEE INFINITE SCROLL ----------------- */
.marquee{ overflow: hidden; }
.marquee__track{ animation: marquee 34s linear infinite; opacity: 0.6; }
@keyframes marquee{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }

/* ----------------------------- 12. SCROLL-REVEAL -------------------------- */
/* Pairs with Elementor's Motion Effects → "reveal" CSS class trigger, or a
   small IntersectionObserver snippet in Site Settings → Custom Code. */
.reveal{ opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease-luxury), transform var(--transition-slow); }
.reveal.is-visible{ opacity: 1; transform: translateY(0); }
.reveal--d1{ transition-delay: 0.12s; }
.reveal--d2{ transition-delay: 0.24s; }
.reveal--d3{ transition-delay: 0.36s; }

/* ----------------------------- 13. FAQ ACCORDION PLUS-ICON ROTATE --------- */
.faq-list .elementor-accordion-icon{ transition: transform var(--transition-fast); }
.faq-list .elementor-active .elementor-accordion-icon{ transform: rotate(45deg); }
.faq-list .elementor-tab-title{ border-block-end: 1px solid rgba(201,162,76,0.15); }

/* ----------------------------- 14. GLASSMORPHISM (play button / scrim) ----- */
.play-btn__circle,
.video-block .elementor-custom-embed-play i{
  backdrop-filter: blur(4px);
  background: rgba(10,7,8,0.4);
}

/* ----------------------------- 15. FORM FIELD UNDERLINE FOCUS -------------- */
.form-grid input, .form-grid select, .form-grid textarea{
  transition: border-color var(--transition-fast);
}
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus{
  border-color: var(--color-gold);
  outline: none;
}

/* ----------------------------- 16. REDUCED MOTION -------------------------- */
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity: 1; transform: none; transition: none; }
  .media-frame:hover img, .media-frame:hover video{ transform: none; }
  .marquee__track{ animation: none !important; }
  .btn::before{ display: none; }
}/* End custom CSS */