/* ==========================================================================
   Frontend del theme builder — estilos base de contenedores y widgets.
   Los estilos de cada elemento se generan desde sus controles (CSS inline
   por página); este archivo define la estructura y comportamientos.
   ========================================================================== */

/* ---------- Propiedades tipadas (no heredables) para transformaciones ---------- */
@property --tf-tx { syntax: '<length-percentage>'; inherits: false; initial-value: 0px; }
@property --tf-ty { syntax: '<length-percentage>'; inherits: false; initial-value: 0px; }
@property --tf-rz { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@property --tf-rx { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@property --tf-ry { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@property --tf-kx { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@property --tf-ky { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@property --tf-sx { syntax: '<number>'; inherits: false; initial-value: 1; }
@property --tf-sy { syntax: '<number>'; inherits: false; initial-value: 1; }
@property --tf-fx { syntax: '<number>'; inherits: false; initial-value: 1; }
@property --tf-fy { syntax: '<number>'; inherits: false; initial-value: 1; }
@property --tf-persp { syntax: '<length>'; inherits: false; initial-value: 1000px; }
@property --mfx-rx { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@property --mfx-ry { syntax: '<angle>'; inherits: false; initial-value: 0deg; }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: auto; }
html.e-popup-lock, html.e-nav-lock { overflow: hidden; }
body.e-site { margin: 0; min-height: 100vh; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; overflow-x: clip; }
img, video, svg { max-width: 100%; }
img { height: auto; vertical-align: middle; }
a { text-decoration: none; transition: color .25s ease, background-color .25s ease, border-color .25s ease, opacity .25s ease; }
h1, h2, h3, h4, h5, h6, p, figure, blockquote { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--gc-secondary, #a8845a); outline-offset: 2px; }
::selection { background: var(--gc-secondary, #a8845a); color: #fff; }
em { font-style: italic; }
.e-muted { color: var(--gc-muted, #8c857c); }
.e-empty { padding: 28px; text-align: center; color: var(--gc-muted, #8c857c); border: 1px dashed var(--gc-border, #ddd); font-size: 14px; }
.e-empty-page { max-width: 620px; margin: 0 auto; padding: 140px 24px; text-align: center; display: flex; flex-direction: column; gap: 18px; align-items: center; }

/* ---------- Elementos ---------- */
.e-el { position: relative; }
.e-widget { max-width: 100%; }
.e-widget > .e-widget-container { height: 100%; }
.e-location-main { display: block; }
.e-header--overlay { position: absolute; left: 0; right: 0; top: 0; z-index: 50; }
.e-location-header { position: relative; z-index: 40; }

/* ---------- Contenedor (flexbox / grid) ---------- */
.e-con {
  --flex-direction: column;
  --justify-content: flex-start;
  --align-items: initial;
  --align-content: initial;
  --flex-wrap: nowrap;
  --row-gap: var(--widgets-space, 20px);
  --column-gap: var(--widgets-space, 20px);
  --width: 100%;
  --min-height: initial;
  --grid-template-columns: repeat(3, minmax(0, 1fr));
  --grid-template-rows: initial;
  --grid-auto-flow: row;
  --justify-items: stretch;
  display: flex;
  flex-direction: column;
  width: var(--width);
  max-width: 100%;
  min-height: var(--min-height);
  padding: 10px;
  flex-shrink: 1;
}
.e-con-full,
.e-con-boxed > .e-con-inner {
  display: flex;
  flex-direction: var(--flex-direction);
  justify-content: var(--justify-content);
  align-items: var(--align-items);
  align-content: var(--align-content);
  flex-wrap: var(--flex-wrap);
  row-gap: var(--row-gap);
  column-gap: var(--column-gap);
}
.e-con-boxed > .e-con-inner { position: relative; width: 100%; max-width: min(100%, var(--content-width, 1280px)); margin: 0 auto; flex-grow: 1; }
.e-con-full.e-grid,
.e-con-boxed.e-grid > .e-con-inner {
  display: grid;
  grid-template-columns: var(--grid-template-columns);
  grid-template-rows: var(--grid-template-rows);
  grid-auto-flow: var(--grid-auto-flow);
  justify-items: var(--justify-items);
  align-items: var(--align-items);
  gap: var(--row-gap) var(--column-gap);
}
.e-grid > .e-el, .e-grid > .e-con-inner > .e-el { width: auto; min-width: 0; }
.e-con > .e-con, .e-con-inner > .e-con { --padding-default: 0; }
a.e-con { color: inherit; }
.e-con > .e-widget, .e-con-inner > .e-widget { min-width: 0; }

/* Fondos avanzados */
.e-bg-overlay { position: absolute; inset: 0; pointer-events: none; border-radius: inherit; transition: background .3s, opacity .3s; }
.e-bg-video, .e-bg-slideshow { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; pointer-events: none; }
.e-bg-video video { width: 100%; height: 100%; object-fit: cover; }
.e-bg-slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.2s ease, transform 1.2s ease; }
.e-bg-slide.is-active { opacity: 1; }
.e-bg-slideshow--slide-right .e-bg-slide { transform: translateX(-6%); }
.e-bg-slideshow--slide-left .e-bg-slide { transform: translateX(6%); }
.e-bg-slideshow--slide-right .e-bg-slide.is-active, .e-bg-slideshow--slide-left .e-bg-slide.is-active { transform: none; }
.e-kenburns { will-change: transform; }
.e-kenburns--in { animation: e-kenburns-in var(--kb-duration, 9s) linear both; }
.e-kenburns--out { animation: e-kenburns-out var(--kb-duration, 9s) linear both; }
.e-bg-slide:not(.is-active).e-kenburns { animation: none; }
@keyframes e-kenburns-in { from { transform: scale(1); } to { transform: scale(1.14); } }
@keyframes e-kenburns-out { from { transform: scale(1.14); } to { transform: scale(1); } }

/* Separadores de forma */
.e-shape { position: absolute; left: 0; width: 100%; overflow: hidden; line-height: 0; direction: ltr; pointer-events: none; z-index: 1; }
.e-shape-top { top: -1px; }
.e-shape-bottom { bottom: -1px; transform: rotate(180deg); }
.e-shape svg { display: block; width: calc(100% + 1.3px); height: 60px; position: relative; left: 50%; transform: translateX(-50%); }
.e-shape-fill { fill: #fff; }
.e-shape-flip svg { transform: translateX(-50%) rotateY(180deg); }

/* ---------- Visibilidad responsive ---------- */
@media (min-width: 1025px) { .e-hidden-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .e-hidden-tablet { display: none !important; } }
@media (max-width: 767px) { .e-hidden-mobile { display: none !important; } }

/* ---------- Sticky ---------- */
.e-sticky--active { transition: background-color .35s ease, box-shadow .35s ease, padding .35s ease, backdrop-filter .35s ease; }
.e-sticky__spacer { visibility: hidden; pointer-events: none; }

/* ==========================================================================
   Animaciones de entrada
   ========================================================================== */
.e-invisible { opacity: 0; }
.e-animated { animation-duration: 1.1s; animation-fill-mode: backwards; animation-timing-function: cubic-bezier(.2, .65, .3, 1); }
.e-animated.e-anim--slow { animation-duration: 2s; }
.e-animated.e-anim--fast { animation-duration: .65s; }
@media (prefers-reduced-motion: reduce) { .e-animated { animation: none !important; } .e-invisible { opacity: 1; } }

.e-anim-fadeIn { animation-name: e-fadeIn; }
.e-anim-fadeInDown { animation-name: e-fadeInDown; }
.e-anim-fadeInLeft { animation-name: e-fadeInLeft; }
.e-anim-fadeInRight { animation-name: e-fadeInRight; }
.e-anim-fadeInUp { animation-name: e-fadeInUp; }
.e-anim-zoomIn { animation-name: e-zoomIn; }
.e-anim-zoomInDown { animation-name: e-zoomInDown; }
.e-anim-zoomInLeft { animation-name: e-zoomInLeft; }
.e-anim-zoomInRight { animation-name: e-zoomInRight; }
.e-anim-zoomInUp { animation-name: e-zoomInUp; }
.e-anim-bounceIn { animation-name: e-bounceIn; }
.e-anim-bounceInDown { animation-name: e-bounceInDown; }
.e-anim-bounceInLeft { animation-name: e-bounceInLeft; }
.e-anim-bounceInRight { animation-name: e-bounceInRight; }
.e-anim-bounceInUp { animation-name: e-bounceInUp; }
.e-anim-slideInDown { animation-name: e-slideInDown; }
.e-anim-slideInLeft { animation-name: e-slideInLeft; }
.e-anim-slideInRight { animation-name: e-slideInRight; }
.e-anim-slideInUp { animation-name: e-slideInUp; }
.e-anim-rotateIn { animation-name: e-rotateIn; }
.e-anim-rotateInDownLeft { animation-name: e-rotateInDownLeft; }
.e-anim-rotateInDownRight { animation-name: e-rotateInDownRight; }
.e-anim-rotateInUpLeft { animation-name: e-rotateInUpLeft; }
.e-anim-rotateInUpRight { animation-name: e-rotateInUpRight; }
.e-anim-bounce { animation-name: e-bounce; transform-origin: center bottom; }
.e-anim-flash { animation-name: e-flash; }
.e-anim-pulse { animation-name: e-pulse; }
.e-anim-rubberBand { animation-name: e-rubberBand; }
.e-anim-shake { animation-name: e-shake; }
.e-anim-headShake { animation-name: e-headShake; }
.e-anim-swing { animation-name: e-swing; transform-origin: top center; }
.e-anim-tada { animation-name: e-tada; }
.e-anim-wobble { animation-name: e-wobble; }
.e-anim-jello { animation-name: e-jello; transform-origin: center; }
.e-anim-lightSpeedIn { animation-name: e-lightSpeedIn; animation-timing-function: ease-out; }
.e-anim-rollIn { animation-name: e-rollIn; }
.e-anim-revealUp { animation-name: e-revealUp; }
.e-anim-revealLeft { animation-name: e-revealLeft; }
.e-anim-blurIn { animation-name: e-blurIn; }
.e-anim-blurInUp { animation-name: e-blurInUp; }
.e-anim-scaleDown { animation-name: e-scaleDown; }
.e-anim-flipInX { animation-name: e-flipInX; backface-visibility: visible; }
.e-anim-flipInY { animation-name: e-flipInY; backface-visibility: visible; }

@keyframes e-fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes e-fadeInDown { from { opacity: 0; transform: translate3d(0, -40px, 0); } to { opacity: 1; transform: none; } }
@keyframes e-fadeInLeft { from { opacity: 0; transform: translate3d(-50px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes e-fadeInRight { from { opacity: 0; transform: translate3d(50px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes e-fadeInUp { from { opacity: 0; transform: translate3d(0, 40px, 0); } to { opacity: 1; transform: none; } }
@keyframes e-zoomIn { from { opacity: 0; transform: scale3d(.6, .6, .6); } 50% { opacity: 1; } to { transform: none; } }
@keyframes e-zoomInDown { from { opacity: 0; transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); animation-timing-function: cubic-bezier(.55, .055, .675, .19); } 60% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); animation-timing-function: cubic-bezier(.175, .885, .32, 1); } }
@keyframes e-zoomInLeft { from { opacity: 0; transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); } 60% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); } }
@keyframes e-zoomInRight { from { opacity: 0; transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); } 60% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); } }
@keyframes e-zoomInUp { from { opacity: 0; transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); } 60% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); } }
@keyframes e-bounceIn { from, 20%, 40%, 60%, 80%, to { animation-timing-function: cubic-bezier(.215, .61, .355, 1); } 0% { opacity: 0; transform: scale3d(.3, .3, .3); } 20% { transform: scale3d(1.1, 1.1, 1.1); } 40% { transform: scale3d(.9, .9, .9); } 60% { opacity: 1; transform: scale3d(1.03, 1.03, 1.03); } 80% { transform: scale3d(.97, .97, .97); } to { opacity: 1; transform: none; } }
@keyframes e-bounceInDown { from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(.215, .61, .355, 1); } 0% { opacity: 0; transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; transform: translate3d(0, 25px, 0); } 75% { transform: translate3d(0, -10px, 0); } 90% { transform: translate3d(0, 5px, 0); } to { transform: none; } }
@keyframes e-bounceInLeft { from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(.215, .61, .355, 1); } 0% { opacity: 0; transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; transform: translate3d(25px, 0, 0); } 75% { transform: translate3d(-10px, 0, 0); } 90% { transform: translate3d(5px, 0, 0); } to { transform: none; } }
@keyframes e-bounceInRight { from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(.215, .61, .355, 1); } 0% { opacity: 0; transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; transform: translate3d(-25px, 0, 0); } 75% { transform: translate3d(10px, 0, 0); } 90% { transform: translate3d(-5px, 0, 0); } to { transform: none; } }
@keyframes e-bounceInUp { from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(.215, .61, .355, 1); } 0% { opacity: 0; transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; transform: translate3d(0, -20px, 0); } 75% { transform: translate3d(0, 10px, 0); } 90% { transform: translate3d(0, -5px, 0); } to { transform: none; } }
@keyframes e-slideInDown { from { transform: translate3d(0, -100%, 0); visibility: visible; } to { transform: none; } }
@keyframes e-slideInLeft { from { transform: translate3d(-100%, 0, 0); visibility: visible; } to { transform: none; } }
@keyframes e-slideInRight { from { transform: translate3d(100%, 0, 0); visibility: visible; } to { transform: none; } }
@keyframes e-slideInUp { from { transform: translate3d(0, 100%, 0); visibility: visible; } to { transform: none; } }
@keyframes e-rotateIn { from { transform-origin: center; transform: rotate3d(0, 0, 1, -200deg); opacity: 0; } to { transform-origin: center; transform: none; opacity: 1; } }
@keyframes e-rotateInDownLeft { from { transform-origin: left bottom; transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } to { transform-origin: left bottom; transform: none; opacity: 1; } }
@keyframes e-rotateInDownRight { from { transform-origin: right bottom; transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { transform-origin: right bottom; transform: none; opacity: 1; } }
@keyframes e-rotateInUpLeft { from { transform-origin: left bottom; transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { transform-origin: left bottom; transform: none; opacity: 1; } }
@keyframes e-rotateInUpRight { from { transform-origin: right bottom; transform: rotate3d(0, 0, 1, -90deg); opacity: 0; } to { transform-origin: right bottom; transform: none; opacity: 1; } }
@keyframes e-bounce { from, 20%, 53%, 80%, to { animation-timing-function: cubic-bezier(.215, .61, .355, 1); transform: none; } 40%, 43% { animation-timing-function: cubic-bezier(.755, .05, .855, .06); transform: translate3d(0, -30px, 0); } 70% { animation-timing-function: cubic-bezier(.755, .05, .855, .06); transform: translate3d(0, -15px, 0); } 90% { transform: translate3d(0, -4px, 0); } }
@keyframes e-flash { from, 50%, to { opacity: 1; } 25%, 75% { opacity: 0; } }
@keyframes e-pulse { from { transform: scale3d(1, 1, 1); } 50% { transform: scale3d(1.05, 1.05, 1.05); } to { transform: scale3d(1, 1, 1); } }
@keyframes e-rubberBand { from { transform: scale3d(1, 1, 1); } 30% { transform: scale3d(1.25, .75, 1); } 40% { transform: scale3d(.75, 1.25, 1); } 50% { transform: scale3d(1.15, .85, 1); } 65% { transform: scale3d(.95, 1.05, 1); } 75% { transform: scale3d(1.05, .95, 1); } to { transform: scale3d(1, 1, 1); } }
@keyframes e-shake { from, to { transform: none; } 10%, 30%, 50%, 70%, 90% { transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { transform: translate3d(10px, 0, 0); } }
@keyframes e-headShake { 0% { transform: translateX(0); } 6.5% { transform: translateX(-6px) rotateY(-9deg); } 18.5% { transform: translateX(5px) rotateY(7deg); } 31.5% { transform: translateX(-3px) rotateY(-5deg); } 43.5% { transform: translateX(2px) rotateY(3deg); } 50% { transform: translateX(0); } }
@keyframes e-swing { 20% { transform: rotate3d(0, 0, 1, 15deg); } 40% { transform: rotate3d(0, 0, 1, -10deg); } 60% { transform: rotate3d(0, 0, 1, 5deg); } 80% { transform: rotate3d(0, 0, 1, -5deg); } to { transform: rotate3d(0, 0, 1, 0deg); } }
@keyframes e-tada { from { transform: scale3d(1, 1, 1); } 10%, 20% { transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } to { transform: scale3d(1, 1, 1); } }
@keyframes e-wobble { from { transform: none; } 15% { transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } 30% { transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } 45% { transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } 60% { transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } 75% { transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } to { transform: none; } }
@keyframes e-jello { from, 11.1%, to { transform: none; } 22.2% { transform: skewX(-12.5deg) skewY(-12.5deg); } 33.3% { transform: skewX(6.25deg) skewY(6.25deg); } 44.4% { transform: skewX(-3.125deg) skewY(-3.125deg); } 55.5% { transform: skewX(1.5625deg) skewY(1.5625deg); } 66.6% { transform: skewX(-.78125deg) skewY(-.78125deg); } 77.7% { transform: skewX(.390625deg) skewY(.390625deg); } 88.8% { transform: skewX(-.1953125deg) skewY(-.1953125deg); } }
@keyframes e-lightSpeedIn { from { transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } 60% { transform: skewX(20deg); opacity: 1; } 80% { transform: skewX(-5deg); } to { transform: none; } }
@keyframes e-rollIn { from { opacity: 0; transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } to { opacity: 1; transform: none; } }
@keyframes e-revealUp { from { clip-path: inset(100% 0 0 0); transform: translate3d(0, 30px, 0); } to { clip-path: inset(0 0 0 0); transform: none; } }
@keyframes e-revealLeft { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes e-blurIn { from { opacity: 0; filter: blur(16px); } to { opacity: 1; filter: blur(0); } }
@keyframes e-blurInUp { from { opacity: 0; filter: blur(14px); transform: translate3d(0, 40px, 0); } to { opacity: 1; filter: blur(0); transform: none; } }
@keyframes e-scaleDown { from { opacity: 0; transform: scale(1.18); } to { opacity: 1; transform: none; } }
@keyframes e-flipInX { from { transform: perspective(400px) rotate3d(1, 0, 0, 90deg); animation-timing-function: ease-in; opacity: 0; } 40% { transform: perspective(400px) rotate3d(1, 0, 0, -20deg); animation-timing-function: ease-in; } 60% { transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } to { transform: perspective(400px); } }
@keyframes e-flipInY { from { transform: perspective(400px) rotate3d(0, 1, 0, 90deg); animation-timing-function: ease-in; opacity: 0; } 40% { transform: perspective(400px) rotate3d(0, 1, 0, -20deg); animation-timing-function: ease-in; } 60% { transform: perspective(400px) rotate3d(0, 1, 0, 10deg); opacity: 1; } 80% { transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } to { transform: perspective(400px); } }

/* ==========================================================================
   Animaciones hover (Hover.css)
   ========================================================================== */
[class*='e-hover-'] { transition-duration: .3s; transition-property: transform; transform: translateZ(0); }
.e-hover-grow:hover { transform: scale(1.08); }
.e-hover-shrink:hover { transform: scale(.92); }
.e-hover-pulse:hover { animation: e-h-pulse 1s linear infinite; }
.e-hover-pulse-grow:hover { animation: e-h-pulse-grow .3s linear infinite alternate; }
.e-hover-pulse-shrink:hover { animation: e-h-pulse-shrink .3s linear infinite alternate; }
.e-hover-push:hover { animation: e-h-push .3s linear 1; }
.e-hover-pop:hover { animation: e-h-pop .3s linear 1; }
.e-hover-bounce-in { transition-duration: .5s; }
.e-hover-bounce-in:hover { transform: scale(1.1); transition-timing-function: cubic-bezier(.47, 2.02, .31, -.36); }
.e-hover-bounce-out { transition-duration: .5s; }
.e-hover-bounce-out:hover { transform: scale(.85); transition-timing-function: cubic-bezier(.47, 2.02, .31, -.36); }
.e-hover-rotate:hover { transform: rotate(4deg); }
.e-hover-grow-rotate:hover { transform: scale(1.1) rotate(4deg); }
.e-hover-float:hover { transform: translateY(-8px); }
.e-hover-sink:hover { transform: translateY(8px); }
.e-hover-bob:hover { animation: e-h-bob-float .3s ease-out, e-h-bob 1.5s .3s ease-in-out infinite alternate; }
.e-hover-hang:hover { animation: e-h-hang-sink .3s ease-out, e-h-hang 1.5s .3s ease-in-out infinite alternate; }
.e-hover-skew:hover { transform: skew(-10deg); }
.e-hover-skew-forward { transform-origin: 0 100%; }
.e-hover-skew-forward:hover { transform: skew(-10deg); }
.e-hover-skew-backward { transform-origin: 0 100%; }
.e-hover-skew-backward:hover { transform: skew(10deg); }
.e-hover-wobble-vertical:hover { animation: e-h-wobble-vertical 1s ease-in-out 1; }
.e-hover-wobble-horizontal:hover { animation: e-h-wobble-horizontal 1s ease-in-out 1; }
.e-hover-wobble-to-bottom-right:hover { animation: e-h-wobble-to-bottom-right 1s ease-in-out 1; }
.e-hover-wobble-to-top-right:hover { animation: e-h-wobble-to-top-right 1s ease-in-out 1; }
.e-hover-wobble-top { transform-origin: 0 100%; }
.e-hover-wobble-top:hover { animation: e-h-wobble-top 1s ease-in-out 1; }
.e-hover-wobble-bottom { transform-origin: 100% 0; }
.e-hover-wobble-bottom:hover { animation: e-h-wobble-bottom 1s ease-in-out 1; }
.e-hover-wobble-skew:hover { animation: e-h-wobble-skew 1s ease-in-out 1; }
.e-hover-buzz:hover { animation: e-h-buzz .15s linear infinite; }
.e-hover-buzz-out:hover { animation: e-h-buzz-out .75s linear 1; }
@keyframes e-h-pulse { 25% { transform: scale(1.08); } 75% { transform: scale(.92); } }
@keyframes e-h-pulse-grow { to { transform: scale(1.08); } }
@keyframes e-h-pulse-shrink { to { transform: scale(.92); } }
@keyframes e-h-push { 50% { transform: scale(.85); } 100% { transform: scale(1); } }
@keyframes e-h-pop { 50% { transform: scale(1.15); } }
@keyframes e-h-bob { 0% { transform: translateY(-8px); } 50% { transform: translateY(-4px); } 100% { transform: translateY(-8px); } }
@keyframes e-h-bob-float { 100% { transform: translateY(-8px); } }
@keyframes e-h-hang { 0% { transform: translateY(8px); } 50% { transform: translateY(4px); } 100% { transform: translateY(8px); } }
@keyframes e-h-hang-sink { 100% { transform: translateY(8px); } }
@keyframes e-h-wobble-vertical { 16.65% { transform: translateY(8px); } 33.3% { transform: translateY(-6px); } 49.95% { transform: translateY(4px); } 66.6% { transform: translateY(-2px); } 83.25% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes e-h-wobble-horizontal { 16.65% { transform: translateX(8px); } 33.3% { transform: translateX(-6px); } 49.95% { transform: translateX(4px); } 66.6% { transform: translateX(-2px); } 83.25% { transform: translateX(1px); } 100% { transform: translateX(0); } }
@keyframes e-h-wobble-to-bottom-right { 16.65% { transform: translate(8px, 8px); } 33.3% { transform: translate(-6px, -6px); } 49.95% { transform: translate(4px, 4px); } 66.6% { transform: translate(-2px, -2px); } 83.25% { transform: translate(1px, 1px); } 100% { transform: translate(0, 0); } }
@keyframes e-h-wobble-to-top-right { 16.65% { transform: translate(8px, -8px); } 33.3% { transform: translate(-6px, 6px); } 49.95% { transform: translate(4px, -4px); } 66.6% { transform: translate(-2px, 2px); } 83.25% { transform: translate(1px, -1px); } 100% { transform: translate(0, 0); } }
@keyframes e-h-wobble-top { 16.65% { transform: skew(-12deg); } 33.3% { transform: skew(10deg); } 49.95% { transform: skew(-6deg); } 66.6% { transform: skew(4deg); } 83.25% { transform: skew(-2deg); } 100% { transform: skew(0); } }
@keyframes e-h-wobble-bottom { 16.65% { transform: skew(-12deg); } 33.3% { transform: skew(10deg); } 49.95% { transform: skew(-6deg); } 66.6% { transform: skew(4deg); } 83.25% { transform: skew(-2deg); } 100% { transform: skew(0); } }
@keyframes e-h-wobble-skew { 16.65% { transform: skew(-12deg); } 33.3% { transform: skew(10deg); } 49.95% { transform: skew(-6deg); } 66.6% { transform: skew(4deg); } 83.25% { transform: skew(-2deg); } 100% { transform: skew(0); } }
@keyframes e-h-buzz { 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes e-h-buzz-out { 10%, 30%, 50% { transform: translateX(3px) rotate(2deg); } 20%, 40%, 60% { transform: translateX(-3px) rotate(-2deg); } 70% { transform: translateX(2px) rotate(1deg); } 80% { transform: translateX(-2px) rotate(-1deg); } 90% { transform: translateX(1px) rotate(0); } 100% { transform: translateX(-1px) rotate(0); } }

/* ==========================================================================
   Botones
   ========================================================================== */
.e-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  line-height: 1.2; text-align: center; white-space: nowrap; cursor: pointer; border-style: solid;
  transition: color .3s ease, background-color .3s ease, border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.e-btn:disabled, .e-btn[aria-disabled='true'] { opacity: .45; cursor: not-allowed; }
.e-btn__content { display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.e-btn__icon { display: inline-flex; font-size: 1.15em; transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.e-btn--icon-slide:hover .e-btn__icon--right { transform: translateX(5px); }
.e-btn--icon-slide:hover .e-btn__icon--left { transform: translateX(-5px); }
.e-btn.e-btn--size-xs { padding: 8px 16px; font-size: 11px; }
.e-btn.e-btn--size-sm { padding: 11px 22px; font-size: 12px; }
.e-btn.e-btn--size-lg { padding: 20px 44px; }
.e-btn.e-btn--size-xl { padding: 24px 56px; font-size: 15px; }
/* Estilos predefinidos: .e-btn.e-btn--x le gana al botón global (.e-btn) y cede ante el ajuste de cada widget. */
.e-btn.e-btn--outline { background-color: transparent; color: var(--gc-primary); border-color: currentColor; }
.e-btn.e-btn--outline:hover { background-color: var(--gc-primary); color: #fff; border-color: var(--gc-primary); }
.e-btn.e-btn--ghost { background-color: transparent; border-color: transparent; color: var(--gc-primary); }
.e-btn.e-btn--ghost:hover { background-color: rgba(0, 0, 0, .05); color: var(--gc-primary); border-color: transparent; }
.e-btn.e-btn--underline, .e-btn.e-btn--arrow { background: transparent; border-color: transparent; padding-left: 0; padding-right: 0; color: var(--gc-primary); }
.e-btn--underline .e-btn__text, .e-btn--arrow .e-btn__text { background: linear-gradient(currentColor, currentColor) left bottom / 100% 1px no-repeat; padding-bottom: 4px; transition: background-size .45s cubic-bezier(.2, .7, .2, 1); }
.e-btn--underline:hover .e-btn__text, .e-btn--arrow:hover .e-btn__text { background-size: 0 1px; background-position: right bottom; }
.e-btn.e-btn--underline:hover, .e-btn.e-btn--arrow:hover { background: transparent; border-color: transparent; color: var(--gc-secondary); }
.e-btn--arrow .e-btn__icon--right { transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.e-btn--arrow:hover .e-btn__icon--right { transform: translateX(6px); }
.e-button-wrapper .e-btn { max-width: 100%; }
.w-button[class*='e-align-justify'] .e-btn, .e-button-wrapper[style*='justify'] .e-btn { width: 100%; }
.e-link-btn { background: none; border: 0; padding: 0; text-decoration: underline; color: inherit; font-size: .9em; }

/* ==========================================================================
   Widgets básicos
   ========================================================================== */
.e-heading { margin: 0; }
.e-heading a { color: inherit; }
.e-heading__text { display: inline; }
.e-heading em, .e-slide__heading em, .e-cta__title em { font-style: italic; font-weight: inherit; }

.e-text-editor > :first-child { margin-top: 0; }
.e-text-editor > :last-child { margin-bottom: 0; }
.e-text-editor p { margin: 0 0 1em; }
.e-text-editor ul, .e-text-editor ol { margin: 0 0 1em; padding-left: 1.3em; }
.e-text-editor li { margin-bottom: .35em; }
.e-text-editor a { text-decoration: underline; text-underline-offset: 3px; }
.e-text-editor blockquote { border-left: 2px solid var(--gc-secondary); padding: 4px 0 4px 20px; font-style: italic; margin: 0 0 1em; }
.e-text-editor h2, .e-text-editor h3, .e-text-editor h4 { margin: 1.2em 0 .5em; }
.e-text-editor img { max-width: 100%; }
.e-drop-cap .e-text-editor > p:first-of-type::first-letter { float: left; font-size: 4.2em; line-height: .85; margin: .06em .12em 0 0; font-weight: 500; }
.e-drop-cap-view-stacked .e-drop-cap .e-text-editor > p:first-of-type::first-letter { background: var(--gc-primary); color: #fff; padding: .12em .2em; }
.e-drop-cap-view-framed .e-drop-cap .e-text-editor > p:first-of-type::first-letter { border: 2px solid currentColor; padding: .12em .2em; }

.e-image-figure { margin: 0; }
.e-image-frame { display: inline-block; max-width: 100%; position: relative; }
.w-image { text-align: center; }
.w-image img { display: inline-block; transition: opacity .4s, filter .4s, transform .8s cubic-bezier(.2, .7, .2, 1); }
.e-image-caption { font-size: 13px; color: var(--gc-muted); margin-top: 10px; }

.e-spacer { height: 50px; }

.e-divider { --divider-style: solid; display: flex; align-items: center; width: 100%; padding-block: 15px; gap: 16px; }
.w-divider { --divider-color: var(--gc-border); --divider-weight: 1px; }
.e-divider__line { flex: 1 1 auto; border-top: var(--divider-weight) var(--divider-style) var(--divider-color); }
.e-divider__element { flex: 0 0 auto; display: inline-flex; line-height: 1; color: var(--gc-secondary); }
.e-divider__element svg { width: 18px; height: 18px; }

.e-icon-wrapper { line-height: 0; }
.e-icon { display: inline-flex; align-items: center; justify-content: center; font-size: 48px; color: var(--gc-primary); line-height: 1; transition: color .3s, background-color .3s, border-color .3s, transform .3s; }
.e-icon svg { width: 1em; height: 1em; }
.e-icon--view-stacked { background: var(--gc-primary); color: #fff; padding: .5em; }
.e-icon--view-framed { border: 2px solid currentColor; padding: .5em; background: transparent; }
.e-icon--view-stacked.e-icon--shape-circle, .e-icon--view-framed.e-icon--shape-circle { border-radius: 50%; }
.e-icon--view-stacked.e-icon--shape-rounded, .e-icon--view-framed.e-icon--shape-rounded { border-radius: 12px; }
.w-icon { width: auto; }
.w-icon .e-icon { font-size: 22px; }

.e-icon-box, .e-image-box { display: flex; flex-direction: column; gap: 16px; }
.e-icon-box__icon { flex: 0 0 auto; line-height: 0; }
.e-icon-box .e-icon { font-size: 40px; }
.e-icon-box__content, .e-image-box__content { flex: 1 1 auto; min-width: 0; }
.e-icon-box__title, .e-image-box__title { margin: 0 0 8px; }
.e-icon-box__title a, .e-image-box__title a { color: inherit; }
.e-icon-box__desc, .e-image-box__desc { margin: 0; }
.e-image-box__img { display: block; overflow: hidden; flex: 0 0 auto; width: 100%; }
.e-image-box__img img { display: block; width: 100%; transition: transform 1s cubic-bezier(.2, .7, .2, 1); }

.e-icon-list { --list-gap: 10px; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--list-gap); }
.e-icon-list--inline { flex-direction: row; flex-wrap: wrap; column-gap: calc(var(--list-gap) * 2.4); }
.e-icon-list__item { border-bottom: var(--list-divider, none); padding-bottom: 0; }
.e-icon-list__item:not(:last-child)[style], .w-icon-list .e-icon-list__item:not(:last-child) { padding-bottom: calc(var(--list-divider, 0px) * 0); }
.e-icon-list__link { display: inline-flex; align-items: center; gap: 10px; color: inherit; }
.e-icon-list__icon { display: inline-flex; flex: 0 0 auto; font-size: 18px; color: var(--gc-primary); transition: color .3s; }
.e-icon-list__icon svg { width: 1em; height: 1em; }
.e-icon-list__text { transition: color .3s; }

.e-alert { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 16px 48px 16px 18px; border: 1px solid; border-left-width: 4px; }
.e-alert--info { background: #eef4fb; border-color: #cfe0f3; border-left-color: #3b82c4; }
.e-alert--success { background: #eef8f1; border-color: #cde9d6; border-left-color: #2f9e5b; }
.e-alert--warning { background: #fdf7ea; border-color: #f2e2b8; border-left-color: #d49b21; }
.e-alert--danger { background: #fcefee; border-color: #f2cfcc; border-left-color: #c7473d; }
.e-alert__title { font-weight: 700; }
.e-alert__dismiss { position: absolute; top: 12px; right: 12px; background: none; border: 0; font-size: 18px; line-height: 0; opacity: .5; }
.e-alert__dismiss:hover { opacity: 1; }

.e-star-rating { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.w-star-rating[class] .e-star-rating { justify-content: inherit; }
.e-star-rating__stars { position: relative; display: inline-block; color: #d9d3c8; font-size: 18px; letter-spacing: 2px; line-height: 1; white-space: nowrap; }
.e-star-rating__fill { position: absolute; top: 0; left: 0; overflow: hidden; color: #c9a227; }
.e-map iframe { display: block; width: 100%; height: 400px; border: 0; filter: grayscale(100%); transition: filter .4s; }

/* Video */
.e-video { position: relative; overflow: hidden; background: #000; aspect-ratio: 16 / 9; }
.e-video--ratio-219 { aspect-ratio: 21 / 9; } .e-video--ratio-43 { aspect-ratio: 4 / 3; } .e-video--ratio-32 { aspect-ratio: 3 / 2; } .e-video--ratio-11 { aspect-ratio: 1; } .e-video--ratio-916 { aspect-ratio: 9 / 16; }
.e-video__el { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.e-video__empty { position: absolute; inset: 0; display: grid; place-items: center; color: #aaa; font-size: 14px; }
.e-video__overlay { position: absolute; inset: 0; border: 0; padding: 0; background: #111 center / cover no-repeat; display: grid; place-items: center; }
.e-video__play { display: grid; place-items: center; width: 2.4em; height: 2.4em; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--gc-primary); font-size: 36px; transition: transform .4s cubic-bezier(.2, .7, .2, 1); box-shadow: 0 10px 40px rgba(0, 0, 0, .25); }
.e-video__play svg { width: .9em; height: .9em; margin-left: .1em; }
.e-video__overlay:hover .e-video__play { transform: scale(1.1); }

/* ==========================================================================
   Pestañas / acordeón / contador / progreso / testimonios
   ========================================================================== */
.e-tabs { --tabs-border: var(--gc-border); --tabs-indicator: var(--gc-primary); display: flex; flex-direction: column; }
.e-tabs__nav { display: flex; gap: 28px; border-bottom: 1px solid var(--tabs-border); overflow-x: auto; scrollbar-width: none; }
.e-tabs__title { position: relative; display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; padding: 14px 0; color: var(--gc-muted); white-space: nowrap; font-weight: 600; font-size: 14px; letter-spacing: .02em; transition: color .3s; }
.e-tabs__title::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--tabs-indicator); transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
.e-tabs__title.is-active { color: var(--gc-primary); }
.e-tabs__title.is-active::after { transform: scaleX(1); }
.e-tabs__icon { width: 1em; height: 1em; }
.e-tabs__content { padding: 28px 0 0; animation: e-fadeIn .5s ease; }
.e-tabs--vertical { flex-direction: row; gap: 40px; }
.e-tabs--vertical .e-tabs__nav { flex-direction: column; border-bottom: 0; border-right: 1px solid var(--tabs-border); gap: 0; flex: 0 0 220px; }
.e-tabs--vertical .e-tabs__title { padding: 14px 20px 14px 0; }
.e-tabs--vertical .e-tabs__title::after { left: auto; right: -1px; top: 0; bottom: 0; width: 2px; height: auto; transform: scaleY(0); }
.e-tabs--vertical .e-tabs__title.is-active::after { transform: scaleY(1); }
.e-tabs--vertical .e-tabs__panels { flex: 1; }
.e-tabs--vertical .e-tabs__content { padding-top: 12px; }
@media (max-width: 767px) { .e-tabs--vertical { flex-direction: column; } .e-tabs--vertical .e-tabs__nav { flex-direction: row; border-right: 0; border-bottom: 1px solid var(--tabs-border); flex-basis: auto; } }

.e-accordion { display: flex; flex-direction: column; }
.e-accordion__item { border-bottom: 1px solid var(--gc-border); }
.e-accordion__heading { margin: 0; font: inherit; }
.e-accordion__title { display: flex; align-items: center; gap: 16px; width: 100%; padding: 22px 0; background: none; border: 0; text-align: left; color: var(--gc-primary); font-size: 17px; font-weight: 600; transition: color .3s; }
.e-accordion--icon-left .e-accordion__title { flex-direction: row-reverse; justify-content: flex-end; }
.e-accordion__text { flex: 1 1 auto; }
.e-accordion--icon-left .e-accordion__text { flex: 0 1 auto; }
.e-accordion__icon { display: inline-flex; flex: 0 0 auto; font-size: 18px; transition: transform .4s cubic-bezier(.2, .7, .2, 1); }
.e-accordion__icon svg { width: 1em; height: 1em; }
.e-accordion__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s cubic-bezier(.2, .7, .2, 1); }
.e-accordion__item.is-open .e-accordion__panel { grid-template-rows: 1fr; }
.e-accordion__panel-inner { overflow: hidden; }
.e-accordion__content { padding: 0 0 22px; color: var(--gc-text); }
.e-accordion__content > :last-child { margin-bottom: 0; }

.e-counter { display: flex; flex-direction: column; gap: 8px; }
.e-counter__number-wrapper { display: flex; justify-content: inherit; align-items: baseline; font-size: 56px; font-weight: 500; line-height: 1; color: var(--gc-primary); font-variant-numeric: tabular-nums; }
.w-counter .e-counter { align-items: stretch; }
.w-counter .e-counter__number-wrapper { justify-content: center; }
.e-counter__title { font-size: 15px; }

.e-progress { display: flex; flex-direction: column; gap: 10px; }
.e-progress__title { font-weight: 600; font-size: 14px; }
.e-progress__wrapper { position: relative; height: 6px; background: var(--gc-border); overflow: hidden; }
.e-progress__bar { position: relative; height: 100%; width: 0; background: var(--gc-primary); color: #fff; display: flex; align-items: center; justify-content: space-between; padding: 0 10px; font-size: 11px; transition: width 1.6s cubic-bezier(.2, .7, .2, 1); white-space: nowrap; }
.e-progress__percent { margin-left: auto; }

.e-testimonial { display: flex; flex-direction: column; gap: 18px; height: 100%; margin: 0; }
.e-testimonial--card { background: #fff; padding: 36px; border: 1px solid var(--gc-border); }
.e-testimonial__quote { font-size: 30px; color: var(--gc-secondary); line-height: 0; }
.e-testimonial__quote svg { width: 1em; height: 1em; }
.e-testimonial__rating { color: #c9a227; letter-spacing: 3px; font-size: 15px; }
.e-testimonial__content { margin: 0; font-size: 19px; line-height: 1.55; color: var(--gc-primary); flex: 1; }
.e-testimonial__meta { display: flex; align-items: center; gap: 14px; }
.e-testimonial--stacked .e-testimonial__meta { flex-direction: column; }
.e-testimonial__image { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.e-testimonial__details { display: flex; flex-direction: column; gap: 2px; }
.e-testimonial__name { font-weight: 700; font-size: 14px; color: var(--gc-primary); }
.e-testimonial__job { font-size: 13px; color: var(--gc-muted); }

.e-social-icons { display: flex; flex-wrap: wrap; gap: 10px; }
.e-social-icon { display: inline-grid; place-items: center; font-size: 16px; padding: .7em; line-height: 1; background: var(--gc-primary); color: #fff; transition: all .3s ease; }
.e-social-icon svg { width: 1em; height: 1em; }
.e-social-icon--circle { border-radius: 50%; }
.e-social-icon--rounded { border-radius: 10%; }

/* ==========================================================================
   Carrusel
   ========================================================================== */
.e-carousel { --spv: 3; --gap: 24px; --speed: 600ms; position: relative; }
.e-carousel__track { display: flex; gap: var(--gap); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.e-carousel__track::-webkit-scrollbar { display: none; }
.e-carousel__slide { flex: 0 0 calc((100% - (var(--spv) - 1) * var(--gap)) / var(--spv)); scroll-snap-align: start; min-width: 0; }
.e-carousel--fade .e-carousel__track { display: grid; overflow: hidden; }
.e-carousel--fade .e-carousel__slide { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity var(--speed) ease, visibility var(--speed); }
.e-carousel--fade .e-carousel__slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.e-carousel__arrow { position: absolute; top: 50%; z-index: 3; transform: translateY(-50%); display: grid; place-items: center; width: 2.6em; height: 2.6em; font-size: 18px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--gc-primary); box-shadow: 0 6px 24px rgba(0, 0, 0, .08); transition: background .3s, color .3s, transform .3s; }
.e-carousel__arrow svg { width: 1em; height: 1em; }
.e-carousel__arrow:hover { background: var(--gc-primary); color: #fff; }
.e-carousel__arrow--prev { left: 14px; }
.e-carousel__arrow--next { right: 14px; }
.e-arrows-outside .e-carousel__arrow--prev { left: -22px; }
.e-arrows-outside .e-carousel__arrow--next { right: -22px; }
.e-arrows-bottom .e-carousel { padding-bottom: 64px; }
.e-arrows-bottom .e-carousel__arrow { top: auto; bottom: 0; transform: none; }
.e-arrows-bottom .e-carousel__arrow--prev { left: auto; right: 64px; }
.e-arrows-bottom .e-carousel__arrow--next { right: 0; }
@media (max-width: 767px) { .e-arrows-outside .e-carousel__arrow--prev { left: 6px; } .e-arrows-outside .e-carousel__arrow--next { right: 6px; } }
.e-carousel__dots { display: flex; justify-content: center; gap: 10px; margin-top: 28px; }
.e-carousel__dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 99px; background: var(--gc-border); transition: all .35s ease; }
.e-carousel__dot.is-active { background: var(--gc-primary); width: 26px; }
.e-gallery-image { display: block; overflow: hidden; position: relative; }
.e-gallery-image img { display: block; width: 100%; transition: transform 1s cubic-bezier(.2, .7, .2, 1), filter .5s; }
.e-img-hover-zoom .e-gallery-image:hover img { transform: scale(1.08); }
.e-img-hover-zoom-rotate .e-gallery-image:hover img { transform: scale(1.12) rotate(2deg); }
.e-img-hover-lift .e-gallery-image { transition: transform .5s cubic-bezier(.2, .7, .2, 1), box-shadow .5s; }
.e-img-hover-lift .e-gallery-image:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(0, 0, 0, .12); }

.e-gallery { --columns: 3; --gap: 12px; display: grid; grid-template-columns: repeat(var(--columns), minmax(0, 1fr)); gap: var(--gap); }
.e-gallery--masonry { display: block; columns: var(--columns); column-gap: var(--gap); }
.e-gallery--masonry .e-gallery-image { break-inside: avoid; margin-bottom: var(--gap); }
.e-gallery-image::after { content: ''; position: absolute; inset: 0; background: var(--overlay, transparent); opacity: 0; transition: opacity .4s; pointer-events: none; }
.e-gallery-image:hover::after { opacity: 1; }
.e-gallery-image__caption { position: absolute; left: 16px; right: 16px; bottom: 14px; z-index: 1; color: #fff; font-size: 14px; opacity: 0; transform: translateY(8px); transition: all .4s ease; }
.e-gallery-image:hover .e-gallery-image__caption { opacity: 1; transform: none; }

/* ==========================================================================
   Widgets premium
   ========================================================================== */
/* Titular animado */
.e-ah { margin: 0; }
.e-ah a { color: inherit; }
.e-ah__highlighted { position: relative; display: inline-block; z-index: 1; }
.e-ah__highlighted .e-ah__text { position: relative; z-index: 1; }
.e-ah__highlighted svg { position: absolute; top: 50%; left: 50%; width: calc(100% + 20px); height: calc(100% + 20px); transform: translate(-50%, -50%); overflow: visible; z-index: 0; pointer-events: none; }
.e-ah__highlighted svg path { fill: none; stroke: var(--gc-secondary); stroke-width: 8; stroke-dasharray: 1500; stroke-dashoffset: 1500; stroke-linecap: round; stroke-linejoin: round; }
.e-ah--animated svg path { animation: e-ah-draw var(--ah-duration, 1.2s) cubic-bezier(.6, .2, .3, 1) forwards; }
@keyframes e-ah-draw { to { stroke-dashoffset: 0; } }
.e-ah__words { display: inline-grid; vertical-align: bottom; perspective: 300px; }
.e-ah__word { grid-area: 1 / 1; white-space: nowrap; }
.e-ah__word.is-hidden { opacity: 0; pointer-events: none; }
.e-ah--clip .e-ah__word { transition: clip-path .6s cubic-bezier(.6, .2, .3, 1); }
.e-ah--clip .e-ah__word.is-visible { clip-path: inset(0 0 0 0); opacity: 1; }
.e-ah--clip .e-ah__word.is-hidden { clip-path: inset(0 100% 0 0); opacity: 1; }
.e-ah--flip .e-ah__word { transform-origin: 50% 100%; backface-visibility: hidden; transition: transform .6s, opacity .6s; }
.e-ah--flip .e-ah__word.is-visible { transform: rotateX(0); opacity: 1; }
.e-ah--flip .e-ah__word.is-hidden { transform: rotateX(180deg); }
.e-ah--drop-in .e-ah__word.is-visible { animation: e-ah-drop-in .6s both; }
.e-ah--drop-in .e-ah__word.is-hidden { animation: e-ah-drop-out .6s both; }
.e-ah--slide .e-ah__word.is-visible { animation: e-ah-slide-in .6s both; }
.e-ah--slide .e-ah__word.is-hidden { animation: e-ah-slide-out .6s both; }
.e-ah--slide-down .e-ah__word.is-visible { animation: e-ah-slide-down-in .6s both; }
.e-ah--slide-down .e-ah__word.is-hidden { animation: e-ah-slide-down-out .6s both; }
.e-ah__letter { display: inline-block; }
.e-ah--swirl .is-visible .e-ah__letter { animation: e-ah-swirl-in .6s both; }
.e-ah--swirl .is-hidden .e-ah__letter { animation: e-ah-swirl-out .6s both; }
.e-ah--blinds .is-visible .e-ah__letter { animation: e-ah-blinds-in .6s both; transform-origin: 50% 50% -20px; }
.e-ah--blinds .is-hidden .e-ah__letter { animation: e-ah-blinds-out .6s both; }
.e-ah--wave .is-visible .e-ah__letter { animation: e-ah-wave-in .6s both; }
.e-ah--wave .is-hidden .e-ah__letter { animation: e-ah-wave-out .4s both; }
@keyframes e-ah-drop-in { from { opacity: 0; transform: translateY(-60%); } to { opacity: 1; transform: none; } }
@keyframes e-ah-drop-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(60%); } }
@keyframes e-ah-slide-in { from { opacity: 0; transform: translateY(100%); } to { opacity: 1; transform: none; } }
@keyframes e-ah-slide-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(-100%); } }
@keyframes e-ah-slide-down-in { from { opacity: 0; transform: translateY(-100%); } to { opacity: 1; transform: none; } }
@keyframes e-ah-slide-down-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(100%); } }
@keyframes e-ah-swirl-in { from { opacity: 0; transform: translateZ(-20px) rotateX(90deg); } 60% { opacity: 1; transform: translateZ(-20px) rotateX(-10deg); } to { opacity: 1; transform: translateZ(-20px) rotateX(0); } }
@keyframes e-ah-swirl-out { from { opacity: 1; transform: translateZ(-20px) rotateX(0); } to { opacity: 0; transform: translateZ(-20px) rotateX(-90deg); } }
@keyframes e-ah-blinds-in { from { opacity: 0; transform: rotateY(-90deg); } to { opacity: 1; transform: rotateY(0); } }
@keyframes e-ah-blinds-out { from { opacity: 1; transform: rotateY(0); } to { opacity: 0; transform: rotateY(90deg); } }
@keyframes e-ah-wave-in { 0% { opacity: 0; transform: scale(0); } 60% { opacity: 1; transform: scale(1.2); } to { opacity: 1; transform: scale(1); } }
@keyframes e-ah-wave-out { to { opacity: 0; transform: scale(0); } }
.e-ah__typing { display: inline-block; position: relative; }
.e-ah__typing::after { content: ''; position: absolute; right: -6px; top: 10%; height: 80%; width: 2px; background: currentColor; animation: e-ah-caret .8s steps(1) infinite; }
.e-ah__typing.is-selected .e-ah__text { background: var(--gc-secondary); color: #fff; }
@keyframes e-ah-caret { 50% { opacity: 0; } }

/* Cuenta regresiva */
.e-countdown { display: flex; gap: 12px; margin: 0 auto; width: 100%; }
.e-countdown__item { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 18px 8px; background: var(--gc-primary); color: #fff; text-align: center; }
.e-countdown__digits { font-size: 42px; line-height: 1; font-weight: 500; font-variant-numeric: tabular-nums; }
.e-countdown__label { margin-top: 8px; font-size: 11px; text-transform: uppercase; letter-spacing: .15em; }
.e-countdown--inline .e-countdown__item { flex-direction: row; gap: 6px; align-items: baseline; }
.e-countdown--inline .e-countdown__label { margin: 0; }
.e-countdown__message { text-align: center; }

/* Call to action */
.e-cta { --cta-duration: 1200ms; position: relative; display: flex; overflow: hidden; color: #fff; }
a.e-cta { color: #fff; }
.e-cta__bg-wrapper { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
.e-cta__bg { position: absolute; inset: 0; background: #2b2622 center / cover no-repeat; transition: transform var(--cta-duration) cubic-bezier(.2, .7, .2, 1); }
.e-cta__bg-overlay { position: absolute; inset: 0; transition: background-color var(--cta-duration); }
.e-cta__content { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; min-height: 460px; padding: 48px; gap: 0; }
.e-cta__item { transition: transform var(--cta-duration) cubic-bezier(.2, .7, .2, 1), opacity var(--cta-duration); }
.e-cta__eyebrow { font-size: 12px; text-transform: uppercase; letter-spacing: .2em; margin-bottom: 14px; opacity: .85; }
.e-cta__title { font-size: 40px; line-height: 1.1; margin-bottom: 16px; color: inherit; }
.e-cta__description { margin-bottom: 26px; opacity: .85; }
.e-cta__icon { font-size: 40px; margin-bottom: 16px; }
.e-cta__icon svg { width: 1em; height: 1em; }
.e-cta__button { align-self: flex-start; }
.e-cta__content[style*='center'] .e-cta__button { align-self: center; }
.e-cta--classic { flex-direction: column; color: var(--gc-primary); }
a.e-cta--classic { color: var(--gc-primary); }
.e-cta--classic .e-cta__bg-wrapper { position: relative; min-height: 280px; flex: 1 1 50%; }
.e-cta--classic .e-cta__content { min-height: 0; background: #fff; justify-content: center; }
.e-cta--bg-zoom-in:hover .e-cta__bg { transform: scale(1.1); }
.e-cta--bg-zoom-out .e-cta__bg { transform: scale(1.1); }
.e-cta--bg-zoom-out:hover .e-cta__bg { transform: scale(1); }
.e-cta--bg-move-left .e-cta__bg { transform: scale(1.15); }
.e-cta--bg-move-left:hover .e-cta__bg { transform: scale(1.15) translateX(-6%); }
.e-cta--bg-move-right .e-cta__bg { transform: scale(1.15); }
.e-cta--bg-move-right:hover .e-cta__bg { transform: scale(1.15) translateX(6%); }
.e-cta--bg-move-up .e-cta__bg { transform: scale(1.15); }
.e-cta--bg-move-up:hover .e-cta__bg { transform: scale(1.15) translateY(-6%); }
.e-cta--bg-move-down .e-cta__bg { transform: scale(1.15); }
.e-cta--bg-move-down:hover .e-cta__bg { transform: scale(1.15) translateY(6%); }
.e-cta--content-fade-in .e-cta__item { opacity: 0; }
.e-cta--content-fade-in:hover .e-cta__item { opacity: 1; }
.e-cta--content-slide-up .e-cta__item { opacity: 0; transform: translateY(30px); }
.e-cta--content-slide-up:hover .e-cta__item { opacity: 1; transform: none; }
.e-cta--content-grow .e-cta__item { transform: scale(.85); opacity: 0; }
.e-cta--content-grow:hover .e-cta__item { transform: none; opacity: 1; }
.e-cta__content .e-cta__item:nth-child(2) { transition-delay: 60ms; }
.e-cta__content .e-cta__item:nth-child(3) { transition-delay: 120ms; }
.e-cta__content .e-cta__item:nth-child(4) { transition-delay: 180ms; }
.e-ribbon { position: absolute; top: 0; z-index: 2; width: 150px; height: 150px; overflow: hidden; pointer-events: none; }
.e-ribbon--right { right: 0; }
.e-ribbon--left { left: 0; transform: rotate(-90deg); }
.e-ribbon__inner { position: absolute; top: 28px; right: -46px; width: 200px; padding: 8px 0; transform: rotate(45deg); text-align: center; background: var(--gc-secondary); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* Flip box */
.e-flip-box { position: relative; height: 320px; perspective: 1400px; outline: none; }
.e-flip-box__side { position: absolute; inset: 0; overflow: hidden; background: var(--gc-primary) center / cover no-repeat; color: #fff; transition: transform .8s cubic-bezier(.2, .7, .2, 1), opacity .8s; }
.e-flip-box__layer { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 14px; height: 100%; padding: 36px; text-align: center; }
.e-flip-box__icon { font-size: 40px; line-height: 0; }
.e-flip-box__icon svg { width: 1em; height: 1em; }
.e-flip-box__image { max-width: 50%; }
.e-flip-box__title { margin: 0; font-size: 26px; color: inherit; }
.e-flip-box__desc { opacity: .85; }
.e-flip-box__button { margin-top: 8px; }
/* backface-visibility no se hereda dentro de un contexto 3D: se oculta también la capa interna para que el reverso nunca se transparente. */
.e-flip-box--effect-flip .e-flip-box__side, .e-flip-box--effect-flip .e-flip-box__layer { -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.e-flip-box--effect-flip.e-flip-box--direction-up .e-flip-box__back { transform: rotateX(-180deg); }
.e-flip-box--effect-flip.e-flip-box--direction-up:is(:hover, :focus-within) .e-flip-box__front { transform: rotateX(180deg); }
.e-flip-box--effect-flip.e-flip-box--direction-down .e-flip-box__back { transform: rotateX(180deg); }
.e-flip-box--effect-flip.e-flip-box--direction-down:is(:hover, :focus-within) .e-flip-box__front { transform: rotateX(-180deg); }
.e-flip-box--effect-flip.e-flip-box--direction-left .e-flip-box__back { transform: rotateY(180deg); }
.e-flip-box--effect-flip.e-flip-box--direction-left:is(:hover, :focus-within) .e-flip-box__front { transform: rotateY(-180deg); }
.e-flip-box--effect-flip.e-flip-box--direction-right .e-flip-box__back { transform: rotateY(-180deg); }
.e-flip-box--effect-flip.e-flip-box--direction-right:is(:hover, :focus-within) .e-flip-box__front { transform: rotateY(180deg); }
.e-flip-box--effect-flip:is(:hover, :focus-within) .e-flip-box__back { transform: none; }
.e-flip-box--3d .e-flip-box__layer { transform: translateZ(90px) scale(.91); }
.e-flip-box--3d .e-flip-box__side { transform-style: preserve-3d; overflow: visible; }
.e-flip-box--effect-slide .e-flip-box__back, .e-flip-box--effect-push .e-flip-box__back { z-index: 1; }
.e-flip-box--effect-slide.e-flip-box--direction-up .e-flip-box__back, .e-flip-box--effect-push.e-flip-box--direction-up .e-flip-box__back { transform: translateY(100%); }
.e-flip-box--effect-slide.e-flip-box--direction-down .e-flip-box__back, .e-flip-box--effect-push.e-flip-box--direction-down .e-flip-box__back { transform: translateY(-100%); }
.e-flip-box--effect-slide.e-flip-box--direction-left .e-flip-box__back, .e-flip-box--effect-push.e-flip-box--direction-left .e-flip-box__back { transform: translateX(100%); }
.e-flip-box--effect-slide.e-flip-box--direction-right .e-flip-box__back, .e-flip-box--effect-push.e-flip-box--direction-right .e-flip-box__back { transform: translateX(-100%); }
.e-flip-box--effect-slide:is(:hover, :focus-within) .e-flip-box__back, .e-flip-box--effect-push:is(:hover, :focus-within) .e-flip-box__back { transform: none; }
.e-flip-box--effect-push.e-flip-box--direction-up:is(:hover, :focus-within) .e-flip-box__front { transform: translateY(-100%); }
.e-flip-box--effect-push.e-flip-box--direction-down:is(:hover, :focus-within) .e-flip-box__front { transform: translateY(100%); }
.e-flip-box--effect-push.e-flip-box--direction-left:is(:hover, :focus-within) .e-flip-box__front { transform: translateX(-100%); }
.e-flip-box--effect-push.e-flip-box--direction-right:is(:hover, :focus-within) .e-flip-box__front { transform: translateX(100%); }
.e-flip-box--effect-zoom-in .e-flip-box__back { transform: scale(.7); opacity: 0; z-index: 1; }
.e-flip-box--effect-zoom-in:is(:hover, :focus-within) .e-flip-box__back { transform: none; opacity: 1; }
.e-flip-box--effect-zoom-out .e-flip-box__front { z-index: 1; }
.e-flip-box--effect-zoom-out:is(:hover, :focus-within) .e-flip-box__front { transform: scale(.7); opacity: 0; }
.e-flip-box--effect-fade .e-flip-box__back { opacity: 0; z-index: 1; }
.e-flip-box--effect-fade:is(:hover, :focus-within) .e-flip-box__back { opacity: 1; }

/* Tabla de precios */
.e-price-table { position: relative; overflow: hidden; display: flex; flex-direction: column; text-align: center; background: #fff; border: 1px solid var(--gc-border); }
.e-price-table__header { padding: 32px 24px 16px; }
.e-price-table__heading { margin: 0; font-size: 26px; }
.e-price-table__subheading { display: block; margin-top: 6px; color: var(--gc-muted); font-size: 14px; }
.e-price-table__price { padding: 16px 24px 24px; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 8px; }
.e-price-table__amount { font-size: 56px; line-height: 1; font-weight: 500; color: var(--gc-primary); }
.e-price-table__currency { font-size: .45em; vertical-align: top; margin-right: 2px; }
.e-price-table__original { text-decoration: line-through; color: var(--gc-muted); font-size: 18px; }
.e-price-table__period { width: 100%; color: var(--gc-muted); font-size: 14px; }
.e-price-table__features { --divider-color: var(--gc-border); list-style: none; margin: 0; padding: 0 28px; text-align: left; }
.e-price-table__feature { display: flex; align-items: center; gap: 10px; padding: 12px 0; border-top: 1px solid var(--divider-color); }
.e-price-table__feature svg { flex: 0 0 auto; width: 16px; height: 16px; color: var(--gc-secondary); }
.e-price-table__footer { padding: 28px; margin-top: auto; display: flex; flex-direction: column; gap: 12px; align-items: center; }
.e-price-table__info { font-size: 13px; color: var(--gc-muted); }

/* Slides (hero) */
.e-slides.e-carousel { --spv: 1; --gap: 0px; }
.e-slides .e-carousel__arrow { background: transparent; color: #fff; box-shadow: none; font-size: 22px; }
.e-slides .e-carousel__arrow:hover { background: rgba(255, 255, 255, .15); color: #fff; }
.e-slides .e-carousel__dots { position: absolute; left: 0; right: 0; bottom: 26px; margin: 0; z-index: 3; }
.e-slides .e-carousel__dot { background: rgba(255, 255, 255, .45); }
.e-slides .e-carousel__dot.is-active { background: #fff; }
.e-slide { position: relative; overflow: hidden; height: 88vh; min-height: 420px; background: #2b2622; color: #fff; }
.e-slide__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.e-carousel__slide:not(.is-active) .e-slide__bg.e-kenburns { animation: none; }
.e-slide__bg.e-kenburns--in, .e-slide__bg.e-kenburns--out { animation-duration: 10s; }
.e-slide__overlay { position: absolute; inset: 0; }
.e-slide__inner { position: relative; z-index: 1; height: 100%; display: flex; padding: 60px 72px; max-width: calc(var(--content-width, 1280px) + 144px); margin: 0 auto; }
.e-slide--h-left { justify-content: flex-start; }
.e-slide--h-center { justify-content: center; }
.e-slide--h-right { justify-content: flex-end; }
.e-slide--v-top { align-items: flex-start; }
.e-slide--v-middle { align-items: center; }
.e-slide--v-bottom { align-items: flex-end; }
.e-slide__content { max-width: 720px; }
.e-slide__eyebrow { margin-bottom: 18px; font-size: 12px; letter-spacing: .24em; text-transform: uppercase; }
.e-slide__heading { font-size: 88px; line-height: .95; margin-bottom: 20px; color: #fff; }
.e-slide__description { font-size: 18px; margin-bottom: 32px; max-width: 520px; }
.e-slide__content[style*='center'] .e-slide__description { margin-left: auto; margin-right: auto; }
.e-slide__content[style*='right'] .e-slide__description { margin-left: auto; }
.e-carousel__slide.is-active.e-slide-anim-fadeInUp .e-slide__content > * { animation: e-fadeInUp 1s cubic-bezier(.2, .65, .3, 1) both; }
.e-carousel__slide.is-active.e-slide-anim-fadeIn .e-slide__content > * { animation: e-fadeIn 1.2s ease both; }
.e-carousel__slide.is-active.e-slide-anim-zoomIn .e-slide__content > * { animation: e-scaleDown 1.2s cubic-bezier(.2, .65, .3, 1) both; }
.e-carousel__slide.is-active.e-slide-anim-blurInUp .e-slide__content > * { animation: e-blurInUp 1.2s cubic-bezier(.2, .65, .3, 1) both; }
.e-carousel__slide.is-active.e-slide-anim-revealUp .e-slide__content > * { animation: e-revealUp 1.1s cubic-bezier(.6, .1, .2, 1) both; }
.e-carousel__slide.is-active .e-slide__content > :nth-child(2) { animation-delay: .15s; }
.e-carousel__slide.is-active .e-slide__content > :nth-child(3) { animation-delay: .3s; }
.e-carousel__slide.is-active .e-slide__content > :nth-child(4) { animation-delay: .45s; }
@media (max-width: 767px) { .e-slide__inner { padding: 40px 24px 64px; } .e-slide__heading { font-size: 46px; } }

/* Marquesina */
.e-marquee { --marquee-duration: 30s; --marquee-gap: 40px; overflow: hidden; white-space: nowrap; display: flex; }
.e-marquee--fade { -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.e-marquee__track { display: flex; width: max-content; animation: e-marquee var(--marquee-duration) linear infinite; }
.e-marquee--right .e-marquee__track { animation-direction: reverse; }
.e-marquee--pause:hover .e-marquee__track { animation-play-state: paused; }
.e-marquee__group { display: flex; align-items: center; flex-shrink: 0; }
.e-marquee__item { display: inline-flex; align-items: center; gap: var(--marquee-gap); padding-right: var(--marquee-gap); }
.e-marquee__link { display: inline-flex; align-items: center; color: inherit; }
.e-marquee__sep { display: inline-flex; font-size: .6em; line-height: 0; }
.e-marquee__sep svg { width: 1em; height: 1em; }
.e-marquee img { height: 36px; width: auto; }
@keyframes e-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .e-marquee__track { animation-duration: 180s; } }

/* Hotspots */
.e-hotspots { position: relative; }
.e-hotspots > img { display: block; width: 100%; }
.e-hotspot { --pulse-color: rgba(255, 255, 255, .55); position: absolute; transform: translate(-50%, -50%); z-index: 1; }
.e-hotspot:hover, .e-hotspot:focus-within { z-index: 5; }
.e-hotspot__dot { position: relative; display: block; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 4px 16px rgba(0, 0, 0, .25); }
.e-hotspot__dot::after { content: ''; position: absolute; inset: 35%; border-radius: 50%; background: var(--gc-primary); }
.e-hotspot--pulse .e-hotspot__dot::before { content: ''; position: absolute; inset: -8px; border-radius: 50%; border: 2px solid var(--pulse-color); animation: e-hotspot-pulse 2s ease-out infinite; }
@keyframes e-hotspot-pulse { from { transform: scale(.5); opacity: 1; } to { transform: scale(1.6); opacity: 0; } }
.e-hotspot__tooltip { position: absolute; min-width: 180px; padding: 12px 16px; background: var(--gc-primary); color: #fff; font-size: 13px; line-height: 1.4; opacity: 0; visibility: hidden; transition: all .3s cubic-bezier(.2, .7, .2, 1); pointer-events: none; }
.e-hotspot__link { display: flex; flex-direction: column; gap: 2px; color: inherit; }
.e-hotspot__link strong { font-size: 14px; }
.e-hotspot:is(:hover, :focus-within) .e-hotspot__tooltip { opacity: 1; visibility: visible; pointer-events: auto; }
.e-hotspot--tip-top .e-hotspot__tooltip { bottom: calc(100% + 14px); left: 50%; transform: translate(-50%, 8px); }
.e-hotspot--tip-top:is(:hover, :focus-within) .e-hotspot__tooltip { transform: translate(-50%, 0); }
.e-hotspot--tip-bottom .e-hotspot__tooltip { top: calc(100% + 14px); left: 50%; transform: translate(-50%, -8px); }
.e-hotspot--tip-bottom:is(:hover, :focus-within) .e-hotspot__tooltip { transform: translate(-50%, 0); }
.e-hotspot--tip-right .e-hotspot__tooltip { left: calc(100% + 14px); top: 50%; transform: translate(-8px, -50%); }
.e-hotspot--tip-right:is(:hover, :focus-within) .e-hotspot__tooltip { transform: translate(0, -50%); }
.e-hotspot--tip-left .e-hotspot__tooltip { right: calc(100% + 14px); top: 50%; transform: translate(8px, -50%); }
.e-hotspot--tip-left:is(:hover, :focus-within) .e-hotspot__tooltip { transform: translate(0, -50%); }

/* ==========================================================================
   Menú de navegación
   ========================================================================== */
.e-nav-menu { --pointer-color: var(--gc-secondary); --pointer-width: 1px; --toggle-align: flex-end; display: flex; width: 100%; }
.e-nav-menu__main { width: 100%; }
.e-nav-menu__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0; }
.e-nav-menu--vertical .e-nav-menu__main .e-nav-menu__list { flex-direction: column; align-items: stretch; }
.e-nav-menu__item { position: relative; }
.e-nav-menu__link { position: relative; display: flex; align-items: center; gap: 6px; padding: 10px 14px; color: var(--gc-primary); white-space: nowrap; }
.e-nav-menu__indicator { display: inline-flex; font-size: .85em; transition: transform .3s; }
.e-nav-menu__indicator svg { width: 1em; height: 1em; }
.e-nav-menu__main .e-nav-menu__item:hover > .e-nav-menu__link .e-nav-menu__indicator { transform: rotate(180deg); }
.e-nav-menu__main .e-nav-menu__sub { list-style: none; margin: 0; padding: 10px 0; position: absolute; top: 100%; left: -8px; min-width: 220px; background: #fff; z-index: 20; box-shadow: 0 20px 50px rgba(21, 19, 15, .1); opacity: 0; visibility: hidden; transform: translateY(10px); transition: all .35s cubic-bezier(.2, .7, .2, 1); }
.e-nav-menu__main .e-nav-menu__sub .e-nav-menu__sub { top: -10px; left: 100%; }
.e-nav-menu__main .e-nav-menu__item:hover > .e-nav-menu__sub, .e-nav-menu__main .e-nav-menu__item:focus-within > .e-nav-menu__sub { opacity: 1; visibility: visible; transform: none; }
.e-nav-menu__main .e-nav-menu__sub .e-nav-menu__link { padding: 10px 20px !important; font-size: 14px; text-transform: none; letter-spacing: 0; }
.e-nav-menu__main .e-nav-menu__sub .e-nav-menu__link::before, .e-nav-menu__main .e-nav-menu__sub .e-nav-menu__link::after { display: none; }
.e-nav-menu__main .e-nav-menu__sub .e-nav-menu__link:hover { background: var(--gc-sand, #ede6da); }
/* Punteros */
.e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::before,
.e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::after { content: ''; position: absolute; left: 0; right: 0; pointer-events: none; transition: all .4s cubic-bezier(.2, .7, .2, 1); opacity: 0; }
.e-nav-menu--pointer-underline .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::after,
.e-nav-menu--pointer-double-line .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::after { bottom: 2px; height: var(--pointer-width); background: var(--pointer-color); }
.e-nav-menu--pointer-overline .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::before,
.e-nav-menu--pointer-double-line .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::before { top: 2px; height: var(--pointer-width); background: var(--pointer-color); }
.e-nav-menu--pointer-framed .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::before { inset: 0; border: var(--pointer-width) solid var(--pointer-color); }
.e-nav-menu--pointer-background .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::before { inset: 0; background: var(--pointer-color); z-index: -1; }
/* :where() baja la especificidad para que el color configurado en el widget prevalezca. */
.e-nav-menu--pointer-background :where(.e-nav-menu__main .e-nav-menu__list > li:is(:hover, .is-active)) > .e-nav-menu__link { color: #fff; }
.e-nav-menu__main .e-nav-menu__list > li:is(:hover, .is-active) > .e-nav-menu__link::before,
.e-nav-menu__main .e-nav-menu__list > li:is(:hover, .is-active) > .e-nav-menu__link::after { opacity: 1; }
.e-nav-menu--pointer-text .e-nav-menu__main .e-nav-menu__list > li:is(:hover, .is-active) > .e-nav-menu__link { color: var(--pointer-color); }
.e-nav-menu--anim-grow .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::after,
.e-nav-menu--anim-grow .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::before { transform: scaleX(0); }
.e-nav-menu--anim-grow .e-nav-menu__main .e-nav-menu__list > li:is(:hover, .is-active) > .e-nav-menu__link::after,
.e-nav-menu--anim-grow .e-nav-menu__main .e-nav-menu__list > li:is(:hover, .is-active) > .e-nav-menu__link::before { transform: scaleX(1); }
.e-nav-menu--anim-slide .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::after { transform: translateX(-20px); }
.e-nav-menu--anim-slide .e-nav-menu__main .e-nav-menu__list > li:is(:hover, .is-active) > .e-nav-menu__link::after { transform: none; }
.e-nav-menu--anim-drop-in .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::after { transform: translateY(-8px); }
.e-nav-menu--anim-drop-in .e-nav-menu__main .e-nav-menu__list > li:is(:hover, .is-active) > .e-nav-menu__link::after { transform: none; }
.e-nav-menu--anim-none .e-nav-menu__main .e-nav-menu__list > li > .e-nav-menu__link::after { transition: none; }
/* Botón y menú móvil */
.e-nav-menu__toggle { display: none; align-items: center; justify-content: center; margin-left: 0; padding: 6px; border: 0; background: transparent; color: var(--gc-primary); font-size: 24px; line-height: 0; }
.e-nav-menu__toggle svg { width: 1em; height: 1em; }
@media (max-width: 1024px) {
  .e-nav-menu--bp-tablet .e-nav-menu__main { display: none; }
  .e-nav-menu--bp-tablet { justify-content: var(--toggle-align); }
  .e-nav-menu--bp-tablet .e-nav-menu__toggle { display: inline-flex; }
}
@media (max-width: 767px) {
  .e-nav-menu--bp-mobile .e-nav-menu__main { display: none; }
  .e-nav-menu--bp-mobile { justify-content: var(--toggle-align); }
  .e-nav-menu--bp-mobile .e-nav-menu__toggle { display: inline-flex; }
}
.e-nav-menu-mobile { position: fixed; inset: 0; z-index: 9990; visibility: hidden; pointer-events: none; }
.e-nav-menu-mobile.is-open { visibility: visible; pointer-events: auto; }
@media (min-width: 1025px) { .e-nav-menu-mobile--bp-tablet { display: none; } }
@media (min-width: 768px) { .e-nav-menu-mobile--bp-mobile { display: none; } }
.e-nav-menu-mobile__backdrop { position: absolute; inset: 0; background: rgba(21, 19, 15, .45); opacity: 0; transition: opacity .45s ease; backdrop-filter: blur(2px); }
.e-nav-menu-mobile.is-open .e-nav-menu-mobile__backdrop { opacity: 1; }
.e-nav-menu__panel { position: absolute; top: 0; bottom: 0; left: 0; width: min(88vw, 420px); background: var(--gc-background, #f6f2ec); padding: 84px 32px 40px; overflow-y: auto; transform: translateX(-100%); transition: transform .55s cubic-bezier(.7, 0, .2, 1); display: flex; flex-direction: column; }
.e-nav-menu-mobile.is-open .e-nav-menu__panel { transform: none; }
.e-nav-menu-mobile--dropdown .e-nav-menu__panel { width: 100%; right: 0; transform: translateY(-100%); }
.e-nav-menu__close { position: absolute; top: 22px; right: 22px; border: 0; background: none; font-size: 26px; line-height: 0; color: var(--gc-primary); }
.e-nav-menu__close svg { width: 1em; height: 1em; }
.e-nav-menu__panel .e-nav-menu__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.e-nav-menu__panel .e-nav-menu__item { border-bottom: 1px solid var(--gc-border); }
.e-nav-menu__panel .e-nav-menu__link { padding: 16px 0; font-family: var(--gt-primary-family); font-size: 30px; line-height: 1.15; justify-content: space-between; white-space: normal; }
.e-nav-menu__panel .e-nav-menu__indicator { display: none; }
.e-nav-menu__panel .e-nav-menu__sub { list-style: none; margin: 0 0 14px; padding: 0 0 0 4px; }
.e-nav-menu__panel .e-nav-menu__sub .e-nav-menu__item { border: 0; }
.e-nav-menu__panel .e-nav-menu__sub .e-nav-menu__link { font-family: inherit; font-size: 15px; padding: 7px 0; color: var(--gc-text); }
.e-nav-menu-mobile.is-open .e-nav-menu__panel > .e-nav-menu__list > li { animation: e-fadeInUp .6s cubic-bezier(.2, .65, .3, 1) both; }
.e-nav-menu-mobile.is-open .e-nav-menu__panel > .e-nav-menu__list > li:nth-child(2) { animation-delay: .06s; }
.e-nav-menu-mobile.is-open .e-nav-menu__panel > .e-nav-menu__list > li:nth-child(3) { animation-delay: .12s; }
.e-nav-menu-mobile.is-open .e-nav-menu__panel > .e-nav-menu__list > li:nth-child(4) { animation-delay: .18s; }
.e-nav-menu-mobile.is-open .e-nav-menu__panel > .e-nav-menu__list > li:nth-child(5) { animation-delay: .24s; }

.e-site-logo { display: inline-flex; align-items: center; color: inherit; }
.w-site-logo { text-align: center; }
.e-site-logo img { width: 150px; }
.e-site-logo__text { font-size: 24px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--gc-primary); }

/* ==========================================================================
   Formularios y búsqueda
   ========================================================================== */
.e-input, .e-field input:not([type=checkbox]):not([type=radio]), .e-field select, .e-field textarea { width: 100%; min-height: 48px; font-size: 15px; line-height: 1.4; outline: none; transition: border-color .25s, box-shadow .25s; appearance: none; -webkit-appearance: none; }
.e-field textarea, textarea.e-input { min-height: 120px; resize: vertical; }
select.e-input, .e-field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2315130f' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px !important; }
.e-input:focus, .e-field input:focus, .e-field select:focus, .e-field textarea:focus { box-shadow: 0 0 0 3px rgba(168, 132, 90, .15); }
.e-label, .e-field label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; letter-spacing: .02em; }
.e-form__fields { display: flex; flex-wrap: wrap; column-gap: 16px; row-gap: 16px; }
.e-form__field { flex: 0 0 100%; min-width: 0; }
.e-form__field--w-75 { flex-basis: calc(75% - 8px); } .e-form__field--w-66 { flex-basis: calc(66.666% - 8px); } .e-form__field--w-50 { flex-basis: calc(50% - 8px); } .e-form__field--w-33 { flex-basis: calc(33.333% - 11px); } .e-form__field--w-25 { flex-basis: calc(25% - 12px); }
@media (max-width: 767px) { .e-form__field--wm-100 { flex-basis: 100%; } .e-form__field--wm-50 { flex-basis: calc(50% - 8px); } }
.e-form-btn-w-auto .e-form__submit { flex: 1 0 auto; width: auto; }
.e-form-btn-w-auto .e-form__submit .e-btn { width: 100%; min-height: 48px; }
.e-form-btn-w-100 .e-form__submit .e-btn { width: 100%; }
.e-form-btn-w-50 .e-form__submit { flex-basis: calc(50% - 8px); }
.e-form-btn-w-50 .e-form__submit .e-btn { width: 100%; }
.e-form__required { color: #b4532a; margin-left: 3px; }
.e-form__options { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.e-form__option { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }
.e-form__option input { accent-color: var(--gc-primary); width: 16px; height: 16px; }
.e-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.e-form__message { margin-top: 16px; padding: 14px 16px; font-size: 14px; animation: e-fadeInUp .5s both; }
.e-form__message--success { background: #eef8f1; color: #1f6e40; }
.e-form__message--error { background: #fcefee; color: #9c2f27; }
.e-search { display: flex; align-items: center; min-height: 48px; border: 1px solid var(--gc-border); background: #fff; overflow: hidden; }
.e-search__icon { display: inline-flex; padding: 0 0 0 16px; color: var(--gc-muted); }
.e-search__icon svg { width: 18px; height: 18px; }
.e-search__input { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; padding: 0 16px; outline: none; font-size: 15px; }
.e-search__submit { align-self: stretch; padding: 0 20px; border: 0; background: var(--gc-primary); color: #fff; }
.e-search__submit svg { width: 18px; height: 18px; }
.e-search--minimal { border-width: 0 0 1px; background: transparent; }

/* ==========================================================================
   Tienda: precio, tarjetas, grilla, categorías
   ========================================================================== */
.e-price { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.e-price del { color: var(--gc-muted); font-weight: 400; font-size: .9em; }
.e-price ins { text-decoration: none; color: #b4532a; }
.e-price__from { font-size: .85em; color: var(--gc-muted); font-weight: 400; }
.e-price-tax { display: block; margin-top: 4px; font-size: 12px; color: var(--gc-muted); }
.e-product-price .e-price { font-size: 22px; font-weight: 600; color: var(--gc-primary); }

.e-products-grid { --columns: 4; display: grid; grid-template-columns: repeat(var(--columns), minmax(0, 1fr)); column-gap: 24px; row-gap: 40px; }
.e-product-card { position: relative; display: flex; flex-direction: column; height: 100%; transition: transform .5s cubic-bezier(.2, .7, .2, 1), box-shadow .5s, background-color .3s; }
.e-product-card__media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--gc-sand, #ede6da); }
.e-product-card__image-link { position: absolute; inset: 0; display: block; }
.e-product-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .7s ease, transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.e-product-card__img--hover { opacity: 0; }
.e-product-card--hover-swap:hover .e-product-card__img--hover { opacity: 1; }
.e-product-card--hover-swap:hover .e-product-card__img:not(.e-product-card__img--hover) { transform: scale(1.04); }
.e-product-card--hover-zoom:hover .e-product-card__img { transform: scale(1.06); }
.is-out-of-stock .e-product-card__img { filter: grayscale(.6); opacity: .85; }
.e-product-card__badges { position: absolute; top: 12px; left: 12px; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; pointer-events: none; }
.e-badge { display: inline-block; padding: 5px 10px; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1.2; background: var(--gc-primary); color: #fff; }
.e-badge--sale { background: #b4532a; }
.e-badge--new { background: #fff; color: var(--gc-primary); }
.e-badge--out { background: rgba(21, 19, 15, .7); }
.e-product-card__body { display: flex; flex-direction: column; gap: 6px; padding-top: 16px; flex: 1; }
.e-product-card__cat { font-size: 11px; text-transform: uppercase; letter-spacing: .14em; color: var(--gc-muted); }
.e-product-card__title { margin: 0; font-size: 20px; line-height: 1.25; font-weight: 500; }
.e-product-card__title a { color: var(--gc-primary); background: linear-gradient(currentColor, currentColor) left bottom / 0 1px no-repeat; transition: background-size .45s cubic-bezier(.2, .7, .2, 1), color .3s; }
.e-product-card__title a:hover { background-size: 100% 1px; }
.e-product-card__excerpt { font-size: 14px; color: var(--gc-muted); }
.e-product-card__excerpt p { margin: 0; }
.e-product-card__price { font-size: 15px; font-weight: 600; color: var(--gc-primary); }
.e-product-card__btn { margin-top: 10px; align-self: flex-start; }
.e-product-card__btn--hover-bar { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 2; margin: 0; padding: 14px 16px !important; opacity: 0; transform: translateY(12px); transition: opacity .45s, transform .45s cubic-bezier(.2, .7, .2, 1), background-color .3s, color .3s; background: rgba(255, 255, 255, .95) !important; color: var(--gc-primary) !important; border-color: transparent !important; font-size: 11px; }
.e-product-card__btn--hover-bar:hover { background: var(--gc-primary) !important; color: #fff !important; }
.e-product-card:hover .e-product-card__btn--hover-bar, .e-product-card__btn--hover-bar:focus-visible { opacity: 1; transform: none; }
@media (hover: none) { .e-product-card__btn--hover-bar { opacity: 1; transform: none; position: static; margin: 10px 0 0; width: 100%; } }
.e-product-card__btn--icon { position: absolute; right: 12px; bottom: 12px; z-index: 2; margin: 0; width: 44px; height: 44px; padding: 0 !important; border-radius: 50% !important; background: #fff !important; color: var(--gc-primary) !important; border-color: transparent !important; box-shadow: 0 6px 20px rgba(0, 0, 0, .1); opacity: 0; transform: scale(.8); transition: all .4s cubic-bezier(.2, .7, .2, 1); }
.e-product-card__btn--icon svg { width: 18px; height: 18px; }
.e-product-card:hover .e-product-card__btn--icon { opacity: 1; transform: none; }
.e-product-card__btn--icon:hover { background: var(--gc-primary) !important; color: #fff !important; }
@media (hover: none) { .e-product-card__btn--icon { opacity: 1; transform: none; } }
.e-product-card--centered .e-product-card__body { align-items: center; text-align: center; }
.e-product-card--centered .e-product-card__btn { align-self: center; }
.e-product-card--overlay .e-product-card__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px; z-index: 2; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .55)); color: #fff; }
.e-product-card--overlay .e-product-card__title a, .e-product-card--overlay .e-product-card__price, .e-product-card--overlay .e-product-card__cat { color: #fff; }
@media (max-width: 767px) { .e-product-card__title { font-size: 16px; } }

.e-cat-grid { --columns: 4; display: grid; grid-template-columns: repeat(var(--columns), minmax(0, 1fr)); gap: 20px; }
.e-cat-card { --cat-overlay: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, .55)); position: relative; display: flex; flex-direction: column; color: var(--gc-primary); }
.e-cat-card__media { position: relative; display: block; overflow: hidden; aspect-ratio: 3 / 4; background: var(--gc-sand, #ede6da); }
.e-cat-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.e-cat-card__content { display: flex; flex-direction: column; gap: 6px; padding: 18px 0 0; }
.e-cat-card__title { font-size: 26px; line-height: 1.1; }
.e-cat-card__meta { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; }
.e-cat-card__meta svg { width: 14px; height: 14px; transition: transform .4s cubic-bezier(.2, .7, .2, 1); }
.e-cat-card:hover .e-cat-card__meta svg { transform: translateX(5px); }
.e-cat-card--overlay { color: #fff; }
.e-cat-card--overlay .e-cat-card__media::after { content: ''; position: absolute; inset: 0; background: var(--cat-overlay); }
.e-cat-card--overlay .e-cat-card__content { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px; z-index: 1; }

/* ==========================================================================
   Producto individual
   ========================================================================== */
.e-product-title { margin: 0; }
.e-product-gallery { --gap: 12px; --thumb: 84px; --ratio: 4 / 5; display: flex; gap: var(--gap); }
.e-product-gallery--bottom, .e-product-gallery--none { flex-direction: column; }
.e-product-gallery--left { flex-direction: row-reverse; }
.e-product-gallery__main { position: relative; flex: 1; overflow: hidden; aspect-ratio: var(--ratio); background: var(--gc-sand, #ede6da); cursor: zoom-in; }
.e-product-gallery__main > img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; animation: e-fadeIn .5s ease; }
.e-product-gallery__main.is-zooming > img { transform: scale(2); }
.e-product-gallery__badge { position: absolute; top: 16px; left: 16px; z-index: 2; }
.e-product-gallery__expand { position: absolute; right: 16px; top: 16px; z-index: 2; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, .9); color: var(--gc-primary); opacity: 0; transition: opacity .3s; }
.e-product-gallery__expand svg { width: 16px; height: 16px; }
.e-product-gallery__main:hover .e-product-gallery__expand { opacity: 1; }
.e-product-gallery__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; display: grid; place-items: center; width: 42px; height: 42px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .9); color: var(--gc-primary); opacity: 0; transition: opacity .3s; }
.e-product-gallery__nav svg { width: 18px; height: 18px; }
.e-product-gallery__nav--prev { left: 14px; }
.e-product-gallery__nav--next { right: 14px; }
.e-product-gallery__main:hover .e-product-gallery__nav { opacity: 1; }
@media (hover: none) { .e-product-gallery__nav { opacity: 1; } }
.e-product-gallery__thumbs { display: flex; gap: var(--gap); overflow: auto; scrollbar-width: none; }
.e-product-gallery--left .e-product-gallery__thumbs { flex-direction: column; flex: 0 0 var(--thumb); max-height: 100%; }
.e-product-gallery__thumb { flex: 0 0 var(--thumb); width: var(--thumb); aspect-ratio: var(--ratio); padding: 0; border: 1px solid transparent; background: var(--gc-sand, #ede6da); overflow: hidden; opacity: .6; transition: opacity .3s, border-color .3s; }
.e-product-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.e-product-gallery__thumb.is-active, .e-product-gallery__thumb:hover { opacity: 1; border-color: var(--gc-primary); }
.e-product-gallery--grid { display: grid; grid-template-columns: 1fr 1fr; position: relative; }
.e-product-gallery__cell { padding: 0; border: 0; background: var(--gc-sand, #ede6da); aspect-ratio: var(--ratio); overflow: hidden; cursor: zoom-in; }
.e-product-gallery__cell:first-of-type { grid-column: 1 / -1; }
.e-product-gallery__cell img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2, .7, .2, 1); }
.e-product-gallery__cell:hover img { transform: scale(1.04); }
@media (max-width: 767px) { .e-product-gallery--left { flex-direction: column; } .e-product-gallery--left .e-product-gallery__thumbs { flex-direction: row; } }

.e-add-to-cart { display: flex; flex-direction: column; gap: 18px; }
.e-variations { display: flex; flex-direction: column; gap: 18px; }
.e-variations__label { margin-bottom: 10px; font-size: 13px; font-weight: 700; letter-spacing: .04em; }
.e-variations__current { font-weight: 400; color: var(--gc-muted); }
.e-variations__reset { align-self: flex-start; background: none; border: 0; padding: 0; font-size: 13px; color: var(--gc-muted); text-decoration: underline; }
.e-swatches { --swatch-size: 36px; --swatch-active: var(--gc-primary); display: flex; flex-wrap: wrap; gap: 8px; }
.e-swatch { min-width: var(--swatch-size); height: var(--swatch-size); padding: 0 14px; display: inline-grid; place-items: center; border: 1px solid var(--gc-border); background: #fff; font-size: 13px; font-weight: 600; color: var(--gc-primary); transition: all .25s ease; }
.e-swatch:hover { border-color: var(--swatch-active); }
.e-swatch.is-selected { border-color: var(--swatch-active); background: var(--swatch-active); color: #fff; }
.e-swatch.is-disabled { opacity: .35; text-decoration: line-through; }
.e-swatches--color .e-swatch { width: var(--swatch-size); padding: 3px; border-radius: 50%; background: transparent; }
.e-swatches--color .e-swatch.is-selected { background: transparent; box-shadow: 0 0 0 1px var(--swatch-active); }
.e-swatch__color { display: block; width: 100%; height: 100%; border-radius: 50%; background: var(--swatch); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08); }
.e-variation-info { min-height: 0; font-size: 20px; font-weight: 600; }
.e-variation-info:empty { display: none; }
.e-variation-info__desc { font-size: 14px; font-weight: 400; color: var(--gc-muted); margin-top: 6px; }
.e-variation-info__na { font-size: 14px; font-weight: 400; color: #b4532a; }
.e-add-to-cart__actions { display: flex; gap: 12px; align-items: stretch; }
.e-atc-layout-stacked .e-add-to-cart__actions { flex-direction: column; }
.e-add-to-cart__button { flex: 1; min-height: 54px; }
.e-add-to-cart__buy-now { width: 100%; min-height: 54px; }
.e-add-to-cart__note { font-size: 13px; color: var(--gc-muted); }
.e-qty { display: inline-flex; align-items: center; border: 1px solid var(--gc-border); background: #fff; }
.e-qty__btn { display: grid; place-items: center; width: 44px; align-self: stretch; border: 0; background: transparent; color: var(--gc-primary); }
.e-qty__btn svg { width: 14px; height: 14px; }
.e-qty__btn:disabled { opacity: .3; }
.e-qty__input { width: 44px; border: 0; text-align: center; font-weight: 600; background: transparent; -moz-appearance: textfield; outline: none; }
.e-qty__input::-webkit-outer-spin-button, .e-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.e-qty--sm .e-qty__btn { width: 32px; height: 32px; }
.e-qty__value { min-width: 28px; text-align: center; font-weight: 600; font-size: 14px; }
.e-stock { font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; }
.e-stock::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.e-stock--instock { color: #2f9e5b; }
.e-stock--low, .e-stock--onbackorder { color: #d49b21; }
.e-stock--outofstock { color: #c7473d; }
.e-product-meta { display: flex; flex-direction: column; gap: 8px; font-size: 13px; }
.e-product-meta--inline { flex-direction: row; flex-wrap: wrap; gap: 8px 22px; }
.e-product-meta--table .e-product-meta__row { display: grid; grid-template-columns: 120px 1fr; padding: 8px 0; border-bottom: 1px solid var(--gc-border); }
.e-product-meta__label { font-weight: 700; }
.e-product-meta__value a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.e-product-attributes { --table-border: var(--gc-border); width: 100%; border-collapse: collapse; font-size: 14px; }
.e-product-attributes th, .e-product-attributes td { padding: 14px 0; border-bottom: 1px solid var(--table-border); text-align: left; vertical-align: top; }
.e-product-attributes th { width: 34%; font-weight: 700; padding-right: 16px; }
.e-related__heading { margin: 0 0 32px; font-size: 40px; }

/* Migas, archivo, paginación, filtros */
.e-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: 13px; color: var(--gc-muted); }
.e-breadcrumbs__item { display: inline-flex; align-items: center; gap: 4px; }
.e-breadcrumbs__sep { display: inline-flex; opacity: .6; }
.e-breadcrumbs__sep svg { width: 12px; height: 12px; }
.e-breadcrumbs a { color: inherit; }
.e-breadcrumbs a:hover { color: var(--gc-primary); }
.e-archive-title { margin: 0; }
.e-archive-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 28px; padding-bottom: 18px; border-bottom: 1px solid var(--gc-border); font-size: 14px; color: var(--gc-muted); }
.e-sort-select { width: auto; min-height: 42px; padding: 8px 40px 8px 14px !important; font-size: 14px; }
.e-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 56px; }
.e-pagination a, .e-pagination span { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 10px; border: 1px solid var(--gc-border); color: var(--gc-primary); font-size: 14px; font-weight: 600; }
.e-pagination a svg { width: 16px; height: 16px; }
.e-pagination a:hover { border-color: var(--gc-primary); }
.e-pagination .is-current { background: var(--gc-primary); border-color: var(--gc-primary); color: #fff; }
.e-filters { display: flex; flex-direction: column; gap: 32px; }
.e-filters__title { margin-bottom: 14px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.e-filters__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.e-filters__list ul { list-style: none; margin: 2px 0 6px; padding-left: 14px; }
.e-filters__list a { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; color: var(--gc-text); }
.e-filters__list a:hover, .e-filters__list .is-active > a { color: var(--gc-primary); font-weight: 600; }
.e-filters__count { color: var(--gc-muted); font-size: 12px; font-weight: 400; }
.e-filters__price { display: flex; flex-direction: column; gap: 12px; }
.e-filters__price-row { display: flex; align-items: center; gap: 8px; }
.e-filters__price-row .e-input { min-height: 42px; padding: 8px 10px; }

/* ==========================================================================
   Mini carrito
   ========================================================================== */
.e-menu-cart { display: flex; justify-content: flex-end; }
.e-menu-cart__toggle { display: inline-flex; align-items: center; gap: 10px; padding: 4px; border: 0; background: transparent; color: var(--gc-primary); }
.e-menu-cart__icon { position: relative; display: inline-flex; font-size: 22px; line-height: 0; }
.e-menu-cart__icon svg { width: 1em; height: 1em; }
.e-menu-cart__count { font-size: 10px; font-weight: 700; line-height: 1; }
.e-menu-cart__count--bubble { position: absolute; top: -6px; right: -9px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; display: grid; place-items: center; background: var(--gc-secondary); color: #fff; }
.e-menu-cart__count--plain { margin-left: 4px; font-size: 13px; }
.e-menu-cart__subtotal { font-size: 14px; font-weight: 600; }
.e-mini-cart { position: fixed; inset: 0; z-index: 9995; visibility: hidden; pointer-events: none; }
.e-mini-cart.is-open { visibility: visible; pointer-events: auto; }
.e-mini-cart__backdrop { position: absolute; inset: 0; background: rgba(21, 19, 15, .45); opacity: 0; transition: opacity .45s; backdrop-filter: blur(2px); }
.e-mini-cart.is-open .e-mini-cart__backdrop { opacity: 1; }
.e-mini-cart__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(100vw, 420px); background: #fff; display: flex; flex-direction: column; transform: translateX(100%); transition: transform .55s cubic-bezier(.7, 0, .2, 1); box-shadow: -20px 0 60px rgba(0, 0, 0, .08); color: var(--gc-text); font-family: var(--gt-text-family); }
.e-mini-cart.is-open .e-mini-cart__panel { transform: none; }
.e-mini-cart__header { display: flex; align-items: center; justify-content: space-between; padding: 24px 28px; border-bottom: 1px solid var(--gc-border); }
.e-mini-cart__title { font-family: var(--gt-primary-family); font-size: 28px; color: var(--gc-primary); }
.e-mini-cart__qty { font-size: 16px; color: var(--gc-muted); }
.e-mini-cart__close { border: 0; background: none; font-size: 22px; line-height: 0; color: var(--gc-primary); }
.e-mini-cart__close svg { width: 1em; height: 1em; }
.e-mini-cart__goal { padding: 16px 28px; font-size: 13px; background: var(--gc-background, #f6f2ec); display: flex; flex-direction: column; gap: 10px; }
.e-mini-cart__goal-bar { height: 4px; background: var(--gc-border); overflow: hidden; }
.e-mini-cart__goal-bar > div { height: 100%; background: var(--gc-secondary); transition: width .6s cubic-bezier(.2, .7, .2, 1); }
.e-mini-cart__items { list-style: none; margin: 0; padding: 8px 28px; overflow-y: auto; flex: 1; }
.e-mini-cart__item { position: relative; display: grid; grid-template-columns: 80px 1fr; gap: 16px; padding: 18px 28px 18px 0; border-bottom: 1px solid var(--gc-border); animation: e-fadeIn .4s ease; }
.e-mini-cart__thumb { display: block; aspect-ratio: 4 / 5; background: var(--gc-sand, #ede6da); overflow: hidden; }
.e-mini-cart__thumb img { width: 100%; height: 100%; object-fit: cover; }
.e-mini-cart__info { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.e-mini-cart__name { color: var(--gc-primary); font-weight: 600; font-size: 15px; line-height: 1.3; }
.e-mini-cart__attrs { font-size: 12px; color: var(--gc-muted); }
.e-mini-cart__row { display: flex; justify-content: space-between; align-items: center; margin-top: auto; }
.e-mini-cart__price { font-weight: 600; font-size: 14px; color: var(--gc-primary); }
.e-mini-cart__remove { position: absolute; top: 16px; right: 0; border: 0; background: none; color: var(--gc-muted); line-height: 0; padding: 4px; }
.e-mini-cart__remove svg { width: 14px; height: 14px; }
.e-mini-cart__remove:hover { color: var(--gc-primary); }
.e-mini-cart__footer { padding: 22px 28px 28px; border-top: 1px solid var(--gc-border); display: flex; flex-direction: column; gap: 10px; }
.e-mini-cart__subtotal { display: flex; justify-content: space-between; font-size: 16px; color: var(--gc-primary); }
.e-mini-cart__note { margin: 0 0 6px; font-size: 12px; color: var(--gc-muted); }
.e-mini-cart__checkout, .e-mini-cart__view { width: 100%; }
.e-mini-cart__empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 40px; text-align: center; color: var(--gc-muted); }
.e-mini-cart__empty > svg { width: 40px; height: 40px; color: var(--gc-border); }
.e-cart-notice { position: fixed; left: 50%; bottom: 28px; z-index: 9996; display: flex; align-items: center; gap: 12px; padding: 14px 20px; background: var(--gc-primary); color: #fff; font-size: 14px; box-shadow: 0 20px 50px rgba(0, 0, 0, .2); transform: translate(-50%, 140%); transition: transform .5s cubic-bezier(.2, .7, .2, 1); max-width: calc(100vw - 32px); }
.e-cart-notice.is-visible { transform: translate(-50%, 0); }
.e-cart-notice svg { width: 18px; height: 18px; color: var(--gc-secondary); flex: 0 0 auto; }
.e-cart-notice a { color: #fff; text-decoration: underline; white-space: nowrap; }

/* ==========================================================================
   Carrito y checkout
   ========================================================================== */
.e-cart, .e-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 48px; align-items: start; transition: opacity .3s; }
.e-cart.is-loading, .e-checkout.is-loading { opacity: .7; }
@media (max-width: 1024px) { .e-cart, .e-checkout { grid-template-columns: 1fr; gap: 32px; } }
.e-summary-box { background: #fff; padding: 32px; display: flex; flex-direction: column; gap: 20px; position: sticky; top: 110px; }
@media (max-width: 1024px) { .e-summary-box { position: static; } }
.e-summary-box__title, .e-checkout__title { margin: 0; font-family: var(--gt-primary-family); font-size: 28px; font-weight: 500; color: var(--gc-primary); }
.e-cart__table { width: 100%; border-collapse: collapse; }
.e-cart__table th { text-align: left; padding: 0 0 14px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--gc-muted); border-bottom: 1px solid var(--gc-border); font-weight: 600; }
.e-cart__table td { padding: 20px 12px 20px 0; border-bottom: 1px solid var(--gc-border); vertical-align: middle; }
.e-cart__thumb { width: 96px; }
.e-cart__thumb a { display: block; width: 84px; aspect-ratio: 4 / 5; background: var(--gc-sand, #ede6da); overflow: hidden; }
.e-cart__thumb img { width: 100%; height: 100%; object-fit: cover; }
.e-cart__name a { color: var(--gc-primary); font-weight: 600; font-size: 16px; }
.e-cart__attrs { margin-top: 4px; font-size: 13px; color: var(--gc-muted); }
.e-cart__line-error { margin-top: 6px; font-size: 12px; color: #b4532a; }
.e-cart__price del { color: var(--gc-muted); font-size: .9em; margin-right: 6px; }
.e-cart__total { font-weight: 700; color: var(--gc-primary); white-space: nowrap; }
.e-cart__remove button { border: 0; background: none; color: var(--gc-muted); line-height: 0; padding: 6px; }
.e-cart__remove svg { width: 16px; height: 16px; }
.e-cart__actions { margin-top: 24px; display: flex; flex-direction: column; gap: 12px; max-width: 460px; }
.e-cart__checkout, .e-checkout__pay { width: 100%; min-height: 56px; }
@media (max-width: 767px) {
  .e-cart__table thead { display: none; }
  .e-cart__table tr { display: grid; grid-template-columns: 84px 1fr auto; gap: 4px 14px; padding: 18px 0; border-bottom: 1px solid var(--gc-border); position: relative; }
  .e-cart__table td { padding: 0; border: 0; }
  .e-cart__thumb { grid-row: span 3; }
  .e-cart__name { grid-column: 2 / 4; padding-right: 28px !important; }
  .e-cart__price { display: none; }
  .e-cart__remove { position: absolute; top: 14px; right: 0; }
}
.e-cart-empty { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 80px 20px; text-align: center; color: var(--gc-muted); }
.e-cart-empty > svg { width: 48px; height: 48px; color: var(--gc-border); }
.e-coupon { display: flex; gap: 8px; align-items: center; }
.e-coupon .e-input { flex: 1; min-height: 48px; }
.e-coupon .e-btn { min-height: 48px; padding: 0 22px; }
.e-coupon--applied { font-size: 14px; font-weight: 600; color: var(--gc-primary); }
.e-coupon--applied svg { width: 16px; height: 16px; color: var(--gc-secondary); }
.e-shipping { display: flex; flex-direction: column; gap: 10px; }
.e-shipping__options { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.e-radio { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--gc-border); cursor: pointer; font-size: 14px; transition: border-color .25s; }
.e-radio:has(input:checked) { border-color: var(--gc-primary); }
.e-radio input { accent-color: var(--gc-primary); width: 16px; height: 16px; }
.e-shipping__name { flex: 1; display: flex; flex-direction: column; }
.e-shipping__name small { color: var(--gc-muted); font-size: 12px; }
.e-shipping__cost { font-weight: 700; }
.e-totals { margin: 0; display: flex; flex-direction: column; gap: 12px; padding-top: 16px; border-top: 1px solid var(--gc-border); }
.e-totals > div { display: flex; justify-content: space-between; gap: 16px; font-size: 15px; }
.e-totals dt { color: var(--gc-muted); }
.e-totals dd { margin: 0; text-align: right; color: var(--gc-primary); font-weight: 600; }
.e-totals__discount dd { color: #2f9e5b; }
.e-totals__total { padding-top: 14px; border-top: 1px solid var(--gc-border); font-size: 20px !important; }
.e-totals__total dt { color: var(--gc-primary); font-weight: 700; }
.e-totals__total dd { display: flex; flex-direction: column; font-size: 22px; }
.e-totals__total small { font-size: 12px; font-weight: 400; color: var(--gc-muted); }
.e-secure-note { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0; font-size: 12px; color: var(--gc-muted); }
.e-secure-note svg { width: 14px; height: 14px; }
.e-notice { padding: 12px 16px; font-size: 14px; }
.e-notice--warning { background: #fdf7ea; color: #7a5a14; }
.e-notice--error { background: #fcefee; color: #9c2f27; }
.e-checkout__main { display: flex; flex-direction: column; gap: 40px; }
.e-checkout__section { display: flex; flex-direction: column; gap: 20px; }
.e-checkout__grid { display: flex; flex-wrap: wrap; gap: 16px; }
.e-checkout__field { flex: 0 0 100%; }
.e-checkout__field--half { flex-basis: calc(50% - 8px); }
@media (max-width: 767px) { .e-checkout__field--half { flex-basis: 100%; } }
.e-field.has-error input, .e-field.has-error select { border-color: #c7473d !important; }
.e-field__error { display: block; margin-top: 6px; font-size: 12px; color: #c7473d; }
.e-checkbox { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; cursor: pointer; }
.e-checkbox input { margin-top: 2px; accent-color: var(--gc-primary); width: 16px; height: 16px; }
.e-checkbox.has-error { color: #c7473d; }
.e-checkbox a { text-decoration: underline; color: inherit; }
.e-payment-method { border: 1px solid var(--gc-primary); padding: 20px; background: #fff; display: flex; flex-direction: column; gap: 10px; }
.e-payment-method__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; color: var(--gc-primary); }
.e-payment-method__radio { width: 16px; height: 16px; border-radius: 50%; border: 5px solid var(--gc-primary); }
.e-payment-method__logos { margin-left: auto; font-size: 12px; color: var(--gc-muted); }
.e-payment-method__desc { margin: 0; font-size: 14px; color: var(--gc-text); }
.e-payment-method__demo { margin: 0; padding: 10px 12px; background: #fdf7ea; color: #7a5a14; font-size: 13px; }
.e-checkout__items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.e-checkout__items li { display: flex; align-items: center; gap: 14px; }
.e-checkout__item-thumb { position: relative; flex: 0 0 64px; width: 64px; aspect-ratio: 4 / 5; background: var(--gc-sand, #ede6da); }
.e-checkout__item-thumb img { width: 100%; height: 100%; object-fit: cover; }
.e-checkout__item-qty { position: absolute; top: -8px; right: -8px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 99px; background: var(--gc-primary); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; }
.e-checkout__item-name { flex: 1; font-size: 14px; font-weight: 600; color: var(--gc-primary); display: flex; flex-direction: column; }
.e-checkout__item-name small { font-weight: 400; color: var(--gc-muted); font-size: 12px; }
.e-checkout__item-total { font-size: 14px; font-weight: 600; }
.e-checkout__pay svg { width: 16px; height: 16px; }

/* Pedido recibido */
.e-order-received { max-width: 1120px; margin: 0 auto; padding: 88px 24px 110px; display: flex; flex-direction: column; gap: 48px; }
.e-order-received__hero { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.e-order-received__hero h1 { font-family: var(--gt-primary-family); font-weight: 500; font-size: clamp(34px, 5vw, 56px); color: var(--gc-primary); line-height: 1.05; }
.e-order-received__hero p { max-width: 560px; color: var(--gc-text); }
.e-order-received__eyebrow { margin: 0; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--gc-secondary); }
.e-order-received__icon { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; font-size: 30px; color: #fff; background: #2f9e5b; animation: e-bounceIn .9s both; }
.is-failed .e-order-received__icon { background: #c7473d; }
.is-pending .e-order-received__icon { background: #d49b21; }
.e-order-received__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 28px; align-items: start; }
.e-order-received__grid .e-summary-box { position: static; }
@media (max-width: 1024px) { .e-order-received__grid { grid-template-columns: 1fr; } }
.e-order-received__info { margin: 0; display: flex; flex-direction: column; gap: 16px; }
.e-order-received__info div { display: grid; grid-template-columns: 140px 1fr; gap: 12px; font-size: 14px; }
.e-order-received__info dt { color: var(--gc-muted); }
.e-order-received__info dd { margin: 0; color: var(--gc-primary); }
.e-status { display: inline-block; padding: 4px 10px; font-size: 12px; font-weight: 700; background: #eee; }
.e-status--processing, .e-status--completed { background: #e3f4e9; color: #1f6e40; }
.e-status--pending, .e-status--on-hold { background: #fdf3dc; color: #7a5a14; }
.e-status--failed, .e-status--cancelled, .e-status--refunded { background: #fbe4e2; color: #9c2f27; }
.e-demo-pay { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #0f1b2d; font-family: system-ui, sans-serif; }
.e-demo-pay__card { max-width: 480px; background: #fff; padding: 40px; display: flex; flex-direction: column; gap: 16px; border-radius: 16px; box-shadow: 0 30px 80px rgba(0, 0, 0, .35); color: #1d2433; }
.e-demo-pay__badge { align-self: flex-start; padding: 6px 10px; border-radius: 6px; background: #fff4d6; color: #7a5a14; font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.e-demo-pay h1 { font-size: 24px; }
.e-demo-pay__amount { font-size: 40px; font-weight: 800; margin: 0; }
.e-demo-pay__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.e-demo-pay .e-btn { padding: 14px 22px; border: 1px solid #1d2433; background: #1d2433; color: #fff; border-radius: 8px; font-weight: 700; }

/* ==========================================================================
   Lightbox, popups, transiciones
   ========================================================================== */
.e-lightbox { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; background: rgba(12, 11, 10, .94); animation: e-fadeIn .35s ease; }
.e-lightbox__image { max-width: 92vw; max-height: 88vh; object-fit: contain; animation: e-scaleDown .5s cubic-bezier(.2, .65, .3, 1); }
.e-lightbox__close, .e-lightbox__nav { position: absolute; z-index: 2; display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .08); color: #fff; font-size: 22px; line-height: 0; transition: background .3s; }
.e-lightbox__close:hover, .e-lightbox__nav:hover { background: rgba(255, 255, 255, .2); }
.e-lightbox__close svg, .e-lightbox__nav svg { width: 1em; height: 1em; }
.e-lightbox__close { top: 20px; right: 20px; }
.e-lightbox__nav { top: 50%; transform: translateY(-50%); }
.e-lightbox__nav--prev { left: 20px; }
.e-lightbox__nav--next { right: 20px; }
.e-lightbox__counter { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); color: rgba(255, 255, 255, .7); font-size: 13px; letter-spacing: .1em; }
.e-lightbox__video { width: min(92vw, 1200px); position: relative; }

.e-popup { position: fixed; inset: 0; z-index: 9998; display: flex; justify-content: center; align-items: center; padding: 20px; }
.e-popup[hidden] { display: none; }
.e-popup__overlay { position: absolute; inset: 0; background: rgba(21, 19, 15, .55); opacity: 0; transition: opacity .35s ease; }
.e-popup.is-open .e-popup__overlay { opacity: 1; }
.e-popup__dialog { position: relative; z-index: 1; width: 640px; max-width: 100%; max-height: calc(100vh - 40px); overflow: auto; background: #fff; opacity: 0; }
.e-popup.is-open .e-popup__dialog { opacity: 1; animation-duration: .7s; animation-fill-mode: both; animation-timing-function: cubic-bezier(.2, .65, .3, 1); }
.e-popup.is-closing .e-popup__dialog { opacity: 0; transition: opacity .3s; }
.e-popup.is-closing .e-popup__overlay { opacity: 0; }
.e-popup--anim-fadeIn.is-open .e-popup__dialog { animation-name: e-fadeIn; }
.e-popup--anim-fadeInUp.is-open .e-popup__dialog { animation-name: e-fadeInUp; }
.e-popup--anim-fadeInDown.is-open .e-popup__dialog { animation-name: e-fadeInDown; }
.e-popup--anim-fadeInLeft.is-open .e-popup__dialog { animation-name: e-fadeInLeft; }
.e-popup--anim-fadeInRight.is-open .e-popup__dialog { animation-name: e-fadeInRight; }
.e-popup--anim-zoomIn.is-open .e-popup__dialog { animation-name: e-zoomIn; }
.e-popup--anim-bounceIn.is-open .e-popup__dialog { animation-name: e-bounceIn; }
.e-popup--anim-slideInUp.is-open .e-popup__dialog { animation-name: e-slideInUp; }
.e-popup--anim-slideInDown.is-open .e-popup__dialog { animation-name: e-slideInDown; }
.e-popup--anim-slideInLeft.is-open .e-popup__dialog { animation-name: e-slideInLeft; }
.e-popup--anim-slideInRight.is-open .e-popup__dialog { animation-name: e-slideInRight; }
.e-popup--anim-blurIn.is-open .e-popup__dialog { animation-name: e-blurIn; }
.e-popup--anim-blurInUp.is-open .e-popup__dialog { animation-name: e-blurInUp; }
.e-popup--anim-flipInX.is-open .e-popup__dialog { animation-name: e-flipInX; }
.e-popup--anim-revealUp.is-open .e-popup__dialog { animation-name: e-revealUp; }
.e-popup__close { position: absolute; top: 10px; right: 12px; z-index: 3; width: 40px; height: 40px; border: 0; background: transparent; font-size: 30px; line-height: 1; color: var(--gc-primary); transition: transform .3s; }
.e-popup__close:hover { transform: rotate(90deg); }

.e-page-transition { position: fixed; inset: 0; z-index: 100000; pointer-events: none; background: var(--pt-color, #f6f2ec); transition: opacity var(--pt-duration, 450ms) ease, transform var(--pt-duration, 450ms) cubic-bezier(.7, 0, .2, 1), clip-path var(--pt-duration, 450ms) cubic-bezier(.7, 0, .2, 1); display: grid; place-items: center; }
.e-page-transition.is-idle { opacity: 0; }
.e-page-transition.is-loading, .e-page-transition.is-leaving { opacity: 1; pointer-events: auto; }
.e-page-transition--slide-up.is-idle { opacity: 1; transform: translateY(-100%); }
.e-page-transition--slide-down.is-idle { opacity: 1; transform: translateY(100%); }
.e-page-transition--slide-left.is-idle { opacity: 1; transform: translateX(-100%); }
.e-page-transition--slide-right.is-idle { opacity: 1; transform: translateX(100%); }
.e-page-transition--curtain.is-idle { opacity: 1; clip-path: inset(0 0 100% 0); }
.e-page-transition--curtain.is-leaving, .e-page-transition--curtain.is-loading { clip-path: inset(0 0 0 0); }
.e-page-transition--circle.is-idle { opacity: 1; clip-path: circle(0% at 50% 50%); }
.e-page-transition--circle.is-leaving, .e-page-transition--circle.is-loading { clip-path: circle(150% at 50% 50%); }
.e-preloader { display: grid; place-items: center; }
.e-preloader__spinner { width: 40px; height: 40px; border-radius: 50%; border: 2px solid rgba(0, 0, 0, .1); border-top-color: var(--pl-color, #15130f); animation: e-spin .8s linear infinite; }
.e-preloader--logo img { max-width: 140px; animation: e-pulse 1.4s ease-in-out infinite; }
.e-preloader__bar { display: block; width: 160px; height: 2px; background: linear-gradient(90deg, var(--pl-color) 40%, transparent 40%) 0 0 / 200% 100%; animation: e-bar 1s linear infinite; }
@keyframes e-spin { to { transform: rotate(360deg); } }
@keyframes e-bar { to { background-position: -200% 0; } }
.e-nowrap .e-heading { white-space: nowrap; }
@media (max-width: 767px) {
  .e-slides .e-carousel__arrow { display: none; }
  .e-carousel__arrow { width: 2.2em; height: 2.2em; font-size: 15px; }
  .e-cat-card--overlay .e-cat-card__content { padding: 16px; }
}
