/*
Theme Name: Metamorpha Web V2
Theme URI: https://metamorphaweb.com/
Description: Astra child theme / design system base for Metamorpha Web. Optimized for Elementor and a one-page service website.
Author: Metamorpha Web
Version: 2.4.0
Template: astra
Text Domain: metamorpha-web
*/

:root {
  --mw-primary: #159447;
  --mw-primary-dark: #0e7136;
  --mw-primary-soft: #eaf7ef;
  --mw-ink: #0a0d0e;
  --mw-text: #202427;
  --mw-muted: #6b7378;
  --mw-surface: #f5f7f6;
  --mw-white: #ffffff;
  --mw-border: #e3e7e5;
  --mw-shadow: 0 20px 60px rgba(10, 13, 14, .08);
  --mw-radius-sm: 12px;
  --mw-radius-md: 20px;
  --mw-radius-lg: 32px;
  --mw-container: 1180px;
  --mw-ease: cubic-bezier(.22, 1, .36, 1);
}

html { scroll-behavior: smooth; }

body {
  background: var(--mw-white);
  color: var(--mw-text);
  font-family: Inter, Arial, Helvetica, sans-serif;
  overflow-x: hidden;
}

a { color: var(--mw-primary); }
a:hover { color: var(--mw-primary-dark); }

.mw-wrap {
  width: min(calc(100% - 40px), var(--mw-container));
  margin-inline: auto;
}

.mw-section {
  position: relative;
  padding: clamp(70px, 8vw, 120px) 0;
}

.mw-section--soft { background: var(--mw-surface); }
.mw-section--dark { background: var(--mw-ink); color: var(--mw-white); }

.mw-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--mw-primary);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.mw-eyebrow::before {
  content: "";
  width: 26px;
  height: 2px;
  background: currentColor;
}

.mw-display {
  margin: 0;
  color: var(--mw-ink);
  font-size: clamp(44px, 6vw, 86px);
  line-height: .95;
  letter-spacing: -.055em;
  font-weight: 850;
}

.mw-display em {
  color: var(--mw-primary);
  font-style: normal;
}

.mw-lead {
  max-width: 680px;
  color: var(--mw-muted);
  font-size: clamp(17px, 1.5vw, 20px);
  line-height: 1.65;
}

.mw-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.mw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 24px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: var(--mw-primary);
  color: #fff !important;
  font-weight: 800;
  text-decoration: none !important;
  transition: transform .35s var(--mw-ease), box-shadow .35s var(--mw-ease), background .25s ease;
}

.mw-btn:hover {
  background: var(--mw-primary-dark);
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(21, 148, 71, .22);
}

.mw-btn--ghost {
  background: transparent;
  border-color: var(--mw-border);
  color: var(--mw-ink) !important;
}

.mw-btn--ghost:hover {
  background: var(--mw-ink);
  border-color: var(--mw-ink);
  color: #fff !important;
}

.mw-card {
  background: var(--mw-white);
  border: 1px solid var(--mw-border);
  border-radius: var(--mw-radius-md);
  box-shadow: 0 8px 30px rgba(10, 13, 14, .04);
  transition: transform .5s var(--mw-ease), box-shadow .5s var(--mw-ease), border-color .3s ease;
}

.mw-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--mw-shadow);
  border-color: rgba(21, 148, 71, .28);
}

.mw-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.mw-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.mw-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }

.mw-float {
  animation: mwFloat 6s ease-in-out infinite;
  will-change: transform;
}

.mw-float--slow { animation-duration: 8s; }
.mw-float--fast { animation-duration: 5s; }

@keyframes mwFloat {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
  50% { transform: translate3d(0, -12px, 0) rotate(.4deg); }
}

.mw-orb {
  position: absolute;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(21,148,71,.22), rgba(21,148,71,0) 68%);
  pointer-events: none;
  filter: blur(2px);
}

.mw-glow {
  box-shadow: 0 0 0 1px rgba(21,148,71,.10), 0 24px 70px rgba(21,148,71,.12);
}

