/* fuentes */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Manrope:wght@500;600;700&display=swap'); 

/***** ------ TOKENS ------ ******/

:root { 
  --bg: #FEFDFA; 
  --bg-alt: #F2F1EE; 

  --text: #02292F; 
  --text-2: rgba(2,41,47,0.72); 

  --brand: #135C67; /* color marca */
  --brand-2: #308970; 

  --warm: #DDC2A4; 
  --dark: #01191D; 

  --border: rgba(2,41,47,0.12);
  --r-btn: 40px; 
  --r-card: 12px; 

  --container: 1200px;
  --interaction: #308970;
}

/***** ------ BASE / RESET ------ ******/

* { box-sizing: border-box; } 

body {
  margin: 0; 
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; 
  background: var(--bg); 
  color: var(--text); 
  line-height: 1.5; 
  min-height: 100vh; 
  display: flex; 
  flex-direction: column;
}

h1, h2, h3 {
  font-family: "Manrope", "Inter", system-ui, sans-serif; 
  letter-spacing: -0.02em; 
  margin: 0 0 12px 0; 
}

p {
  margin: 0 0 12px 0;
  color: var(--text-2); 
}

html, body { 
  height: 100%; 
}        

main { flex: 1; } 

.container {
  width: min(var(--container), calc(100% - 48px)); 
  margin: 0 auto; 
}

/* ancho límite superior y márgenes laterales definidos */
.header .container {
  width: min(1400px, calc(100% - 64px)); 
}

/***** ------ HEADER + NAV ------ ******/
.header {
  position: sticky; 
  top: 0; 
  z-index: 10;
  background:
    linear-gradient(
      180deg,
      rgba(254,253,250,0.96),
      rgba(242,241,238,0.96)
    );
  border-bottom: 1px solid rgba(2,41,47,0.16);
  backdrop-filter: blur(6px);
}

.header-flex {
  display: flex; 
  align-items: center; 
  justify-content: space-between; 
  padding: 4px 0; 
}

/* logo */
.brand{
  display: inline-flex;
  align-items: center;
  gap: 0;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  line-height: 1;
}

.brand-logo{
  height: 80px;   
  width: auto;
  display: block;
}

.brand:hover{
  opacity: 0.92;
}

.nav {
  display: flex; 
  align-items: center; 
  gap: 26px; 
  margin-left: auto; 
  
}

.nav button,
.nav .nav-link {
  background: transparent; 
  border: none; 
  padding: 6px 2px; /* area clic */
  line-height: 1.1;
  font-size: 14px; 
  font-weight: 500; 
  color: var(--text); 
  cursor: pointer; 
  position: relative; 
  text-decoration: none;  
  display: inline-flex;   
  align-items: center;
}

.nav .nav-link{
  text-decoration: none;
  color: inherit;
}

.nav button::after,
.nav .nav-link::after  {
  content: ""; 
  position: absolute; 
  left: 0; 
  bottom: -6px; 
  width: 100%; 
  height: 2px; 
  background: var(--brand-2); 
  transform: scaleX(0); 
  transform-origin: left; 
  transition: transform .18s ease; 
}

/* botoin inicio */
.nav .nav-link[data-nav="inicio"]{
  color: var(--brand);
  font-weight: 600;
  opacity: 0.85;
}

.nav .nav-link[data-nav="inicio"]:hover{
  opacity: 1;
}

/* muestra subrayado */
.nav button:hover::after,
.nav .nav-link:hover::after{
  transform: scaleX(1);
}

.nav button:focus-visible { 
  outline: none; 
} 

/* CTA NAV (Acceso) */
.btn-nav.primary {
  background: var(--brand-2); 
  color: var(--bg);           
  padding: 13px 20px;        
  font-size: 15px;           
  border-radius: var(--r-btn);
  font-weight: 600;
}

.nav .btn-nav.primary::after{
  display: none;
}

.btn-nav.primary:hover {
  background: var(--text);
}

/***** ------ HERO ------ ******/

