/* Emma Coach — Design Polish (landing "De la Epuizare la Echilibru") */
body { background:#050505; color:#fff; overflow-x:hidden; }
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:#050505; }
::-webkit-scrollbar-thumb { background:#333; border-radius:3px; }
.elementor-widget-text-editor p:last-child { margin-bottom:0; }

span.grad { background:linear-gradient(135deg,#fff,#a78bfa); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
span.grad-warm { background:linear-gradient(135deg,#fff,#facc15); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
span.red { color:#f87171; }
span.wht { color:#fff; font-weight:500; }
span.ind { color:#818cf8; font-weight:500; }
span.grn { color:#4ade80; font-weight:600; }
span.dim { color:#737373; }

.ec-cta .elementor-button {
  background:linear-gradient(135deg,#6366f1,#8b5cf6,#a78bfa) !important;
  background-size:200% 200% !important;
  box-shadow:0 0 20px rgba(99,102,241,.30), 0 0 60px rgba(99,102,241,.10);
  animation:ecPulseGlow 3s ease-in-out infinite;
  position:relative; overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease;
}
.ec-cta .elementor-button::before {
  content:''; position:absolute; top:0; left:-100%;
  width:100%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
  transition:left .55s ease;
}
.ec-cta .elementor-button:hover::before { left:100%; }
.ec-cta .elementor-button:hover {
  transform:translateY(-2px) scale(1.02);
  box-shadow:0 0 40px rgba(99,102,241,.55), 0 0 100px rgba(99,102,241,.28);
}
@keyframes ecPulseGlow {
  0%,100% { box-shadow:0 0 20px rgba(99,102,241,.30), 0 0 60px rgba(99,102,241,.10); }
  50%     { box-shadow:0 0 30px rgba(99,102,241,.50), 0 0 80px rgba(99,102,241,.20); }
}
.ec-outline .elementor-button { transition:all .3s ease; }
.ec-outline .elementor-button:hover {
  transform:translateY(-1px);
  box-shadow:0 0 20px rgba(99,102,241,.22);
  border-color:rgba(99,102,241,.75) !important;
}

.ec-glow { position:relative; overflow:hidden; }
.ec-glow::before {
  content:''; position:absolute;
  top:50%; left:50%; transform:translate(-50%,-50%);
  width:620px; height:620px;
  background:rgba(99,102,241,.09);
  border-radius:50%; filter:blur(120px);
  pointer-events:none; z-index:0;
}
.ec-glow > .e-con-inner, .ec-glow > .elementor-widget, .ec-glow > .e-child { position:relative; z-index:1; }
.ec-glow-purple::before { background:rgba(168,85,247,.07); }
.ec-glow-top::before { top:14%; }
.ec-glow-bottom::before { top:86%; }

.ec-card { transition:background .35s ease, border-color .35s ease, transform .35s ease, box-shadow .35s ease; }
.ec-card:hover {
  background:rgba(255,255,255,.055) !important;
  border-color:rgba(99,102,241,.22) !important;
  transform:translateY(-4px);
  box-shadow:0 20px 40px rgba(0,0,0,.35);
}
.ec-pain { transition:background .3s ease, border-color .3s ease; }
.ec-pain:hover {
  background:rgba(239,68,68,.06) !important;
  border-color:rgba(239,68,68,.22) !important;
}
.ec-day { position:relative; overflow:hidden; transition:border-color .4s ease, transform .4s ease, box-shadow .4s ease; }
.ec-day::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,#6366f1,#a78bfa);
  opacity:0; transition:opacity .4s ease; z-index:2;
}
.ec-day:hover::before { opacity:1; }
.ec-day:hover {
  border-color:rgba(99,102,241,.22) !important;
  transform:translateY(-4px);
  box-shadow:0 20px 40px rgba(0,0,0,.35);
}
.ec-bonus { transition:border-color .3s ease, transform .3s ease; }
.ec-bonus:hover { border-color:rgba(250,204,21,.28) !important; transform:translateY(-3px); }

.ec-testi { position:relative; }
.ec-testi::before {
  content:'\201C';
  position:absolute; top:2px; left:18px;
  font-size:62px; font-family:'Playfair Display',serif;
  color:rgba(99,102,241,.16); line-height:1;
  pointer-events:none; z-index:0;
}
.ec-testi > .e-con-inner, .ec-testi > .elementor-widget { position:relative; z-index:1; }

.ec-price-old { text-decoration:line-through; color:#737373; }
.ec-price-new { color:#22c55e; text-shadow:0 0 22px rgba(34,197,94,.35); }

.ec-divider .elementor-divider-separator {
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.10),transparent) !important;
  height:1px; border:0 !important;
}

.ec-faq .elementor-toggle-item {
  border:1px solid rgba(255,255,255,.07);
  border-radius:12px; margin-bottom:12px;
  background:rgba(255,255,255,.02);
  overflow:hidden;
  transition:border-color .3s ease, background .3s ease;
}
.ec-faq .elementor-toggle-item:hover { border-color:rgba(99,102,241,.20); }
.ec-faq .elementor-tab-title { border:0 !important; padding:20px 24px !important; }
.ec-faq .elementor-tab-title.elementor-active { background:rgba(99,102,241,.05); }
.ec-faq .elementor-tab-content { border:0 !important; padding:0 24px 20px !important; }

.ec-guarantee {
  background:linear-gradient(135deg,rgba(34,197,94,.10),rgba(34,197,94,.04)) !important;
  border:1px solid rgba(34,197,94,.28) !important;
  border-radius:20px !important;
}

.ec-pricing {
  position:relative;
  background:linear-gradient(to bottom,rgba(255,255,255,.045),rgba(255,255,255,.012)) !important;
  border:1px solid rgba(255,255,255,.09) !important;
  border-radius:26px !important;
  overflow:hidden;
}
.ec-pricing::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,transparent,#6366f1,transparent); z-index:2;
}

.ec-urgency {
  background:linear-gradient(90deg,rgba(239,68,68,.16),rgba(239,68,68,.05),rgba(239,68,68,.16)) !important;
  border-bottom:1px solid rgba(239,68,68,.22) !important;
}
span.ec-dot {
  display:inline-block; width:8px; height:8px;
  background:#ef4444; border-radius:50%;
  margin-right:8px; vertical-align:middle;
  animation:ecBlink 1.6s ease-in-out infinite;
}
@keyframes ecBlink { 0%,100% { opacity:1; } 50% { opacity:.35; } }

.ec-vsl .elementor-wrapper {
  border-radius:18px; overflow:hidden;
  border:2px solid rgba(99,102,241,.30);
  animation:ecBorderGlow 4s ease-in-out infinite;
}
@keyframes ecBorderGlow {
  0%,100% { border-color:rgba(99,102,241,.30); }
  50%     { border-color:rgba(99,102,241,.68); }
}
.ec-vsl .elementor-custom-embed-play i {
  color:#fff; opacity:1;
  text-shadow:0 0 30px rgba(99,102,241,.85);
  transition:transform .3s ease;
}
.ec-vsl .elementor-custom-embed-play:hover i { transform:scale(1.12); }

.ec-portrait img { filter:grayscale(100%); transition:filter .7s ease; border-radius:18px; }
.ec-portrait:hover img { filter:grayscale(0%); }

.ec-float { animation:ecFloat 3s ease-in-out infinite; }
@keyframes ecFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }

.elementor-icon-list-item { align-items:flex-start !important; }
.elementor-icon-list-icon { padding-top:3px; }

.ec-header {
  background:rgba(5,5,5,.88) !important;
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.07) !important;
}
.ec-footer { border-top:1px solid rgba(255,255,255,.07); }

.wpforms-container .wpforms-field-label { color:#e5e5e5 !important; font-weight:500 !important; font-size:14px !important; }
.wpforms-container input[type=text],
.wpforms-container input[type=email],
.wpforms-container input[type=tel],
.wpforms-container select,
.wpforms-container textarea {
  background:rgba(255,255,255,.04) !important;
  border:1px solid rgba(255,255,255,.10) !important;
  color:#fff !important;
  border-radius:10px !important;
  padding:12px 14px !important;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.wpforms-container input:focus,
.wpforms-container textarea:focus,
.wpforms-container select:focus {
  border-color:rgba(99,102,241,.65) !important;
  box-shadow:0 0 0 3px rgba(99,102,241,.15) !important;
  outline:none !important;
}
.wpforms-container ::placeholder { color:#525252 !important; }
.wpforms-container .wpforms-field-description { color:#737373 !important; font-size:12px !important; }
.wpforms-container .wpforms-field-label-inline { color:#a3a3a3 !important; font-size:13px !important; }
.wpforms-container button[type=submit] {
  background:linear-gradient(135deg,#6366f1,#8b5cf6) !important;
  color:#fff !important;
  border:0 !important;
  border-radius:12px !important;
  padding:15px 32px !important;
  font-weight:600 !important;
  font-size:15px !important;
  width:100%;
  transition:transform .25s ease, box-shadow .25s ease;
}
.wpforms-container button[type=submit]:hover {
  transform:translateY(-2px);
  box-shadow:0 0 30px rgba(99,102,241,.45) !important;
}

@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after {
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}

@media (max-width:767px) {
  .ec-glow::before { width:340px; height:340px; filter:blur(80px); }
  .ec-testi::before { font-size:46px; }
}

/* --- ec-icon-size-fix ---
   Controlul icon_size din Elementor nu produce efect pe aceasta instalare
   (seteaza o variabila CSS pe care foaia de stil de baza nu o foloseste),
   deci iconitele din liste ies uriase. Le fixam aici. */
.elementor-icon-list-icon{
  width:18px; min-width:18px; height:18px;
  display:inline-flex; align-items:center; justify-content:center;
  flex:0 0 18px;
}
.elementor-icon-list-icon svg,
.elementor-icon-list-icon i{
  width:16px !important; height:16px !important;
  font-size:16px !important;
  max-width:16px; max-height:16px;
}
.elementor-icon-list-item{ gap:10px; }
.elementor-icon-list-items{ list-style:none; }


/* --- ec-standalone-icons ---
   Widget-urile 'icon' de sine statatoare nu aveau NICIO dimensiune setata,
   deci Elementor le randa la valoarea implicita din frontend.min.css:
   .elementor-icon{color:#69727d; font-size:50px} -> uriase si gri.
   Controlul icon_size din editor e mut pe instalarea asta, deci marimile
   se fixeaza aici, pe ID de element. */

.elementor-icon{
  font-size:24px;
  color:#a78bfa;
  line-height:1;
}
.elementor-icon i,
.elementor-icon svg{ width:1em; height:1em; }
.elementor-icon svg{ fill:currentColor; }

/* homepage: cele 4 bonusuri (casti, fisier, checklist, lacat) */
.elementor-element-d106dc4 .elementor-icon,
.elementor-element-553135d .elementor-icon,
.elementor-element-8f49e0a .elementor-icon,
.elementor-element-b656156 .elementor-icon{ font-size:22px; }

/* homepage: scut = garantie (verde, semnal de incredere) */
.elementor-element-07fa206 .elementor-icon{ font-size:30px; color:#4ade80; }

/* homepage: fulger deasupra 'Ai doua alegeri acum' */
.elementor-element-e7c0d3d .elementor-icon{ font-size:30px; }

/* multumesc: bifa mare de confirmare - ramane proeminenta, dar verde */
.elementor-element-c15d582 .elementor-icon{ font-size:54px; color:#4ade80; }

/* multumesc: avertisment spam - discret, chihlimbar */
.elementor-element-06ed096 .elementor-icon{ font-size:17px; color:#fbbf24; }

/* multumesc: punctele de pe cronologie - erau cercuri gri de 50px */
.elementor-element-96bb8d1 .elementor-icon,
.elementor-element-bc9b1b9 .elementor-icon,
.elementor-element-b14e8ac .elementor-icon{ font-size:10px; color:#818cf8; }
.elementor-element-be11a21 .elementor-icon{ font-size:15px; color:#fbbf24; }

/* multumesc: fulger 'Ultimul pas' */
.elementor-element-cd1e54e .elementor-icon{ font-size:30px; }

/* --- ec-empty-icon-slots ---
   Cateva liste au itemi fara iconita setata. Elementor randeaza oricum
   spanul .elementor-icon-list-icon, care lasa un gol si impinge textul.
   Il colapsam cand e gol. */
.elementor-icon-list-icon:empty{
  display:none;
  width:0;
  min-width:0;
  flex:0 0 0;
}


/* --- ec-tst-shot ---
   Capturi reale de WhatsApp folosite ca testimoniale.
   Dimensionarea e gandita intai pentru telefon: captura are 480px latime,
   deci pe mobil o lasam sa umple coloana (dar nu peste latimea ei reala,
   ca sa nu se pixeleze), iar pe ecrane mari o limitam la 420px ca sa nu
   domine sectiunea. */

.ec-tst-shot img{
  display:block;
  width:100%;
  max-width:480px;
  height:auto;
  margin-inline:auto;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 10px 30px rgba(0,0,0,.45);
}

/* telefon: marginile containerului sunt deja stranse, deci captura
   poate merge pe toata latimea disponibila */
@media (max-width:767px){
  .ec-tst-shot img{
    max-width:100%;
    border-radius:12px;
  }
  .ec-tst-shot{ margin-bottom:18px; }
}

/* tableta si desktop: nu lasam captura sa creasca peste rezolutia ei reala */
@media (min-width:768px){
  .ec-tst-shot img{ max-width:420px; }
}