/* Elementor */
.elementor-page .entry-header,
.elementor-page .page-header { display: none; }

.elementor-widget-button .elementor-button {
  border-radius: 12px;
  font-weight: 800;
  transition: transform .35s var(--mw-ease), box-shadow .35s var(--mw-ease),
              background-color .25s ease, color .25s ease, border-color .25s ease;
}
.elementor-widget-button .elementor-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(21,148,71,.16);
}

.mw-reveal,
.mw-reveal-up,
.mw-reveal-left,
.mw-reveal-right {
  opacity: 0;
  transition: opacity .8s var(--mw-ease), transform .8s var(--mw-ease);
  will-change: opacity, transform;
}
.mw-reveal { transform: scale(.97); }
.mw-reveal-up { transform: translateY(36px); }
.mw-reveal-left { transform: translateX(-36px); }
.mw-reveal-right { transform: translateX(36px); }

.mw-reveal.is-visible,
.mw-reveal-up.is-visible,
.mw-reveal-left.is-visible,
.mw-reveal-right.is-visible {
  opacity: 1;
  transform: none;
}

.mw-delay-1 { transition-delay: .08s; }
.mw-delay-2 { transition-delay: .16s; }
.mw-delay-3 { transition-delay: .24s; }
.mw-delay-4 { transition-delay: .32s; }

.mw-marquee {
  overflow: hidden;
  white-space: nowrap;
  border-top: 1px solid var(--mw-border);
  border-bottom: 1px solid var(--mw-border);
  padding: 16px 0;
}
.mw-marquee__track {
  display: inline-flex;
  gap: 44px;
  min-width: max-content;
  animation: mwMarquee 24s linear infinite;
}
.mw-marquee__item {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.mw-marquee__item::after {
  content: "✦";
  color: var(--mw-primary);
}
@keyframes mwMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.mw-mockup {
  position: relative;
  border-radius: 22px;
  background: #101415;
  padding: 10px;
  box-shadow: 0 30px 80px rgba(10,13,14,.18);
}
.mw-mockup img {
  display: block;
  width: 100%;
  border-radius: 15px;
}

@media (max-width: 921px) {
  .mw-grid-2,
  .mw-grid-3,
  .mw-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mw-display { font-size: clamp(44px, 8vw, 72px); }
}

@media (max-width: 600px) {
  .mw-wrap { width: min(calc(100% - 28px), var(--mw-container)); }
  .mw-section { padding: 64px 0; }
  .mw-grid-2,
  .mw-grid-3,
  .mw-grid-4 { grid-template-columns: 1fr; }
  .mw-display { font-size: 46px; }
  .mw-actions { flex-direction: column; align-items: stretch; }
  .mw-btn { width: 100%; }
  .mw-orb { width: 150px; height: 150px; }
}

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

.mw-page-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  background: #0a0d0e;
  pointer-events: none;
  animation: mwLoaderOut .65s .35s forwards;
}
.mw-page-loader span {
  width: 44px;
  height: 44px;
  border: 3px solid rgba(255,255,255,.18);
  border-top-color: #159447;
  border-radius: 50%;
  animation: mwSpin .8s linear infinite;
}
@keyframes mwSpin { to { transform: rotate(360deg); } }
@keyframes mwLoaderOut { to { opacity: 0; visibility: hidden; } }


/* =========================================================
   METAMORPHA BELOW-HERO V2 — COLOR FIX / ELEMENTOR OVERRIDES
   ========================================================= */

.mw-v2-dark,
.mw-v2-dark .elementor-widget-container,
.mw-v2-dark .elementor-heading-title,
.mw-v2-dark h1,
.mw-v2-dark h2,
.mw-v2-dark h3,
.mw-v2-dark h4,
.mw-v2-dark h5,
.mw-v2-dark h6 {
  color: #FFFFFF !important;
}