.hero {
  padding: 64px 0 72px;
  background:
    radial-gradient(
      800px 420px at 50% 0%,
      rgba(19,92,103,0.28) 0%,   
      rgba(19,92,103,0.18) 32%,
      rgba(19,92,103,0.08) 55%,
      transparent 72%
    ),
    linear-gradient(
      180deg,
      rgba(19,92,103,0.10) 0%,
      rgba(254,253,250,0.95) 55%,
      var(--bg) 100%
    );
}

.hero.hero--home{
  padding: 115px 0 120px; 
  position: relative;
  overflow: hidden;
  
}

.hero.hero--home::after{
  content:"";
  position:absolute;
  inset:-10%;
  background:
    url("/static/img/hero-wave.jpg") right center / cover no-repeat;
  opacity: 0.13;
  filter: blur(1.5px) saturate(0.9);
  pointer-events:none;
  
}

.hero-inner {
  max-width: 860px; 
  margin: 0 auto; 
  text-align: center; 
}

.hero-eyebrow {
  font-family: "Manrope", sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;     
  text-transform: uppercase;
  color: var(--brand);
  margin-bottom: 28px;
}

.hero.hero-eyebrow {
  font-family: "Manrope", sans-serif;
  font-size: 13px;
  letter-spacing: 0.14em;     
  text-transform: uppercase;
  color: var(--brand);
  margin-bottom: 28px;
}

/* subrayado eyebrow */
.hero-eyebrow::after {
  content: "";
  display: block;
  width: 48px;
  height: 2px;
  margin: 16px auto 0;
  background: rgba(19,92,103,0.35);
}

.hero h1{
  font-size: clamp(26px, 3vw, 40px); 
  line-height: 1.06;
  letter-spacing: 0.014em;  
}

.hero.hero--home h1 {
  font-size: clamp(36px, 4.8vw, 58px);
  line-height: 1.04; 
  color: var(--text); 
  max-width: 780px; 
  margin: 0 auto 14px auto; 
  text-shadow: 0 6px 18px rgba(19,92,103,0.08);
}

.hero h1 span { 
  color: var(--brand); 
} 

.hero-bajada {
  max-width: 640px; 
  font-size: 14px; 
  color: rgba(2,41,47,0.75); 
  margin: 0 auto; 
  margin-bottom: 36px; 
  text-align: center;
}

.hero.hero-bajada {
  max-width: 640px; 
  font-size: 16px; 
  color: rgba(2,41,47,0.75); 
  margin: 0 auto; 
  margin-bottom: 36px; 
  text-align: center;
}

.hero-acciones {
  display: flex; 
  gap: 18px;
  margin-top: 0; /* aire */
  flex-wrap: wrap; /* para responsive */
  justify-content: center; 
}

/***** ------ BOTONES ------ ******/

/* forma + comportamiento general */
.primary, .secundary {
  position: relative; /* base para efecto ripple del boton */
  overflow: hidden; 
  isolation: isolate; 
  cursor: pointer; 
  display: inline-flex; 
  align-items: center; 
  gap: 20px; 
  padding: 15px 24px;
  font-size: 15px; 
  border-radius: var(--r-btn); 
  font-weight: 600; 
  transition: 
    background .32s ease,
    color .32s ease,
    border-color .32s ease,
    transform .32s ease;
}

/* estructura primario */
.primary { 
  background: var(--brand-2);
  color: var(--bg);
  border: 1px solid transparent; 
} 

/* estructura secundaria(ghost button) */
.secundary {
  background: transparent; 
  color: var(--text);
  border: 2px solid rgba(2, 41, 47, 0.301); 
  box-shadow: 0 8px 14px rgba(2,41,47,0.18);
}

.secundary:hover {
  background: var(--text); 
  color: var(--bg); 
  border-color: var(--text); 
  transform: translateY(-1px); 
}

