/* E15 Elementor Container Enhancements v0.9.3-alpha.1 */
.e15-enhanced-container {
    --e15-ring-color: #d9a441;
    --e15-ring-color-alt: #2f80ed;
    --e15-ring-thickness: 1px;
    --e15-ring-offset: 8px;
    --e15-accent-color: #d9a441;
    --e15-accent-thickness: 3px;
    --e15-corner-size: 24px;
    --e15-layer-a: rgba(47,128,237,.22);
    --e15-layer-b: rgba(217,164,65,.16);
    --e15-layer-angle: 135deg;
    --e15-layer-opacity: .55;
    --e15-texture-color: rgba(16,24,40,.16);
    --e15-glass-blur: 18px;
    --e15-glow-color: #2f80ed;
    --e15-decor-color: #d9a441;
    --e15-decor-size: 120px;
    --e15-decor-x: 88%;
    --e15-decor-y: 18%;
    --e15-decor-opacity: .3;
    --e15-decor-rotate: 0deg;
    --e15-decor-blur: 0px;
    --e15-grid-min: 260px;
    --e15-grid-gap: 24px;
    --e15-bleed: 48px;
    --e15-overlap: 48px;
    --e15-hover-lift: 8px;
    --e15-hover-scale: 1.025;
    --e15-image-zoom: 1.06;
    --e15-transition: 280ms;
    --e15-reveal-distance: 32px;
    --e15-reveal-duration: 600ms;
    --e15-reveal-delay: 0ms;
    --e15-sticky-offset: 24px;
    --e15-sticky-z: 20;
    --e15-shadow-layer: 0 0 0 rgba(0,0,0,0);
    --e15-ring-shadow: 0 0 0 rgba(0,0,0,0);
    --e15-glow-layer: 0 0 0 rgba(0,0,0,0);
    position: relative;
    transition: transform var(--e15-transition) ease, box-shadow var(--e15-transition) ease, filter var(--e15-transition) ease, background-color var(--e15-transition) ease;
}