.mw-v2-dark p,
.mw-v2-dark li,
.mw-v2-dark .elementor-widget-text-editor,
.mw-v2-dark .elementor-widget-text-editor p,
.mw-v2-dark .mw-v2-lead {
  color: #B9C0BC !important;
}

.mw-v2-dark .mw-v2-kicker,
.mw-v2-dark .mw-v2-num,
.mw-v2-kicker {
  color: #159447 !important;
}

.mw-v2-dark .mw-v2-num {
  color: #FFFFFF !important;
  background: #159447 !important;
}

.mw-v2-card-dark,
.mw-v2-dark .mw-v2-card-dark {
  background: #111715 !important;
  border-color: #27302C !important;
}

.mw-v2-card-dark h3,
.mw-v2-card-dark .elementor-heading-title {
  color: #FFFFFF !important;
}

.mw-v2-card-dark p {
  color: #AEB7B2 !important;
}

/* Light sections */
.mw-v2-section:not(.mw-v2-dark) .elementor-heading-title,
.mw-v2-section:not(.mw-v2-dark) h1,
.mw-v2-section:not(.mw-v2-dark) h2,
.mw-v2-section:not(.mw-v2-dark) h3,
.mw-v2-section:not(.mw-v2-dark) h4 {
  color: #0A0D0E;
}

.mw-v2-section:not(.mw-v2-dark) p,
.mw-v2-section:not(.mw-v2-dark) li {
  color: #5C6460;
}

/* CTA green section */
#contacto,
#contacto .elementor-widget-container,
#contacto .elementor-heading-title,
#contacto h2,
#contacto p {
  color: #FFFFFF !important;
}

#contacto .mw-v2-kicker {
  color: #E7F7ED !important;
}


/* =========================================================
   METAMORPHA HERO — SECONDARY BUTTON FIX
   Applies to widgets using class: mw-secondary-btn
   ========================================================= */
.mw-secondary-btn .elementor-button {
  background-color: #FFFFFF !important;
  color: #0A0D0E !important;
  border: 1px solid #D9DEDB !important;
  box-shadow: none !important;
}

.mw-secondary-btn .elementor-button:hover,
.mw-secondary-btn .elementor-button:focus {
  background-color: #0A0D0E !important;
  color: #FFFFFF !important;
  border-color: #0A0D0E !important;
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(10,13,14,.12) !important;
}


/* =========================================================
   V2.4 — FORCE CORRECT CONTRAST ON DARK BELOW-HERO SECTIONS
   Elementor may inject per-widget heading colors. These ID-scoped
   rules intentionally override them.
   ========================================================= */

#problema,
#portafolio {
  background-color: #0A0D0E !important;
}

#problema .elementor-heading-title,
#problema .elementor-widget-heading .elementor-heading-title,
#problema h1,
#problema h2,
#problema h3,
#problema h4,
#portafolio .elementor-heading-title,
#portafolio .elementor-widget-heading .elementor-heading-title,
#portafolio h1,
#portafolio h2,
#portafolio h3,
#portafolio h4 {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

#problema .elementor-widget-text-editor,
#problema .elementor-widget-text-editor *,
#problema p,
#problema li,
#portafolio .elementor-widget-text-editor,
#portafolio .elementor-widget-text-editor *,
#portafolio p,
#portafolio li {
  color: #B9C0BC !important;
  -webkit-text-fill-color: #B9C0BC !important;
}

#problema .mw-v2-kicker,
#portafolio .mw-v2-kicker {
  color: #19B75B !important;
  -webkit-text-fill-color: #19B75B !important;
}

#problema .mw-v2-num {
  background-color: #19B75B !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

#problema .mw-v2-card-dark {
  background-color: #111715 !important;
  border-color: #27302C !important;
}

#problema .mw-v2-card-dark .elementor-heading-title,
#problema .mw-v2-card-dark h3 {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

#problema .mw-v2-card-dark p {
  color: #AEB7B2 !important;
  -webkit-text-fill-color: #AEB7B2 !important;
}