.btn-ink {
  position: absolute; 
  left: 50%; 
  top: 50%; 
  width: 0; 
  height: 0; 
  border-radius: 50%; 
  transform: translate(-50%, -50%);
  pointer-events: none; 
  z-index: 0;
  opacity: 0; 
  transition: 
    width .55s ease,
    height .55s ease,
    opacity .45s ease;
}

.primary .btn-ink { 
  background: rgba(254,253,250,0.22); 
} 

.secundary .btn-ink { 
  background: rgba(12,78,88,0.10); 
} 

.btn-ink.is-active {
  width: 240%; 
  height: 240%; 
  opacity: 1; 
}

/* ------ BOTONES POR CONTEXTO ------ */

/* botones del hero */
.btn-hero{
  letter-spacing: 0.04em; 
}

.btn-hero.primary {
  background: var(--brand-2); 
  opacity: 1;
  color: var(--bg); 
  border-color: rgba(26, 58, 63, 0.25);
  box-shadow: 0 8px 24px rgba(2,41,47,0.18);
}
.btn-hero.primary:hover {
  background: var(--text); 
  color: var(--bg); 
  transform: translateY(-1px); 
}

.btn-hero.secundary:hover .btn-ink{
  opacity: 1;
}

/***** ------ PANELS ------ ******/

/* PANELS */ 

.panel {
  display: none;
  width: 100%;         
  margin: 0;            
  padding: 56px 0 64px;
  position: relative;
}

.panel.active {
  display: block;
  padding: 56px 0 64px;
  position: relative;
  background:
    linear-gradient(
      180deg,
      rgba(12,78,88,0.12) 0%,
      rgba(12,78,88,0.06) 35%,
      transparent 100%
    );
  box-shadow: inset 0 1px 0 rgba(12,78,88,0.25);
}

.tabs + .panel {
  margin-top: 0;
}

/* LAYOUT CARDS VALORES */

/* Grid / layout */
.panel[data-view="valores"] .pricing {
  display: grid;                              
  gap: 24px;                                 
  margin-top: 24px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 900px) {
  .panel[data-view="valores"] .pricing {
    grid-template-columns: 1fr; 
  }
}

/* Plan base */

.panel[data-view="valores"] .plan {
  display: flex;
  position: relative;
  flex-direction: column;
  justify-content: space-between;
  min-height: 260px;
  border-radius: var(--r-card);
  padding: 26px 24px;
  background: linear-gradient(
    180deg,
    #EFF4F3 0%,
    #E6EEEC 100%
  );
  border: 1px solid rgba(2, 41, 47, 0.12);
  box-shadow:
    0 16px 36px rgba(1,25,29,0.16);
  transition: transform .25s ease, box-shadow .25s ease;
}

/* Plan PRO */

.panel[data-view="valores"] .plan--pro {
  background: linear-gradient(
    180deg,
    #135C67 0%,
    #0C4E58 100%
  );
  border: none;
  box-shadow:
    0 22px 48px rgba(12,78,88,0.40),
    inset 0 1px 0 rgba(255,255,255,0.10);
}

/* Contenido interno */ 
/* linea superior */ 
.panel[data-view="valores"] .plan--pro::before{
  content:"";
  position:absolute;
  left: 18px;
  right: 18px;
  top: 14px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(241, 235, 228, 0.95), 
    rgba(255,255,255,0.75),
    rgba(235, 224, 213, 0.95)
  );
  box-shadow:
    0 2px 6px rgba(0,0,0,0.35);
}

.panel[data-view="valores"] .plan--pro::after{
    content:"";
  position:absolute;
  inset:-1px; /* permite que respire */
  border-radius: inherit;
  pointer-events: none;
  background:
    radial-gradient(
      140% 90% at 10% -10%,
      rgba(255,255,255,0.16),
      transparent 65%
    ),
    radial-gradient(
      120% 80% at 90% 110%,
      rgba(221,194,164,0.20),
      transparent 70%
    );
  opacity: 0.9;       
}

.panel[data-view="valores"] .plan:not(.plan--pro)::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height: 60%;
  background: radial-gradient(
    120% 60% at 50% 120%,
    rgba(221,194,164,0.22),
    transparent 65%
  );
  pointer-events: none;
}