/* Presets */
.e15-preset-editorial-frame { background:#f8f4ec; border:1px solid rgba(16,24,40,.15); padding:clamp(20px,3vw,48px); }
.e15-preset-glass-card { background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28); border-radius:20px; backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.e15-preset-feature-card { background:#fff; border:1px solid rgba(16,24,40,.08); border-radius:18px; box-shadow:0 18px 48px rgba(16,24,40,.10); }
.e15-preset-dark-cta { background:#0b1f33; color:#fff; border-radius:18px; padding:clamp(28px,4vw,64px); }
.e15-preset-luxury-surface { background:#f6f0e6; border:1px solid rgba(217,164,65,.45); box-shadow:0 24px 60px rgba(46,38,24,.12); }
.e15-preset-stats-band { background:#0b1f33; color:#fff; padding:clamp(24px,3vw,48px); }
.e15-preset-clean-panel { background:#fff; border:1px solid rgba(16,24,40,.08); border-radius:12px; }

/* Layered gradient + texture. */
.e15-has-surface-layer::before {
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    pointer-events:none;
    opacity:var(--e15-layer-opacity);
    background-image:var(--e15-gradient-layer, none), var(--e15-texture-layer, none);
    background-size:var(--e15-gradient-size, auto), var(--e15-texture-size, auto);
    background-position:center;
}
.e15-gradient-linear { --e15-gradient-layer: linear-gradient(var(--e15-layer-angle), var(--e15-layer-a), var(--e15-layer-b)); }
.e15-gradient-radial { --e15-gradient-layer: radial-gradient(circle at 75% 20%, var(--e15-layer-a), transparent 58%), radial-gradient(circle at 15% 80%, var(--e15-layer-b), transparent 58%); }
.e15-gradient-mesh { --e15-gradient-layer: radial-gradient(circle at 15% 20%, var(--e15-layer-a), transparent 38%), radial-gradient(circle at 85% 22%, var(--e15-layer-b), transparent 42%), radial-gradient(circle at 55% 85%, var(--e15-layer-a), transparent 46%); }
.e15-texture-grain { --e15-texture-layer: repeating-radial-gradient(circle at 15% 20%, var(--e15-texture-color) 0 0.5px, transparent .7px 3px); --e15-texture-size: 9px 9px; }
.e15-texture-dots { --e15-texture-layer: radial-gradient(circle, var(--e15-texture-color) 1.2px, transparent 1.5px); --e15-texture-size: 16px 16px; }
.e15-texture-grid { --e15-texture-layer: linear-gradient(var(--e15-texture-color) 1px, transparent 1px), linear-gradient(90deg,var(--e15-texture-color) 1px,transparent 1px); --e15-texture-size: 28px 28px; }
.e15-texture-paper { --e15-texture-layer: repeating-linear-gradient(0deg,transparent 0 3px,var(--e15-texture-color) 4px,transparent 5px), repeating-linear-gradient(90deg,transparent 0 7px,var(--e15-texture-color) 8px,transparent 9px); --e15-texture-size: 100% 100%; }

/* Glass */
.e15-glass { backdrop-filter:blur(var(--e15-glass-blur)); -webkit-backdrop-filter:blur(var(--e15-glass-blur)); }
.e15-glass.e15-glass-tone-light { background-color:rgba(255,255,255,.14); border-color:rgba(255,255,255,.25); }
.e15-glass.e15-glass-tone-dark { background-color:rgba(11,31,51,.34); border-color:rgba(255,255,255,.12); }

/* Ring/shadow/glow stack. */
.e15-ring-inner { --e15-ring-shadow: inset 0 0 0 var(--e15-ring-thickness) var(--e15-ring-color); }
.e15-ring-double-inner { --e15-ring-shadow: inset 0 0 0 var(--e15-ring-thickness) var(--e15-ring-color), inset 0 0 0 calc(var(--e15-ring-thickness) + var(--e15-ring-offset)) var(--e15-ring-color); }
.e15-ring-outer { outline:var(--e15-ring-thickness) solid var(--e15-ring-color); outline-offset:0; }
.e15-ring-offset { outline:var(--e15-ring-thickness) solid var(--e15-ring-color); outline-offset:var(--e15-ring-offset); }
.e15-ring-dashed { outline:var(--e15-ring-thickness) dashed var(--e15-ring-color); outline-offset:var(--e15-ring-offset); }
.e15-ring-gradient { border:var(--e15-ring-thickness) solid transparent !important; border-image:linear-gradient(var(--e15-layer-angle),var(--e15-ring-color),var(--e15-ring-color-alt)) 1; }
.e15-shadow-soft { --e15-shadow-layer: 0 16px 40px rgba(16,24,40,.10); }
.e15-shadow-ambient { --e15-shadow-layer: 0 28px 80px rgba(16,24,40,.14); }
.e15-shadow-hard { --e15-shadow-layer: 10px 10px 0 rgba(16,24,40,.18); }
.e15-shadow-inner { --e15-shadow-layer: inset 0 0 28px rgba(16,24,40,.12); }
.e15-glow-soft { --e15-glow-layer: 0 0 30px color-mix(in srgb,var(--e15-glow-color) 30%, transparent); }
.e15-glow-accent { --e15-glow-layer: 0 0 42px color-mix(in srgb,var(--e15-glow-color) 48%, transparent); }
.e15-glow-neon { --e15-glow-layer: 0 0 8px var(--e15-glow-color), 0 0 28px color-mix(in srgb,var(--e15-glow-color) 55%,transparent); }
.e15-ring-inner, .e15-ring-double-inner, .e15-shadow-soft, .e15-shadow-ambient, .e15-shadow-hard, .e15-shadow-inner, .e15-glow-soft, .e15-glow-accent, .e15-glow-neon {
    box-shadow:var(--e15-ring-shadow),var(--e15-shadow-layer),var(--e15-glow-layer) !important;
}

/* Accent edges */
.e15-accent-top { border-top:var(--e15-accent-thickness) solid var(--e15-accent-color) !important; }
.e15-accent-right { border-right:var(--e15-accent-thickness) solid var(--e15-accent-color) !important; }
.e15-accent-bottom { border-bottom:var(--e15-accent-thickness) solid var(--e15-accent-color) !important; }
.e15-accent-left { border-left:var(--e15-accent-thickness) solid var(--e15-accent-color) !important; }

/* Geometry */
.e15-corner-cut { clip-path:polygon(var(--e15-corner-size) 0,100% 0,100% calc(100% - var(--e15-corner-size)),calc(100% - var(--e15-corner-size)) 100%,0 100%,0 var(--e15-corner-size)); }
.e15-corner-notch { clip-path:polygon(var(--e15-corner-size) 0,calc(100% - var(--e15-corner-size)) 0,100% var(--e15-corner-size),100% calc(100% - var(--e15-corner-size)),calc(100% - var(--e15-corner-size)) 100%,var(--e15-corner-size) 100%,0 calc(100% - var(--e15-corner-size)),0 var(--e15-corner-size)); }
.e15-corner-slant-left { clip-path:polygon(var(--e15-corner-size) 0,100% 0,100% 100%,0 100%,0 var(--e15-corner-size)); }
.e15-corner-slant-right { clip-path:polygon(0 0,calc(100% - var(--e15-corner-size)) 0,100% var(--e15-corner-size),100% 100%,0 100%); }
.e15-corner-pill { border-radius:999px !important; }

/* Decorative object */
.e15-decor-circle::after,
.e15-decor-ring::after,
.e15-decor-square::after,
.e15-decor-bar::after,
.e15-decor-orb::after {
    content:"";
    position:absolute;
    width:var(--e15-decor-size);
    height:var(--e15-decor-size);
    left:var(--e15-decor-x);
    top:var(--e15-decor-y);
    opacity:var(--e15-decor-opacity);
    transform:translate(-50%,-50%) rotate(var(--e15-decor-rotate));
    filter:blur(var(--e15-decor-blur));
    pointer-events:none;
}
.e15-decor-circle::after { border-radius:50%; background:var(--e15-decor-color); }
.e15-decor-ring::after { border-radius:50%; border:calc(var(--e15-ring-thickness) * 3) solid var(--e15-decor-color); background:transparent; }
.e15-decor-square::after { background:var(--e15-decor-color); }
.e15-decor-bar::after { height:calc(var(--e15-decor-size) * .16); background:var(--e15-decor-color); }
.e15-decor-orb::after { border-radius:50%; background:radial-gradient(circle,var(--e15-decor-color),transparent 70%); filter:blur(calc(var(--e15-decor-blur) + 14px)); }
.e15-decor-layer-behind { isolation:isolate; }
.e15-decor-layer-behind::after { z-index:0; }
.e15-decor-layer-behind > * { position:relative; z-index:1; }
.e15-decor-layer-front::after { z-index:4; }

/* Width presets */
.e15-width-full { width:100% !important; max-width:none !important; margin-left:0 !important; margin-right:0 !important; }
.e15-width-1280 { width:calc(100% - 48px) !important; max-width:1280px !important; margin-left:auto !important; margin-right:auto !important; }
.e15-width-1200 { width:calc(100% - 48px) !important; max-width:1200px !important; margin-left:auto !important; margin-right:auto !important; }
.e15-width-960 { width:calc(100% - 48px) !important; max-width:960px !important; margin-left:auto !important; margin-right:auto !important; }
.e15-width-760 { width:calc(100% - 48px) !important; max-width:760px !important; margin-left:auto !important; margin-right:auto !important; }
.e15-width-custom { width:calc(100% - 48px) !important; max-width:var(--e15-custom-max-width,1280px) !important; margin-left:auto !important; margin-right:auto !important; }

/* Advanced child layouts */
.e15-layout-auto-grid { display:grid !important; grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--e15-grid-min)),1fr)); gap:var(--e15-grid-gap) !important; }
.e15-layout-bento { display:grid !important; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--e15-grid-gap) !important; align-items:stretch; }
.e15-layout-bento > * { grid-column:span 4; }
.e15-layout-bento > :nth-child(1) { grid-column:span 8; grid-row:span 2; }
.e15-layout-bento > :nth-child(4n+4) { grid-column:span 8; }
.e15-layout-magazine { display:grid !important; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:var(--e15-grid-gap) !important; align-items:stretch; }
.e15-layout-magazine > :first-child { grid-row:span 2; }
.e15-equal-children { align-items:stretch !important; }
.e15-equal-children > .elementor-element { height:100%; }

/* Image bleed */
.e15-image-bleed-left .elementor-widget-image img,
.e15-image-bleed-left .e15-editorial-featured-media img { width:calc(100% + var(--e15-bleed)); max-width:none; transform:translateX(calc(-1 * var(--e15-bleed))); }
.e15-image-bleed-right .elementor-widget-image img,
.e15-image-bleed-right .e15-editorial-featured-media img { width:calc(100% + var(--e15-bleed)); max-width:none; }
.e15-image-bleed-both .elementor-widget-image img,
.e15-image-bleed-both .e15-editorial-featured-media img { width:calc(100% + (var(--e15-bleed) * 2)); max-width:none; transform:translateX(calc(-1 * var(--e15-bleed))); }

/* Overlap */
.e15-overlap-previous { margin-top:calc(-1 * var(--e15-overlap)) !important; z-index:3; }
.e15-overlap-next { margin-bottom:calc(-1 * var(--e15-overlap)) !important; z-index:3; }
.e15-overlap-both { margin-top:calc(-1 * var(--e15-overlap)) !important; margin-bottom:calc(-1 * var(--e15-overlap)) !important; z-index:3; }

/* Hover */
.e15-hover-lift:hover { transform:translateY(calc(-1 * var(--e15-hover-lift))); }
.e15-hover-scale:hover { transform:scale(var(--e15-hover-scale)); }
.e15-hover-tilt:hover { transform:translateY(-4px) rotate(-.5deg); }
.e15-image-zoom .elementor-widget-image,
.e15-image-zoom .e15-editorial-featured-media { overflow:hidden; }
.e15-image-zoom .elementor-widget-image img,
.e15-image-zoom .e15-editorial-featured-media img { transition:transform var(--e15-transition) ease; }
.e15-image-zoom:hover .elementor-widget-image img,
.e15-image-zoom:hover .e15-editorial-featured-media img { transform:scale(var(--e15-image-zoom)); }

/* Scroll reveal. Editor preview remains visible. */
body:not(.elementor-editor-active) .e15-reveal-fade,
body:not(.elementor-editor-active) .e15-reveal-rise,
body:not(.elementor-editor-active) .e15-reveal-left,
body:not(.elementor-editor-active) .e15-reveal-right,
body:not(.elementor-editor-active) .e15-reveal-scale,
body:not(.elementor-editor-active) .e15-reveal-blur {
    opacity:0;
    transition:opacity var(--e15-reveal-duration) ease var(--e15-reveal-delay), transform var(--e15-reveal-duration) cubic-bezier(.2,.65,.3,1) var(--e15-reveal-delay), filter var(--e15-reveal-duration) ease var(--e15-reveal-delay);
}
body:not(.elementor-editor-active) .e15-reveal-rise { transform:translateY(var(--e15-reveal-distance)); }
body:not(.elementor-editor-active) .e15-reveal-left { transform:translateX(calc(-1 * var(--e15-reveal-distance))); }
body:not(.elementor-editor-active) .e15-reveal-right { transform:translateX(var(--e15-reveal-distance)); }
body:not(.elementor-editor-active) .e15-reveal-scale { transform:scale(.96); }
body:not(.elementor-editor-active) .e15-reveal-blur { filter:blur(12px); }
body:not(.elementor-editor-active) .e15-is-visible { opacity:1; transform:none; filter:none; }

/* Sticky */
.e15-sticky { position:sticky !important; top:var(--e15-sticky-offset) !important; z-index:var(--e15-sticky-z) !important; align-self:flex-start; }

/* Overflow */
.e15-overflow-visible { overflow:visible !important; }
.e15-overflow-hidden { overflow:hidden !important; }
.e15-overflow-clip { overflow:clip !important; }

@media (max-width: 1024px) {
    .e15-layout-bento { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .e15-layout-bento > *, .e15-layout-bento > :nth-child(1), .e15-layout-bento > :nth-child(4n+4) { grid-column:span 1; grid-row:auto; }
    .e15-layout-magazine { grid-template-columns:1fr 1fr; }
    .e15-disable-fx-tablet::before, .e15-disable-fx-tablet::after { display:none !important; }
    .e15-disable-fx-tablet { clip-path:none !important; outline:none !important; box-shadow:none !important; transform:none !important; filter:none !important; }
}
@media (max-width: 767px) {
    .e15-width-1280, .e15-width-1200, .e15-width-960, .e15-width-760, .e15-width-custom { width:calc(100% - 32px) !important; }
    .e15-layout-bento, .e15-layout-magazine { grid-template-columns:1fr; }
    .e15-disable-fx-mobile::before, .e15-disable-fx-mobile::after { display:none !important; }
    .e15-disable-fx-mobile { clip-path:none !important; outline:none !important; box-shadow:none !important; transform:none !important; filter:none !important; }
}
@media (prefers-reduced-motion: reduce) {
    .e15-enhanced-container,
    .e15-enhanced-container *,
    .e15-reveal-fade,
    .e15-reveal-rise,
    .e15-reveal-left,
    .e15-reveal-right,
    .e15-reveal-scale,
    .e15-reveal-blur { transition-duration:0.01ms !important; animation-duration:0.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
    .e15-reveal-fade,
    .e15-reveal-rise,
    .e15-reveal-left,
    .e15-reveal-right,
    .e15-reveal-scale,
    .e15-reveal-blur { opacity:1 !important; transform:none !important; filter:none !important; }
}