/* Lista de beneficios */

.plan__lista{
  position: relative;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.plan__lista li{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(2,41,47,0.10);
  font-size: 14px;
  color: rgba(2,41,47,0.82);
}

.plan__lista li::before{
  content:"";
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: rgba(12,78,88,0.65);
  flex: 0 0 6px;
}

.plan--pro .plan__lista li{
  color: rgba(254,253,250,0.90);
  border-bottom: 1px solid rgba(254,253,250,0.20);
}

.plan--pro .plan__lista li::before{
  background: rgba(254,253,250,0.65);
}

/* Toggle */

.pricing-toggle{
  margin: 12px auto 26px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  color: rgba(2,41,47,0.72);
  font-weight: 600;
}

.toggle{
  width: 56px;
  height: 30px;
  border-radius: 999px;
  border: 1px solid rgba(12,78,88,0.25);
  background: rgba(12,78,88,0.10);
  position: relative;
  cursor: pointer;
}

.toggle__circle{
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: var(--bg);
  position: absolute;
  top: 50%;
  left: 4px;
  transform: translateY(-50%);
  box-shadow: 0 10px 18px rgba(1,25,29,0.18);
}

/* CTA / botones plan */
.btn-plan{
  margin-top: 22px;
  align-self: flex-start;
  padding: 11px 20px;
  border-radius: 999px;
  background: var(--brand);
  color: var(--bg);
  border: 1px solid var(--brand);
  font-size: 14px;
  font-weight: 600;
  box-shadow: 0 10px 22px rgba(12,78,88,0.28);
  cursor: pointer;
  transition: box-shadow .2s ease, transform .15s ease;
}

.btn-plan:hover{
  box-shadow: 0 14px 30px rgba(12,78,88,0.38);
  transform: translateY(-1px);
  background-color: #208999;
}

/* CTA plan PRO */
.plan--pro .btn-plan{
  background: #FEFDFA;
  color: var(--brand);
  border: 1px solid rgba(255,255,255,0.85);
  box-shadow:
    0 14px 34px rgba(0,0,0,0.35),
    inset 0 1px 0 rgba(255,255,255,0.45);
}

.plan--pro .btn-plan:hover{
  background: #0C4E58;
  color: #FEFDFA;;
  box-shadow:
    0 18px 42px rgba(0,0,0,0.45),
    inset 0 1px 0 rgba(255,255,255,0.55);
  transform: translateY(-1px);
}

/* General planes */ 

.panel > h2,
.panel > ul,
.panel > .pricing,
.panel > form,
.panel > .toast{
  width: min(var(--container), calc(100% - 48px));
  margin-left: auto;
  margin-right: auto;
}

.panel > h2{
  text-align: center;
  font-family: "Manrope", sans-serif;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.03em;
  margin: 0 auto 10px;
  color: var(--text);
  position: relative;
}

.panel.active h2{
  color: var(--dark);
}

.panel.active p,
.panel.active li{
  color: var(--text-2);
}

.panel > h2::after{
  content:"";
  display:block;
  width: 44px;
  height: 3px;
  margin: 12px auto 0;
  border-radius: 999px;
  background: var(--warm);
  opacity: 0.95;
}

/* Precio plan */

.panel[data-view="valores"] .pricing .plan--pro p{
  color: #FEFDFA;
  letter-spacing: -0.01em;
}

/* Nombre del plan */
.panel[data-view="valores"] .plan strong{
  font-family: "Manrope", sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--brand);
}

.panel[data-view="valores"] .plan--pro strong,
.panel[data-view="valores"] .plan--pro p,
.panel[data-view="valores"] .plan--pro li{
  color: #FEFDFA;
  letter-spacing: -0.01em;
}

/* Precio */
.panel[data-view="valores"] .plan p{
  margin-top: 10px;
  font-family: "Manrope", sans-serif;
  font-size: 28px;
  font-weight: 800;
  color: var(--text);
}


/***** ------ FORMULARIOS (DEMO / ACCESO) ------ *****/

/* contendor estilo card */
.panel .form-card{
  width: min(980px, calc(100% - 48px));
  margin: 18px auto 0;
  padding: 22px 22px;
  border-radius: var(--r-card);
  border: 1px solid rgba(2,41,47,0.12);
  background: rgba(254,253,250,0.72);
  box-shadow:
    0 18px 40px rgba(1,25,29,0.10),
    inset 0 1px 0 rgba(255,255,255,0.65);
  backdrop-filter: blur(6px);
}

/* Tipografía y layout base */
#leadForm,
#demoForm{
  display: grid;
  gap: 12px;
  align-items: start;
}

/* Campos */
#leadForm input,
#leadForm textarea,
#demoForm input{
  width: 100%;
  font: inherit;
  color: var(--text);
  background: rgba(254,253,250,0.92);
  border: 1px solid rgba(2,41,47,0.16);
  border-radius: 12px;
  padding: 12px 14px;
  outline: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7);
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

#leadForm textarea{
  min-height: 110px;
  resize: vertical;
}

/* Placeholders */
#leadForm input::placeholder,
#leadForm textarea::placeholder,
#demoForm input::placeholder{
  color: rgba(2,41,47,0.45);  
  font-size: 14px;
}

/* Focus */
#leadForm input:focus,
#leadForm textarea:focus,
#demoForm input:focus{
  border-color: rgba(48,137,112,0.70);
  box-shadow:
    0 0 0 4px rgba(48,137,112,0.18),
    0 10px 22px rgba(1,25,29,0.10),
    inset 0 1px 0 rgba(255,255,255,0.7);
}

@media (min-width: 900px){
  #leadForm{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #leadForm textarea{
    grid-column: 1 / -1;
  }
  #leadForm button{
    grid-column: 1 / -1;
    justify-self: start;
  }
}

/***** ------ LABELS FORMULARIOS ------ *****/

.campo{
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.campo--full{
  grid-column: 1 / -1;
}

.campo label{
  font-size: 14px;
  font-weight: 600;
  color: rgba(2,41,47,0.85);
  letter-spacing: 0.015em;
}

/* En Pro / fondo oscuro, si algún día lo usas ahí */
.panel--dark .campo label{
  color: rgba(254,253,250,0.75);
}

/* ACCESO */
#demoForm.form-card{
  width: min(520px, calc(100% - 48px));
}

/* Botón */
#leadForm button,
#demoForm button{
  justify-self: start;
  padding: 11px 20px;
  border-radius: 999px;
  border: 1px solid rgba(12,78,88,0.35);
  background: var(--brand);
  color: var(--bg);
  font-weight: 700;
  box-shadow: 0 14px 32px rgba(12,78,88,0.28);
  cursor: pointer;
  transition: box-shadow .2s ease, transform .15s ease, background-color .2s ease;
}

#leadForm button:hover,
#demoForm button:hover{
  background-color: #208999;
  box-shadow: 0 18px 44px rgba(12,78,88,0.35);
}

#leadForm button:active,
#demoForm button:active{
  transform: translateY(1px);
}

/***** ------ FOOTER ------ ******/

.footer {
  background: var(--dark);            
  color: rgba(254,253,250,0.78);      
  padding: 28px 0;                    
  font-size: 13px;                 
  border-top: 1px solid rgba(255,255,255,0.08); 
  text-align:center;
}

.footer span,
.footer strong {
  color: rgba(254,253,250,0.92);     
}

.footer .container {
  display: flex;
  justify-content: center;            
  text-align: center;
}

.footer-inner {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}

.footer-links {
  display: flex;
  gap: 18px;
}

.footer-links a {
  font-size: 12px;
  color: rgba(254,253,250,0.72);
  text-decoration: none;
}

.footer-links a:hover {
  color: var(--brand-2);
  text-decoration: underline;
}

/***** ------ RESPONSIVE ------ ******/